2つのリモートデバイスがあります。使用したいUSB MCEリモートドングル1つと、使用していない、または使用したくない衛星PCI-Eカードの組み込みデバイス。
起動すると、lircはこれらのデバイスに/dev/lircX
デバイスを割り当てます(Xは数字)。このdmesg
出力を例にとります:
[...] rc rc0: lirc_dev: driver ir-lirc-codec (saa716x) registered at minor = 0
[...] rc rc1: lirc_dev: driver ir-lirc-codec (mceusb) registered at minor = 1
上記のMCEリモートは/dev/lirc1
の下にあります。問題は、次回の起動時に/dev/lirc0
になります。これにより、アプリケーションの構成がはるかに困難になります。
次のいずれかが必要です。
saa716x
デバイスのlirc処理を無効にすることで同じことを実現します。これは、TVストリーミング用のビデオも処理する多機能デバイスモジュールであることに注意してください。saa716x
はオプションではありません。/dev/lircX
がどのモジュールであるかを理解する方法がわかりません。私は何にでもオープンです。あなたは私が何をしているかを見ることができるはずです。
7.3.3.6。再起動後にデバイスの命名順序がランダムに変更される
これは、Udevが設計上、ueventsを処理し、モジュールを並列にロードするため、予測できない順序で実行されるためです。 これは決して「修正」されることはありません。カーネルデバイス名が安定していることに依存するべきではありません。代わりに、シリアル番号やUdevによってインストールされたさまざまな* _idユーティリティの出力など、デバイスのいくつかの安定した属性に基づいて、シンボリックリンクを安定した名前で作成する独自のルールを作成します。例については、7.4項「デバイスの管理」および7.5項「一般的なネットワーク構成」を参照してください。
ソース:Linux From Scratch:7.3。デバイスとモジュールの処理の概要
ターゲットノードとその親ノードの属性を確認する
udevadm info -a /dev/lirc1
ターゲットノードの環境変数を確認します(ルールの一致に使用できる別のもの)
udevadm info /dev/lirc1
新しいUDEVルールファイルを作成する
Sudo nano /etc/udev/rules.d/99-lirc-symlinks.rules
#2 or only setup link for usb device
ACTION=="add", KERNEL=="lirc?", ATTRS{idVendor}=="1934", ATTRS{idProduct}=="5168", SYMLINK+="lirc90"
lirc90
とにかく到達するのは遠いです。
ルールの再読み込み
Sudo udevadm control -R
イベント要求をトリガーし、USBデバイスを再接続するか、再起動が必要な場合があります。
Sudo udevadm trigger
/dev/lirc90
を使用するようにアプリケーションを設定します
注:
同じデバイスにルールを実装するには多くの方法があります。 USBドングル用にもう1つ作成できます。
ACTION=="add", KERNEL=="lirc?", DRIVERS="mceusb", SYMLINK+="lirc90"
KERNELS
、SUBSYSTEMS
、DRIVERS
、ATTRS
devpathを上方向に検索して一致するものを探します。 man udev
をご覧ください。