web-dev-qa-db-ja.com

/ dev / bus / usb / 001 /ディレクトリでの新しいUSBデバイスファイルの作成はどのように機能しますか?

USBデバイスを接続するたびに、新しいデバイスが/dev/bus/usb/001/ディレクトリに作成されることに気付きました。さらに、同じデバイスを再接続するたびに、 "デバイス番号" および "ID" が変化します。

では、新しいデバイスファイル(/dev/bus/usb/001/内)の作成方法を教えてください。 動作を制御できますか、たとえば、変更してデバイス番号を002に制限しますかいくつかの構成ファイルで(もしあれば)

これが参照用の出力です。

$ ls /dev/bus/usb/001
001  002
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0781:5406 SanDisk Corp. Cruzer Micro U3
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 08ec:0015 M-Systems Flash Disk Pioneers Kingston DataTraveler Elite
$ lsusb 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 008: ID 0781:5406 SanDisk Corp. Cruzer Micro U3
$ ls /dev/bus/usb/001/
001  008

(また、Kingston Flash Diskが出力に表示された理由もわかりません。Kingstonデバイスを持っていません!...たぶんそれはグリッチなのでしょうか、それともそうですか?)

関心のある別のコンテキストトピック:

6
precise

コメントでGillesが指摘したように、/dev/bus/usb/XXX/YYYのデバイスはカーネルの命名ポリシーに従います。 XXXは非常に安定したバス番号ですが、YYYはUSBデバイスが列挙されるたびに(デバイスが挿入またはリセットされた直後)変化します。これは変更できず、変更する必要もありません。

デバイスのアクセス許可を変更する必要がある場合(たとえば、テスト目的で非特権ユーザースペースUSBドライバーを使用可能にするため)、udevルールを作成できます。 udevがデバイスに接続できるようにadbを使用してアクセス許可を制御する例:

# /etc/udev/rules.d/42-usb-permissions.rules
SUBSYSTEM!="usb", GOTO="end_skip_usb"

# CWM 6.0.4.3 in recovery mode
ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="d001", GROUP="peter"

# CM 10.2 with MTP disabled
ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="d002", GROUP="peter"

ATTRS{idVendor}=="148f", ATTRS{idProduct}=="5372", GROUP="peter"

LABEL="end_skip_usb"
2
Lekensteyn