나는 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 장치로 표시되지 않습니다.
온라인에서 다른 많은 정보 소스를 찾을 수 없었습니다.
리눅스 커널 5.15.32 데비안 11 불스아이
편집하다:
좋아, 한 단계 더 나아가서 작동하게 만들었습니다. 안타깝게도 제 방법을 사용하려면 depmod를 실행해야 했고, 이는 작동하려면 먼저 터미널에 액세스해야 한다는 의미였습니다.
목표는 다른 수단을 통해 터미널에 들어갈 필요 없이 USB를 통해 새 소프트웨어를 플래싱하는 것에서 tty로 전환하는 것입니다.
답변1
알았어 해결책을 찾았어
CONFIG_USB_G_SERIAL=y는 커널 구성에서 y 대신 m으로 설정됩니다.
그 후 내 rootfs에서 systemctl 활성화 getty@ttyGS0을 사용할 수 있습니다.
플래싱 후 호스트는 이를 직렬 장치로 감지하고 이를 Screen과 함께 사용할 수 있습니다.