LinuxプロセスでハードウェアIDをバインドする方法

Linuxではudevルールを使うとハードウェアデバイスのIDをバインドできます。

Linux上のデバイス管理システムであるudevは、デバイスの追加や削除時にデバイスの検出と設定を担います。udevルールを作成することで、デバイス追加時に特定の操作を実行できます。

以下に、udev ルールの構造の例を示します。

SUBSYSTEM=="subsystem", ATTR=="attribute", ACTION=="action", RUN+="command"

サブシステムは機器のサブシステム、属性は機器の属性、アクションは機器が行う動作、コマンドは実行するコマンドを表します。

例えば、USB機器のハードウェアIDにバインドするには、次のようなudevルールを作成できます。

SUBSYSTEM=="usb", ATTRS{idVendor}=="vendor_id", ATTRS{idProduct}=="product_id", ACTION=="add", RUN+="command"

vendor_idはUSB機器のベンダーID、product_idはプロダクトIDを、commandは実行するコマンドを表す。

ルールを記述したら、XX.rules(XXはルールの優先度を表す数字)というファイルに保存し、/etc/udev/rules.d/ディレクトリに配置してください。 udevサービスを再起動するか、「sudo udevadm control –reload」コマンドを実行すると、ルールが有効になります。

ハードウェアIDに紐付けるコマンドには任意のシェルコマンドやスクリプトが使えて、各種の操作を需求に応じて行うことが可能であることに注意してください。

bannerAds