设置 USB 到串行转换器
dmesg
串行设备的访问授权
ls -l /dev/ttyUSB0
# 输出crw-rw---- 1 root dialout 188, 46 Jul 17 15:34 /dev/ttyUSB0
行首的字母c表示这是一个基于字符的设备
文件所有者是root用户,该用户有读写权限
文件的组所有者是dialout组,该组中的用户也有读写权限
其余用户对该文件没有任何读写权限
如果您当前以非dialout组成员的普通用户身份登录,则无法读取和写入 USB 串行转换器。要解决此问题,您必须使当前用户成为dialout组的成员或编辑系统上的udev规则文件。
为方便起见,您可以使用种技术。首先,使用id命令确定您的用户属于哪些组:
id
使用adduser或usermod命令将您的用户添加到组中:
# 针对 Fedora
sudo usermod -aG dialout USERNAME
# 针对 Debian
sudo adduser USERNAME dialout
# 针对 Arch
sudo usermod -a -G uucp USERNAME
组成员身份程序现已完成。但是,系统会在图形会话的个登录步骤中检查组成员信息,然后将其提供给所有正在运行的进程。
因此,您必须退出当前图形会话,然后重新登录或重新启动计算机使修改生效。完成此操作后,您将拥有对串行转换器设备的读/写访问权限。
如何在 Linux 上连接到串行控制台
当您需要访问计算机或网络控制台时,您可以参考串行控制台应用程序。通常,您需要通过 SSH 访问才能这样做。但是,从软件和硬件的角度来看,在某些情况下,也可以仅使用串行端口访问控制台。
您会在较旧的计算机上常找到这些类型的示例。以下是一些适合您的串行控制台应用程序。
使用 Minicom
您可以在您的系统上安装 Minicom,这是一个旧的但仍在工作的应用程序,如下所示:
# 在 Fedora, CentOS 和 RHEL 上
sudo yum install minicom
# 在 Debian 和 Ubuntu
sudo apt-get install minicom
# 在 Arch Linux 上
sudo snap install minicom
当您次启动应用程序时,它会默认尝试打开一个设备文件,例如/dev/modem。它在找不到文件时终止。要克服这个问题,您可以使用-s参数直接启动应用程序的设置屏幕:
minicom -s
A键设置设备名称,E键设置串口速度。然后当你用Exit 退出时,就可以使用对应的串口了。
在应用程序主屏幕上,您可以使用Ctrl + A + O 返回配置屏幕,使用Ctrl + A + X退出应用程序,使用Ctrl + A + W激活换行模式,并使用其他快捷键获取帮助Ctrl + A + Z。
使用 GTKTerm
Minicom 通常由 Linux 用户使用,因此不建议初学者使用。Linux 新手可以安装 GTKTerm,一个用于 Linux 的图形串行终端仿真器。您可以使用以下命令在系统上安装应用程序:
# 在 Fedora, CentOS 和 RHEL 上
sudo dnf -y install gtkterm
# 在 Debian 和 Ubuntu 上
sudo apt-get install gtkterm
# 在 Arch Linux 上
yay -S gtkterm
启动应用程序时,您必须通过配置 > 端口菜单设置设备名称和速度参数,如下所示:
将设置保存为默认值,方便以后使用。
使用 screen
如果你熟悉多终端管理的 screen,你就会知道你也可以用它来做串口访问。以下是安装它的命令:
# 在 Fedora, CentOS 和 RHEL 上
sudo dnf -y install screen
# 在 Debian, Ubuntu 和 Linux Mint 上
sudo apt-get -y install screen
# 其他发行版使用 Snap 安装
sudo snap install screen --classic
安装后,您可以运行如下命令连接到串行控制台:
screen /dev/ttyUSB0 115500
现在您可以在 Linux 上建立串行端口连接
能够使用串行端口访问您的 Linux 系统是一个非常有用的功能,尤其是当您不想将监视器连接到 SBC(会话边界控制器)时。
由于串行控制台授权在编译时已内置在 Linux 内核中,因此您至少应该对 Linux 内核及其工作有基本的了解。
链接:https://www.linuxmi.com/linux-connect-serial-console-in.html