无法使用 ttyUSB0 作为控制台

无法使用 ttyUSB0 作为控制台

我有一台服务器(Ubuntu 20.04.1 Kernel 5.4.0-42-generic),它是无头的并且能够远程重启(使用加密根)我在机器中有一个 USB 转串行适配器,并且想在启动时将其用作控制台,以启用无头/远程解锁加密根。

启用后,一旦主机启动,我就能成功连接到控制台[电子邮件保护]因此适配器可以工作并且连接正确。

我已经添加了 ”控制台=tty0 控制台=ttyUSB0“在启动时添加到 GRUB 但是这似乎被内核完全忽略了。

$ dmesg | grep tty
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-5.4.0-42-generic root=/dev/mapper/host--vg-host_root--lv ro ipv6.disable=1 console=tty0 console=ttyUSB0
[    0.056872] Kernel command line: BOOT_IMAGE=/vmlinuz-5.4.0-42-generic root=/dev/mapper/host--vg-host_root--lv ro ipv6.disable=1 console=tty0 console=ttyUSB0
[    0.115389] printk: console [tty0] enabled
[    0.458997] 00:05: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[   54.731750] usb 1-1.5: pl2303 converter now attached to ttyUSB0

我已经测试过使用“控制台=tty0 控制台=ttyS0“虽然我没有串行端口连接到该接口,但似乎可以工作,因此无法验证,并且更希望通过 USB 工作,而不是需要获取端口头

$ dmesg | grep tty
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-5.4.0-42-generic root=/dev/mapper/host--vg-host_root--lv ro ipv6.disable=1 console=ttyS0 console=tty0
[    0.056348] Kernel command line: BOOT_IMAGE=/vmlinuz-5.4.0-42-generic root=/dev/mapper/host--vg-host_root--lv ro ipv6.disable=1 console=ttyS0 console=tty0
[    0.115326] printk: console [tty0] enabled
[   26.469014] printk: console [ttyS0] enabled
[   40.385803] 00:05: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[   51.949414] tty tty40: hash matches
[   87.762789] systemd[1]: Created slice system-serial\x2dgetty.slice.
[   91.428703] usb 1-1.5: pl2303 converter now attached to ttyUSB0

我目前的理论是内核没有在启用 CONFIG_USB_SERIAL_CONSOLE 的情况下进行编译。

所以我的问题是……

  1. 我的理论是否正确,而我无法使用当前内核构建来做到这一点?1a) 如果是这样,是否有任何方法可以请求在未来的内核构建中添加此功能?
  2. 我是否缺少了一些东西才能让它工作?

任何帮助都将不胜感激。谢谢

答案1

我遇到了完全相同的问题。此外,通过 systemctl 手动启动 getty 时 getty 也能正常工作。

marc@thirdworld:/var/log$ dmesg | grep -Ei 'console|ttyUSB'
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-135-generic root=UUID=0787120b-7858-4ca3-a7aa-b04533fc707e ro ipv6.disable=1 console=tty0 console=ttyUSB0,115200n8 splash quiet ipv6.disable=1 vt.handoff=7
[    0.030445] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-135-generic root=UUID=0787120b-7858-4ca3-a7aa-b04533fc707e ro ipv6.disable=1 console=tty0 console=ttyUSB0,115200n8 splash quiet ipv6.disable=1 vt.handoff=7
[    0.076533] Console: colour dummy device 80x25
[    0.076537] printk: console [tty0] enabled
[    1.582709] i915 0000:00:02.0: vgaarb: deactivate vga console
[    2.526967] usb 3-1.2: FTDI USB Serial Device converter now attached to ttyUSB0
[    4.010005] usb 3-1.4.3: FTDI USB Serial Device converter now attached to ttyUSB1
[    4.838555] systemd[1]: Starting Set the console keyboard layout...

看起来设备模块('...连接到 ttyUSB0...)是在控制台启用后加载的。

我已经将 USB 到串行转换器的模块添加到 /etc/initramfs-tools/modules 并更新了 initramfs。

我希望有人能回答...

相关内容