在无头 Linux 系统上通过 USB 配置 tty

在无头 Linux 系统上通过 USB 配置 tty

我有一个基于 IMX8MM (tx8m-1610) 的 Linux 系统。我使用 USB 连接在其上刷新新软件,然后切换到串行调试端口或 ssh 继续在系统上工作。

我想以这样的方式设置系统,在刷新新的 rootfs 或内核后,我可以简单地删除“从 USB 启动”跳线,重新启动,然后将其显示为 USB 设备,通过它我可以进入控制台。

我有

CONFIG_USB_SERIAL=y

CONFIG_USB_SERIAL_CONSOLE=y

CONFIG_USB_SERIAL_GENERIC=y

在内核配置中启用,并且在我的 dtb 中,USB 设备被定义为外围设备。

usbg1: usbg1 {
    compatible = "fsl,imx27-usb-gadget";
    chipidea,usb = <&usbotg1>;
    dr_mode = "peripheral";
    status = "okay";
};

&usbotg1 {
    dr_mode = "peripheral";
    status = "okay";
};

&usbotg2 {
    dr_mode = "peripheral";
    status = "okay";
};

我启用并启动 getty@ttyUSB0

但它仍然没有显示为 USB 设备。

我在网上找不到太多其他信息来源。

Linux 内核 5.15.32 debian 11 bullseye

编辑:

好吧,我再进一步,我设法让它工作,不幸的是我的方法要求我运行 depmod,这意味着我必须先访问终端才能使其工作。

虽然目标是从刷新新软件切换到通过 USB 的 tty,而无需通过其他方式进入终端。

答案1

好的,我找到了解决方案

CONFIG_USB_G_SERIAL=y 在内核配置中设置为 m 而不是 y

之后我可以 systemctl 在我的 rootfs 中启用 getty@ttyGS0

闪烁后,我的主机将其检测为串行设备,我可以将其与 Screen 一起使用。

相关内容