ヘッドレス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 ブルスアイ

編集する:

さて、もう一歩進んで働きかけました。残念ながら、私の方法を使用するにはdepmodを実行する必要があり、これは動作する前に端末にアクセスする必要があるという意味でした。

目的は、他の手段を介して端末に入る必要なく、USB経由で新しいソフトウェアをフラッシュすることからttyに切り替えることです。

答え1

わかりました、解決策を見つけました。

CONFIG_USB_G_SERIAL=y はカーネル構成では y ではなく m に設定されます。

その後、私のrootfsでsystemctlを有効にするgetty@ttyGS0を使用できます。

フラッシュ後、ホストはそれをシリアルデバイスとして検出し、それをScreenで使用できます。

関連情報