我目前正在学习终端、伪终端等,我很好奇 - 今天我们都使用伪终端,例如 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 转串口转换器都应得到相同的处理,则可能没有必要。