우리는 USB 장치를 말하고 있고 udev가 있다고 가정하고 udev 규칙을 설정할 수 있습니다.
나는 추측합니다. 이것은 단지 거친 추측입니다. 누군가 또는 무언가가 장치의 플러그를 뽑거나 제거했다가 다시 연결하거나 장치를 다시 추가했습니다.
먼저 공급 업체 및 제품 ID가 필요합니다.
$ 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
다음으로 일련 번호가 필요합니다 (여러 개가있는 경우).
# udevadm info -a -n /dev/ttyUSB1 | grep '{serial}' | head -n1
ATTRS{serial}=="A6008isP"
이제 udev 규칙을 만들어 봅시다 :
UDEV 규칙은 일반적으로의 여러 파일에 흩어져 있습니다 /etc/udev/rules.d
. 라는 새 파일을 99-usb-serial.rules
만들고 거기에 다음 줄을 넣으십시오. 각기 다른 일련 번호를 가진 세 개의 장치가 있습니다.
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
일련 번호를 원하지 않으면 동일한 칩을 가진 공급 업체의 모든 장치가 동일한 심볼릭 링크를 얻습니다. 주어진 시간에 하나만 연결할 수 있습니다.
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="MySerialDevice"
여기에서 찍은
/dev/serial/by-id/usb-XXXX_USB2.0-Serial-if00-port0
. 이것은 사용자 정의 udev 규칙이 없으면 충분할 수 있습니다.