![无法使用 ttyUSB0 作为控制台](https://linux22.com/image/1019553/%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20ttyUSB0%20%E4%BD%9C%E4%B8%BA%E6%8E%A7%E5%88%B6%E5%8F%B0.png)
我有一台服务器(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 的情况下进行编译。
所以我的问题是……
- 我的理论是否正确,而我无法使用当前内核构建来做到这一点?1a) 如果是这样,是否有任何方法可以请求在未来的内核构建中添加此功能?
- 我是否缺少了一些东西才能让它工作?
任何帮助都将不胜感激。谢谢
答案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。
我希望有人能回答...