aarch64でUbuntu 20.04を実行しているRaspberry Pi 4に特定の名前で公開したいUSB ZWaveデバイスがあり、udev
これを行うための簡単なルールを書いていますが、うまくいかないようです。
プロバイダ:製品IDの例0658:0200
私のルールは
ATTRS{idVendor}=="0658", ATTRS{idProduct}=="0200", NAME="ttyZWAVE0"
しかし、デバイスは引き続きttyACM0
。
同じ一致基準で次のルールを使用してシンボリックリンクを作成すると、シンボリックリンクが正しく表示されます。
ATTRS{idVendor}=="0658", ATTRS{idProduct}=="0200", SYMLINK+="ttyZWAVE0"
udevadm --name=/dev/ttyACM0 --attribute-walk
ルールを作成する前の結果は次のとおりです。
looking at parent device '/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.1':
KERNELS=="1-1.1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{bcdDevice}=="0000"
ATTRS{version}==" 2.00"
ATTRS{rx_lanes}=="1"
ATTRS{devpath}=="1.1"
ATTRS{removable}=="unknown"
ATTRS{authorized}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bMaxPower}=="100mA"
ATTRS{idVendor}=="0658"
ATTRS{bmAttributes}=="80"
ATTRS{ltm_capable}=="no"
ATTRS{bNumInterfaces}==" 2"
ATTRS{bConfigurationValue}=="1"
ATTRS{idProduct}=="0200"
ATTRS{bDeviceSubClass}=="00"
ATTRS{busnum}=="1"
ATTRS{urbnum}=="12"
ATTRS{configuration}==""
ATTRS{speed}=="12"
ATTRS{tx_lanes}=="1"
ATTRS{maxchild}=="0"
ATTRS{devspec}=="(null)"
ATTRS{devnum}=="3"
ATTRS{bNumConfigurations}=="1"
ATTRS{quirks}=="0x0"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bDeviceClass}=="02"
システムの再起動やシステム全体の再起動に関係なく、直接名前を変更するルールは機能しませんが、udev trigger
シンボリックリンクを追加するルールは機能しないのはなぜですか?する働く?私は何か簡単なものを見逃していますか?
私はJournalctlで役に立つものを見ませんでした(実際には言及さえなかったし、エラーもなく、何もありません)。
以下を追加するように編集されました。
これはまた、amd64でUbuntu 20.04を実行している私のラップトップでも同じように失敗するように見えますが、まったく同じ結果が得られます(明らかに別の親デバイスパスを使用)。
udevadm test /sys/path/to/device
なぜ私の期待に応えられなかったのかについて明確な答えはありませんでした。私のルールを読んでいて、エラーがないとマークされています...
答え1
udevドキュメントによると、これは単に許可されていません。この質問を投稿した後、私が見つけた他の多くの質問で見られるように、マンページに記載されています。ルールが実行され、エラーが発生してudevadm test
正しい方向を指すようにルールに名前を付けるまで、この警告は見つかりませんでした。
公式ウェブサイトとudev.7に文書化されています。