我想为我的服务器创建一个物理远程串行端口,让我可以使用该端口作为服务器串行控制台(这是为了复古计算机相关的爱好)。我正在使用 MikroTik 路由器,其串行端口用作网络上的 RFC2217 服务器。 Debian 服务器使用 ttynvthttps://gitlab.com/lars-thrane-as/ttynvt创建一个虚拟串行端口 ttyNVT0,它代表路由器上的远程物理串行端口。我可以将此端口与终端仿真器 Minicom 一起使用,它充当服务器上的简单串行端口。插入路由器串行端口上的环回插头会返回键入的数据。它也适用于 python。
但是,我无法使用 systemd 使此端口与agetty 一起工作。我正在遵循本手册:
https://www.rogerirwin.co.nz/linux-open-source/enabling-a-serial-port-console/
当然,我已经将 ttyS0 替换为 ttyNVT0。然而,发出命令后:
systemctl start [email protected]
它等待一段时间并失败。 Journalctl -e 显示:
Nov 07 14:20:05 debian systemd[1]: dev-ttyNVT0.device: Job dev-ttyNVT0.device/start timed out.
Nov 07 14:20:05 debian systemd[1]: Timed out waiting for device /dev/ttyNVT0.
Nov 07 14:20:05 debian systemd[1]: Dependency failed for Serial Getty on ttyNVT0.
Nov 07 14:20:05 debian systemd[1]: [email protected]: Job [email protected]/start failed with result 'dependency'.
Nov 07 14:20:05 debian systemd[1]: dev-ttyNVT0.device: Job dev-ttyNVT0.device/start failed with result 'timeout'.
我对本地串行端口 ttyS0 进行了相同的尝试,它工作正常,没有任何问题。
如果我在这里遗漏了一些明显的东西,我很抱歉,但我对 systemd 没有丰富的经验,而且我真的不知道在哪里可以解决这个问题。
我尝试使用串行端口 ttyS0 提供相同的 systemd 服务,并且它有效。尝试过重启。我真的不知道该尝试什么,因为我真的不知道“等待设备超时”是什么意思。我的意思是 - 它就在那里,它可以与 minicom 一起使用,为什么它不能与 systemd 一起使用?
我还尝试使用以下命令在 ttyNVT0 接口上简单地运行agetty:
/sbin/agetty --local-line 9600 ttyNVT0 vt100
它确实有效,我可以从远程串口登录服务器。