Çekirdek atanan adlar her zaman aygıtların algılandığı sırada atanır ve bunları değiştiremezsiniz. (Artık değil, yine de - bu işlev, "kalıcı ad" kurallarının neden olduğu çeşitli yarış koşulları nedeniyle kaldırıldı.)
Ama sen söyleyebilirsin udev yaratmak sembolik bağlar seçtiğiniz isimlerle. Aslında, modern sistemlerde çoktan sahip altında linkler /dev/serial
Hem cihazın yolundan hem de benzersiz kimliğinden sonra adlandırılmış; Örneğin:
/dev/serial/by-path/pci-0000:00:1a.0-usb-0:1.2:1.0
→ ttyUSB0
/dev/serial/by-id/usb-Motorola_Inc._Motorola_Phone__C350_-if00
→ ttyACM0
/dev/disk/by-id/ata-ST9640320AS_5WX1ZH91-part1
→ sda1
/dev/disk/by-partlabel/Arch
→ sda3
/dev/input/by-id/usb-PIXART_USB_OPTICAL_MOUSE-mouse
→ mouse1
Ve bunun gibi. Sadece koşmak tree /dev
veya ls -lR /dev
cihazınızı bulmak için.
Ayrıca koşabilirsin udevadm info /dev/ttyUSB0
ve bu aygıta ait tüm bağlantılar S: ...
çizgiler.
Bu yeterli değilse, kendi udev kurallarınızı yazabilirsiniz. İlk çalıştırma udevadm info /dev/ttyUSB0
ve tanımlayıcı herhangi bir özelliği (örneğin ID_PATH
USB bağlantı noktası için). Her zaman alt sistemi de dahil etmek iyi bir fikirdir.
Sonra bir dosyayı açın (veya oluşturun). /etc/udev/rules.d/
(örneğin, serial-symlinks.rules
) ve udev kuralını buraya koy.
Örneğin, çıktı için ttyUSB0
geçerli:
$ udevadm info /dev/ttyUSB0
. . .
E: ID_PATH=pci-0000:00:1d.0-usb-0:1.2:1.0
. . .
E: SUBSYSTEM=tty
. . .
... bu kuralı yazabilirsiniz:
SUBSYSTEM=="tty", ENV{ID_PATH}=="pci-0000:00:1d.0-usb-0:1.2:1.0", SYMLINK+="tty-xbee"
... ve udev her zaman sembolik /dev/tty-xbee
USB port 2'ye bağladığınız her cihaza.
(Not: Yapma çekirdeğin aygıt düğümleri için kullandığı gibi aynı isimleri de kullanın. kullanma SYMLINK+="ttyUSB0"
irade kötü şeylerin olmasına neden olur.)