私は、1つまたは2つのSilicon Motion SM501グラフィックスカードを搭載したコンピュータに展開するための一般的なudevルールを作成しています。現在のルールは次のとおりです。
TAG=="seat", ENV{ID_FOR_SEAT}=="usb-pci-*-usb-*_[34]", ENV{ID_SEAT}="seat0", TAG-="master-of-seat"
私はこの規則が次の場合にのみ適用されることを望みます。一つカードが存在します。つまり、コマンドがlspci | grep -c SM501
出力される場合です1
。この動作を達成するためにルールをどのように変更できますか?
答え1
それは問題ではありません。解決策を見つけたと思います。最後RESULT
の呼び出しPROGRAM
の出力と一致するudevというセクションがあることがわかりました。だから私はルールを次のように更新しましたが、うまくいくようです。
TAG=="seat", ENV{ID_FOR_SEAT}=="usb-pci-*-usb-*_[34]", PROGRAM="/bin/sh -c '/usr/bin/lspci | /bin/grep -c SM501'", RESULT=="1", ENV{ID_SEAT}="seat0", TAG-="master-of-seat"
/bin/sh -c '...'
ラッパーを入れるようにこのルールを改善できますかPROGRAM
?