从外部设备打开终端?

从外部设备打开终端?

我目前正在学习终端、伪终端等,我很好奇 - 今天我们都使用伪终端,例如 xterm 或 gnome-terminal,它们是 Linux GUI 的一部分,而很少使用虚拟控制台是内核的一部分。在这个领域,我非常清楚事情是如何运作的,什么时候会发生什么以及有哪些玩家在那里。如果我想使用模拟旧 TTY(如著名的 VT100)的外部设备登录我的 Linux 计算机,该怎么办?我可以使用另一台 Linux 机器,或者 Raspberry pi、Arduino 等。

为了方便起见,我想使用 USB 转串口转换器。

这是怎么做到的?

答案1

在主机端,您需要运行一些程序来侦听串行端口的连接,然后在/bin/login协商连接时进行切换。那东西通常是一个名为 getty 的程序

在屏幕和键盘所在的设备上,您需要某种终端模拟器。迷你电脑多年来一直是 Linux 上最受欢迎的选择。

答案2

要允许使用现代发行版中的串行端口/TTY 设备进行传入登录systemd,您通常只需要启用名为 的服务serial-getty@<device name>.service

例如,要立即开始接受串行端口中的传入登录/dev/ttyS0

systemctl start [email protected]

要持续允许传入登录/dev/ttyS0,以便您无需在重新启动后重新启用它:

systemctl enable [email protected]

只要 TTY 设备名称保持不变,USB 转串口转换器也应如此。

因此,如果您有多个 USB 转串口转换器连接到要接受串口登录的 Linux 系统,您可能需要设置一些 udev 规则,通过/dev/ttyUSB*转换器序列号、USB 指定设备的固定名称(别名)。设备路径或其他一些持久的唯一标识,并使用这些别名启动串行 getty 服务实例。但如果所有 USB 转串口转换器都应得到相同的处理,则可能没有必要。

相关内容