现代 Linux 上的串口通信

使用 Tio(一个 Linux 串口通信程序)连接到您的控制台进行故障排除。
123 位读者喜欢这篇文章。
computer servers processing data

Opensource.com

作为一名系统工程师,我花费大量时间在数据中心配置服务器和其他计算机设备。我的工具包中保留了两样东西:一个 RS-232 串口转 USB 转换器和一根标准 DB-9 串口线。当您没有其他方式访问设备时,这些可能必不可少。您可能需要部署尚未为您的网络配置的新路由器。您可能需要排除通过 SSH 变得无法访问的防火墙设备的故障。尤其是在“无人值守”环境中,新服务器可能需要初始化管理卡。串口连接为控制台提供了直接路径,以完成这些任务。

在此示例中,我将使用 Netgate 设备。这些是防火墙,没有鼠标、键盘、显示器或其他 GUI 功能。它们通常被称为“无头”设备。

串口通信

要通过串口连接设备,您需要支持 RS-232 协议的硬件。这通常是一个九针 DB-9 串口,通常标记为 serial、comm 或 console。大多数旧计算机至少有一个。大多数服务器仍然有,但大多数笔记本电脑和台式机不再有。

查找串口

如果您的系统没有串口,则需要使用像我提到的那样的转换器。当您将 PL2303 转换器插入计算机上的 USB 端口时,Linux 内核会将其注册为 USB TTY 设备。

您可以使用多个命令来查询系统的串口配置。以下是一些示例

# dmesg |grep tty
[252464.891372] usb 6-1: pl2303 converter now attached to ttyUSB0

# setserial -g /dev/ttyUSB[0123]
/dev/ttyUSB0, UART: 16654, Port: 0x0000, IRQ: 0

# ls /dev/serial/by-id/
usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0

在我的情况下,它检测到转换器是 pl2303 转换器(或 Prolific Technology USB 串口控制器)。

连接串口线

将串口线连接到转换器和设备上的串口之间。

使用 Tio 登录

多年来,我使用过不同的工具,例如 Minicom 和 Screen。Tio 是一个更新、更简单的工具,被描述为“一个简单的 TTY 终端 I/O 应用程序”。它在大多数 Linux 发行版、FreeBSD 和 OpenWRT 以及 Snap 包上可用。我使用标准包管理工具将 1.32 版本安装到我的 Red Hat Enterprise Linux 8.1 服务器上

# dnf info tio
# dnf install tio

使用 tio 命令初始化连接。以我的经验,Tio 不需要任何预先配置;它可以开箱即用。请确保您具有正确的设备路径,如上所示

# tio /dev/ttyUSB0

# tio /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0

您可以使用 Ctrl+t 命令序列与 Tio 交互。例如,Ctrl+t+? 将列出可用命令,而 Ctrl+t+q 将退出 Tio 并将您带回到 Linux 命令提示符。

结论

我们现在很少考虑甚至使用串口通信,但它仍然有用。数据中心人员仍然需要熟悉它。

数据中心可能是远程的,一旦进入内部,您需要确保拥有所有合适的工具。除了好的 Linux 笔记本电脑外,当然,我建议使用上述物品在必要时管理那些启用串口的设备。

延伸阅读
Alan Formy-Duval Opensource.com Correspondent
Alan 拥有 20 年的 IT 经验,主要在政府和金融行业。他最初是一名增值经销商,之后转入系统工程领域。Alan 的背景是高可用集群应用程序。他撰写了 Oracle Press/McGraw Hill 出版的《Oracle Solaris 11 系统管理》一书中的“用户和组”以及“Apache 和 Web 堆栈”章节。

14 条评论

谢谢 Alan,
对我来说,这是过去三到四年我在 Opensource.com 上读到的最好的技术信息文章之一。所有其他文章也很棒。

即使我现在退休了,但总是令人沮丧的是,无法像二十年前通过控制台那样将笔记本电脑连接到服务器进行配置或分析。
对我来说太晚了,但对于新的系统管理员,特别是那些来自纯 Windows 和 PC 环境的人来说,这是极好的信息。

感谢您的友好评论,我很高兴您喜欢这篇文章。

回复 作者 W. Anderson (未验证)

感谢您撰写这篇文章。我一直在尝试弄清楚两种情况,我希望您能提供一些有价值的见解。

1. 在 Mac 上,您可以使用 iterm2,它使您可以使用在配置时保存了密码的击键发送文本。当您每天必须登录 20-50 个终端时,这将帮助您节省大量时间,因此我是此功能的忠实拥护者,但我也使用我的 Windows 机器,但我一直无法在 Windows 环境中找到这样的选项。所以,如果您知道任何可能有帮助的终端,请告诉我。

2. 很多时候,由于 VFS 限制已达到,我无法连接到 Ubuntu 服务器,因此唯一的选择是重新启动,当您的服务器使用了多年时,重新启动是很可怕的,我想知道是否还有一种方法可以连接到它并通过某种方式连接到它来增加限制以防止重新启动。同样,当我无法 ssh 连接到服务器时,我希望能够在无法远程或本地 ssh 连接时以某种方式远程连接。

感谢您对这两件事的投入。

谢谢
Tushar

为了确保 “tio” 在 Red Hat 存储库中不可用。我认为您是从 EPEL 安装的。是这样吗?

是的,正如 Seth 确认的那样。您将需要为 Red Hat Enterprise Linux 启用 EPEL 存储库。但是,它在 Fedora (dnf install tio) 和 Ubuntu (apt install tio) 等发行版的标准存储库中可用。

回复 作者 John Call (未验证)

与 putty 这样的工具相比,tio 命令行有什么优势吗?多年来,我一直使用 putty 来处理来自 telnet、ssh 或串口的任何连接,但我总是乐于尝试有趣的新软件应用程序

Rob,我认为在很大程度上,这取决于个人喜好。Putty 提供了更全面的功能集,而 tio 则非常专注。它可以快速安装,并且只有 ~36kb 大小。但是,我认为这是用户的选择。

回复 作者 Rob C (未验证)

2020 年了,但我仍然不明白如何在日常生活中使用 Linux

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.