私のUSBデバイスは、/dev/ttyUSB?
という名前の番号を変更し続けます。
this と this を見てきましたが、同じことを運なしでやろうとしました。
gauthier@sobel:/etc/udev/rules.d $ udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB1)
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/ttyUSB1/tty/ttyUSB1':
KERNEL=="ttyUSB1"
SUBSYSTEM=="tty"
DRIVER==""
looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/ttyUSB1':
KERNELS=="ttyUSB1"
SUBSYSTEMS=="usb-serial"
DRIVERS=="ftdi_sio"
ATTRS{port_number}=="0"
ATTRS{latency_timer}=="1"
[...]
次に、ファイル/etc/udev/rules.d/50-udev.rules
(存在しませんでした)を作成し、これを内部に配置します。
SUBSYSTEM=="usb-serial", KERNEL=="ttyUSB?", SYMLINK+="ttyUSBserial"
しかし、udevadm trigger
の後でも、シンボリックリンクを取得しませんでした:
gauthier@sobel:/etc/udev/rules.d $ ls /dev|grep USB
ttyUSB1
変更されないデバイス名を作成するにはどうすればよいですか?私のルールで何が間違っていますか?
正しく読めば、デバイスの属性(KERNEL、SUBSYSTEM)と親デバイスの属性(KERNEL ** S **、SUBSYSTEM ** S **)の違いに気づいたでしょう。
ルールに「S」を追加するとうまくいきました!
途中で、udevが/lib/udev/rules.d/60-persistent-serial.rules
のルールを通じて/ dev/serial/by-id/usb- *に永続的なシンボリックリンクを作成したことにも気付きました。
ああ、私もあなたの旅を追ったので、「S」を追加した後でもシンボリックリンクが機能しません。デバイス自体のルール(「S」なし)または1つSINGLE parent ... 2つのレベルの親を参照したので、シンボリックリンクを作成できませんでした。