USB cihazları konuştuğumuz ve udev'iniz olduğunu varsaydığımız için bazı udev kurallarını ayarlayabilirsiniz.
Sanırım ve bu sadece vahşi bir tahmin, birisi veya cihazın fişini çekti / çıkardı ve tekrar taktı / cihazı tekrar ekledi, bu da numarayı çarptı.
Şimdi, önce satıcı ve ürün kimliklerine ihtiyacınız var:
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 011: ID 0403:6001 FTDI FT232 USB-Serial (UART) IC
Sonra, seri numarasına ihtiyacınız var (birkaç tane varsa):
# udevadm info -a -n /dev/ttyUSB1 | grep '{serial}' | head -n1
ATTRS{serial}=="A6008isP"
Şimdi bir udev kuralı oluşturalım:
UDEV kuralları genellikle içindeki birçok dosyaya dağıtılır /etc/udev/rules.d
. Yeni bir dosya oluşturun 99-usb-serial.rules
ve aşağıdaki satırı buraya koyun, her biri farklı bir seri numarasına sahip üç cihazım var:
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A6008isP", SYMLINK+="MySerialDevice"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A7004IXj", SYMLINK+="MyOtherSerialDevice"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTDIF46B", SYMLINK+="YetAnotherSerialDevice"
ls -l /dev/MySerialDevice
lrwxrwxrwx 1 root root 7 Nov 25 22:12 /dev/MySerialDevice -> ttyUSB1
Seri numarasını istemiyorsanız, aynı çipli satıcıdan herhangi bir cihaz aynı symlink'i alacaktır, herhangi bir zamanda sadece bir tane takılabilir.
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="MySerialDevice"
Buradan alındı
/dev/serial/by-id/usb-XXXX_USB2.0-Serial-if00-port0
. Özel udev kuralları olmadan bu sizin için yeterli olabilir.