web-dev-qa-db-ja.com

ベンダーID、製品ID、USBバス情報に基づいたUSBudevルールの作成

USB Webカメラをいくつか持っていますが、残念ながらシリアル番号がありません。そのため、起動時にデバイスファイル名を切り替える傾向があります。

それらは常に同じUSBポートにあるので、それに基づいてルールを作成したいと思います。しかし、それは惨めに失敗しています。

これが私がこれまでに試したことです:

#/ sys/bus/usb/devices/2-5.1:1.1/uevent 
#SUBSYSTEM == "usb"、SYSFS {idVendor} == "05e1"、SYSFS {idProduct} = = "0408"、PLACE == "2-5.1"、NAME = "video98" 
#SUBSYSTEM == "usb"、PLACE == "2-5.1"、NAME = "video98" 
 #SUBSYSTEM == "usb"、ATTR {busnum} = "002"、ATTR {devnum} = "009"、ATTR {idVendor} = "05e1"、NAME = "video98" 
 SUBSYSTEM == " usb "、ATTR {busnum} =" 002 "、ATTR {devpath} ="/devices/pci0000:00/0000:00:1d.7/usb2/2-5/2-5.1 "、ATTR {idVendor} =" 05e1 "、NAME =" video98 "
 
#/ sys/bus/usb/devices/2-5.3:1.1/uevent 
#SUBSYSTEM ==" usb "、ATTR { busnum} = "002"、ATTR {devnum} = "010"、ATTR {idVendor} = "05e1"、NAME = "video99" 
 SUBSYSTEM == "usb"、ATTR {busnum} = "002" 、ATTR {devpath} = "/ devices/pci0000:00/0000:00:1d.7/usb2/2-5/2-5.3"、ATTR {idVendor} = "05e1"、NAME = "video99" 

そうそう、私はいくつかの試みをしました。 devnumも起動時に変化するのを見たので、それを使いたくありません。

実は「2-5.3」と「2-5.1」のものを使いたいだけです。それはいつも同じです。しかし、どのように?

3
skerit

奇妙なことに、私はこれまでほぼ正確にこれを行ったことがあります。私のは外付けハードドライブでしたが、USBカメラでも違いはありません。ポートにはSCSIバスアドレスを使用しましたが、これはうまく機能しました。

lsscsiを使用して情報を取得しました。これにより、USBデバイスの場合は次のように出力されます。

[2:0:0:0] disk <descriptor> <dev name>

次に、次のルールに似た何かがあなたが望むことをするはずです:

SUBSYSTEM=="usb", KERNEL=="sd*1", KERNELS=="2:0:0:0", SYMLINK+="<label_1>"

1
jam