2017-12-06 25 views
0

私はv4l2loopbackドライバを(udevが自動的に安定したデバイス名を割り当てるように)udevで動作するように修正しようとしています。Linux仮想デバイスドライバをudevで動作させる

問題はデバイスドライバが正しくつまり、標準60-persistent-v4l.rulesで動作するように、一見udevが必要とされているいくつかのフィールドを公開していないこと、のようだ:

  • ID_BUS
  • ID_SERIAL
  • returないデバイス上で udevadm test-builtin path_idを実行している。また
  • ID_PATH

、 n個(そして出口コードは1です)。

ここで私がネットで見つけた例では、USBデバイスドライバを書きたいと仮定しています。残念ながら、v4l2loopbackデバイスの場合、これはvirtualデバイスではありません。

そこで質問です:私はそれらを参照してくださいudevにするために、仮想デバイスドライバにPATHSERIALBUSプロパティを追加するにはどうすればよい

注:この質問は、実際にはデバイスドライバを修正することを目的としており、既存のudevルール(デバイスを適切に認識できるように調整するのではなく)でうまく動作するようにしています。これはあなたが、それ以外の場合はシェルスクリプトを作成し、ルールファイルで使用udevの中から、そのスクリプトを呼び出し、次に必要なものを示している場合

$ udevadm monitor --environment --udev 

答えて

0

を実行し、このコマンドは、ユーザ空間のudevに、Linuxカーネルから送信されたすべてのものを見るためにルールファイルを作成し、シェルスクリプトからsysfsを解析して、探しているパラメータを取得します。これは典型的な標準的な方法です。

環境変数は、add_uevent_var()関数を使用してカーネルから送信されます。カーネルでは主にコアクラスとバスドライバが関数を呼び出してueventを作成して送信します。このバスを参照するには、linkを参照してください。 This linkもまた詳細を調べるのに役立ちます。

仮想デバイスと実デバイスの重要な違いの1つは、関数を呼び出すことができるkobjectにアクセスするときです。

+0

ありがとうございます。問題は実際には、デバイスドライバを調整して既存のudevルールをうまく使いこなす方向に向かいました。私はQが何らかの明確化を必要としていると思います... –

関連する問題