阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

串行控制台如何在 Linux 上工作?

70次阅读
没有评论

共计 2418 个字符,预计需要花费 7 分钟才能阅读完成。

导读 本文您将详细了解什么是串行控制台以及它们如何在 Linux 上工作。

串行端口连接允许用户在没有显示器的情况下控制系统。下面介绍如何在 Linux 中访问和使用串行控制台。

处理嵌入式 Linux 项目时必不可少的元素之一是通过串行控制台接口访问您的设备。为此,您正在开发嵌入式系统的计算机必须具有串行端口。然而,今天很少有电脑有串口,这就是我们使用 USB 转串口转换器的原因。

最后,您将详细了解什么是串行控制台以及它们如何在 Linux 上工作。

设置 USB 到串行转换器

几乎所有你能在市场上找到的 USB 串行转换器都能被 Linux 自动识别。将任何 USB 转换器插入您的计算机并使用 dmesg 命令找出设备的文件名。

dmesg

在上面的示例中,您可以在制造商(manufacturer)部分看到 VirtualBox,因为主机是在 VirtualBox 上运行的 Linux 发行版。在这里,制造商名称将根据您使用的转换器而改变。您还可以看到您正在使用的串行转换器以名称连接到系统,例如 ttyUSB0。

您可以通过设备文件 /dev/ttyUSB0 使用系统识别的串行转换器。根据您使用的发行版,设备文件会自动在 /dev 目录下创建,显示主要、次要和设备类型。对于 USB 串行转换器,每个同声传译的命名方案通常是 ttyUSB0、ttyUSB1 和 ttyUSBX。

如果您在应用程序正在使用 USB 串行转换器时移除并重新插入它,系统会向设备发出一个新编号。

id="h26976cb-QnnOWIK8" data-id="h26976cb-QnnOWIK8">

串行设备的访问授权

挂载的 USB 转换器设备文件的默认访问权限通常如下:

ls -l /dev/ttyUSB0
# 输出 crw-rw---- 1 root dialout 188, 46 Jul 17 15:34 /dev/ttyUSB0

在检查上述输出时,您可以知道:

    id="ucd67dc5-jEKHZnCc">

  • id="l20de63f-NAkpLDIa"> 行首的字母 c 表示这是一个基于字符的设备
  • id="l20de63f-JhQFKmXb"> 文件所有者是 root 用户,该用户有读写权限
  • id="l20de63f-35BSXs4F"> 文件的组所有者是 dialout 组,该组中的用户也有读写权限
  • id="l20de63f-ATDT2utq"> 其余用户对该文件没有任何读写权限

如果您当前以非 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 内核及其工作有基本的了解。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计2418字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中