현재 장치 모드에서 USB OTG 포트가 있는 Linux 시스템을 설정하려고 합니다. 사전 구성된 구성을 사용하여 NCM 가젯을 활성화하면 이미 가젯 드라이버를 로드할 수 있으며 NCM 가젯은 OTG 포트에 연결된 호스트에서 인식됩니다. 여러 끝점이 있는 두 개의 인터페이스가 /sys/bus/usb/devices/3-1/ 아래에 나열되어 있습니다. 이제 호스트에 제공되는 인터페이스(및 엔드포인트)를 수정하고 싶습니다.
내 연구에 따르면 libcomposite와 configfs가 이 문제에 대한 해결책이라고 생각합니다. 따라서 buildroot의 configfs를 통해 구성 가능한 NCM을 활성화했습니다.
구성을 위해 configfs를 통한 가젯 구성에 대한 커널 문서를 따라해 보았습니다.https://www.kernel.org/doc/Documentation/usb/gadget_configfs.txt
libcomposite.koをロードしてconfigfsをインストールしました。 /sys/kernel/config/usb_gadget/ の下にフォルダを作成できます。フォルダに入ると、予想されるファイルとサブフォルダが含まれます。
total 0
-rw-r--r-- 1 root root 4.0K Feb 16 15:15 UDC
-rw-r--r-- 1 root root 4.0K Feb 16 15:15 bDeviceClass
-rw-r--r-- 1 root root 4.0K Feb 16 15:15 bDeviceProtocol
-rw-r--r-- 1 root root 4.0K Feb 16 15:15 bDeviceSubClass
-rw-r--r-- 1 root root 4.0K Feb 16 15:15 bMaxPacketSize0
-rw-r--r-- 1 root root 4.0K Feb 16 15:15 bcdDevice
-rw-r--r-- 1 root root 4.0K Feb 16 15:15 bcdUSB
drwxr-xr-x 2 root root 0 Feb 16 14:43 configs
drwxr-xr-x 2 root root 0 Feb 16 14:43 functions
-rw-r--r-- 1 root root 4.0K Feb 16 15:15 idProduct
-rw-r--r-- 1 root root 4.0K Feb 16 15:15 idVendor
drwxr-xr-x 2 root root 0 Feb 16 14:43 os_desc
drwxr-xr-x 2 root root 0 Feb 16 14:43 strings
mkdir functions/ncm.usb3
mkdir: can't create directory 'functions/ncm.usb3': No such file or directory
しかし、実際には/lib/modules/4.14.78-linux-v4.14-BSP0112/kernel/drivers/usb/gadget/function/の下にusb_f_ncm.koファイルがあります!
複数の名前(例:usb0、usb、u1 ...)などのデバイス(大容量記憶装置など)を試しましたが、すべて成功しませんでした。 ./configs の下に設定を作成し、./strings の下にサブフォルダを作成できます。ここで私が逃しているパズルのピースは何ですか?助けてくれてありがとう。
追加情報:これは組み込みシステムです。 modprobeは使用できず、insmodのみを使用できます。
修正する上記からこの問題を解決できます。以前は、ビルドルートにモジュール(M)としてlibcompositeとncmがありました。カーネルに直接含めると、ncm機能を追加できます(*)。これはmodprobe機能が不足しているためです。ただし、生成された関数フォルダには4つの設定ファイルのみが表示されます。
total 0
-rw-r--r-- 1 root root 4.0K Feb 16 16:30 dev_addr
-rw-r--r-- 1 root root 4.0K Feb 16 16:30 host_addr
-r--r--r-- 1 root root 4.0K Feb 16 16:30 ifname
-rw-r--r-- 1 root root 4.0K Feb 16 16:30 qmult
このインターフェイスの追加プロパティをどのように指定しますか?エンドポイントのようですか?