クライアントドライバ用のガジェットモジュールをロードするLinux udevルール

クライアントドライバ用のガジェットモジュールをロードするLinux udevルール

ガジェットモジュールを自動的にロードし、usb0デバイスをethインターフェースにロードするのに問題があります。問題のインターフェイスは、組み込みLinuxデバイスで使用され、PCに接続するg_etherです。

プラグインでイベントを表示し、udevを使用してスクリプトを実行する方法があるようです。デバイスをコンピュータに接続すると、どのイベントも表示されません。私はudevadmモニターのさまざまなバリエーションを試しましたが、ガジェットモジュールをモードプローブするためにudevルールとして使用できるものが何であるかを理解する方法がわかりません。

私がotgモジュールをロードしたい理由の1つは、私たちが主にg_etherを使うからです。 avahi-autoipdを使用したいのですが、挿入する前にIPアドレスを取得してください。ネットワークインターフェイスでAllow-hotplugを使用すると、接続時にインターフェイスが自動的に起動しません。したがって、理論的には、デバイスをPCに接続し、新しいネットワークインターフェイスでavahi-autoipdを実行してIPを取得し、dhcpdを実行してIPをホストに提供しようとします。

他の人がstackoverflowで私を助け始めて以来、より多くの情報を得ました(ここに再投稿)。

/sys/bus/usb/devices$ ls
1-0:1.0  2-0:1.0  3-0:1.0  3-1  3-1:1.0  usb1  usb2  usb3
[ 4297.515400] g_ether gadget: high speed config #2: RNDIS
[ 4300.379021] g_ether gadget: high speed config #1: CDC Ethernet (ECM)
sys/bus/usb/devices$ ls
1-0:1.0  2-0:1.0  3-0:1.0  3-1  3-1:1.0  usb1  usb2  usb3

走ってみました。

   udevadm monitor --environment
   udevadm monitor --environment --udev 
   udevadm monitor
   udevadm monitor --kernel
   udevadm monitor --kernel --udev

デバイスを取り外して接続しても何も表示されません。マンページには「カーネル uevent および udev ルールから送信されたイベントのリスニング」と記載されており、私のデバイスにはルールがありません。それで、他のハードウェアで何かをしようとしても何も印刷されない理由ではないかと思います。

私は組み込みLinuxディストリビューションを実行しています。デスクトップが持っているすべてを私が持つことはできないと思いますか?

私のg_etherモジュールに問題がある可能性があることを知りましたか?これらの出力は決して変更されません。 cat /sys/class/net/usb0/carrier cat:読み取りエラー:無効な引数cat /sys/class/net/usb0/operstate down

ベストアンサー1

ueventのUSB関連変数はカーネル関数で設定されますusb_uevent。関数を呼び出すかどうかを追跡できます。

おすすめ記事