Linux

Grub 和 USB 串列支持

  • February 16, 2021

如何使用 USB 串列轉換器訪問 grub 菜單?

我知道可以在串列控制台中有 grub 菜單,將這些行放在 grub.conf 中:

serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal serial

但是用usb串口轉換器呢?在 linux 中它是/dev/ttyUSB0,我可以用它來查看啟動消息。

自己沒有嘗試過,但我在 coreboot wiki 上找到了這些資訊(https://www.coreboot.org/GRUB2#On_a_USB_serial_or_USB_debug_adapter

要啟用串口,首先要找出你的usb串口槽的名稱:

insmod nativedisk # needed not to get the disk disapearing when insmoding the *hci
insmod ehci
insmod ohci
insmod uhci
insmod usb
insmod usbserial_pl2303
insmod usbserial_ftdi
insmod usbserial_usbdebug
terminal_output

terminal_output 命令應該列印它:

grub> terminal_output 
Active output terminals:
serial_usb1 gfxterm 
Available output terminals:
console vga_text serial 
Here we can see "serial_usb1" so we now know that its name is usb1

然後在 grub.cfg 頂部添加以下內容:

insmod nativedisk
insmod ehci
insmod ohci
insmod uhci
insmod usb
insmod usbserial_pl2303
insmod usbserial_ftdi
insmod usbserial_usbdebug
serial --speed=115200 --word=8 --parity=no --stop=1 usb1
terminal_output --append serial_usb1
terminal_input --append serial_usb1

支持以下晶片/協議:

usbdebug
ftdi
pl2303

Wiki 已經過時,但答案似乎是合法的。

引用自:https://unix.stackexchange.com/questions/79838