如果这是一个非常基本的问题,我很抱歉:
linux/systemd/agetty 是否支持双端串行 getty 控制台?
例如,我有两个远程服务器 A 和 B,它们运行的是最新的 ubuntu,安装了 systemd、agetty 和 screen。服务器之间安装了一根空调制解调器电缆,并且它出现在两台服务器的 /dev/ttyS0 上。
从服务器 BI 可以使用 screen 在服务器 A 上获取登录提示 (agetty)。
从该提示中,我可以重新启动服务器 A,grub 出现,我可以在 grub 中做出选择,启动 Linux,我看到启动消息,然后通过来自 B 的串行链接看到成功登录提示等。
是否可以使用相同的串行端口/链路进行相反的操作?我可以使用 screen 从 A 通过相同的 /dev/ttyS0 登录到服务器 B 吗?当屏幕未使用 /dev/ttyS0 时,服务器 B 是否也可以让agetty 侦听它?
如果没有,我需要第二个串行端口/电缆从 A -> B 获取,这是 UART 的硬件限制还是agetty 或 systemd 的软件限制?如果它是一个 systemd 问题,那么在非 systemd Linux(比如 Gentoo)中这可能吗?
先感谢您。
答案1
可以通过串行线路进行双向通信,因此您可以安排在一条线路上运行多个会话。您需要一些协议来复用它们,可能是 PPP 之类的协议,使串行线路充当网络连接。
如果不进行多路复用,请考虑如果双方都打印提示并期望命令响应(无论是 shell 提示还是登录提示),会发生什么情况。 A面打印提示,期望读取命令; B面打印提示; A 方读取 B 方的提示...并将其作为命令处理。那是行不通的。
至少,您需要进行一些安排来商定哪一方应担任会议的主办方。例如,以被动模式启动双方,等待对方发送请求会话的命令。然后在主机上启动登录过程,并在客户端启动终端客户端。训练结束后,返回中立状态,为新的训练做好准备(任一方向)。