回答:
通常、これは次のような内容で/etc/udev/rules.d
名前が付けられたファイルに追加することで行われます50-usb-scale.conf
。
SUBSYSTEM=="usb", ATTR{idVendor}=="HEX1", ATTR{idProduct}=="HEX2", MODE="0666"
どこHEX1とHEX2は、それぞれのベンダーと製品IDに置き換えられます。
代わりにインターフェイスタイプで一致させるにATTR{idVendor}=="HEX1", ATTR{idProduct}=="HEX2"
は、一致するbInterfaceClass
もの03
(HID)に置き換えることができます。
SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", MODE="0666"
ただし、マウスとキーボードもキャッチされることに注意してください。
.rules
拡張子が必要です。.conf
拡張子を持つファイルは機能しません。
lsusb -vvv
idProductとidVendorの取得に使用
lsusb
接続されているものとIDを見るには良いスタートです。idVendor
そしてidProduct
試合は思え大文字と小文字を区別 IDはので、DA77
私のために動作しませんが、da77
ありません。(便利な診断: udevadm info --attribute-walk /dev/bus/usb/008/023
バス008デバイス023私の例; lsusb
あなたのため。)ルールを追加したsudo udevadm control --reload-rules
後sudo udevadm trigger
、再起動を回避:変更は数秒後です。ATTRとATTRSは対立しませんでした。マイ.rulesファイルが読み取りますSUBSYSTEM=="usb", ATTR{idVendor}=="da77", ATTR{idProduct}=="d12e", GROUP="users", MODE="0666"
。
要約だけ:
以下をフィルタリングできます。
そして使用:
==等しいかどうかを比較します。
!=不等式を比較します。
=キーに値を割り当てます。リストを表すキーはリセットされ、この単一の値のみが割り当てられます。
+ =エントリのリストを保持するキーに値を追加します。
:=最後にキーに値を割り当てます。後の変更を禁止します。
/ dev / ...で特定のデバイスに特定の新しいパスを指定できます。
例:
KERNEL=="hiddev*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", ATTRS{serial}=="1234567", GROUP="cdrom", OWNER="user28", MODE="0640", SYMLINK+="myhid"
結果:
デバイスにアクセスするには、「/ dev / hiddevx」または「/ dev / myhid」を使用して簡単にアクセスできます。グループ「cdrom」のすべてのユーザーがデバイスから読み取ることができます。所有者「user28」は読み書きできます。
または最も単純な:
KERNEL=="hiddev*", ATTRS{idVendor}=="16c0", MODE="0666"
結果:すべてのユーザーはベンダー0x16c0からすべてのhiddeviceにアクセスできます
詳細については、ドキュメントをご覧ください。
(私のように)ttyACM0
パーミッションを変更する必要がある場合、これは私の設定です:
KERNEL=="ttyACM0", MODE="0777"
ベンダーと製品IDを指定しようとすると失敗しました。理由はわかりません。
Ubuntu 18.04アップデート/説明:
Kees Cookの答えは近いですが、18.04で機能するには2つの変更が必要です(現在のリリースで、これをテストしたのは1つだけです)。
バス001デバイス011:ID 04b8:014a Seiko Epson Corp.
SUBSYSTEM == "usb"、ATTRS {idVendor} == "04b8"、ATTR {idProduct} == "014a"、MODE = "0666"ただし、idVendorおよびidProductの16進値では。
ATTRS
ベンダーIDとプロダクトIDの両方ですか?次に、コードサンプルが間違っています(2行後に記述したように)。