
У меня есть два кабеля USB Type A to COM. Назовем их: Кабель 1 и кабель 2. Теперь мне нужно убедиться, что их назначения устройств TTY останутся прежними после перезагрузки. Я использую Ubuntu.
Например, я хочу, чтобы компьютер назначил кабель 1 на ttyUSB1, а кабель 2 на ttyUSB2. Потому что после перезагрузки компьютера он перетасует эти назначения кабеля на TTY.
Поэтому я прочитал несколько решений аналогичных проблем для других подобных устройств.
- Исправлено назначение устройств tty в Linux с помощью udev
- Назначение одного и того же USBtty linux устройству каждый раз
Но есть проблема.
Итак, когда я пробую это:
sudo udevadm info --query=property --name=/dev/ttyUSB0 > usb0
sudo udevadm info --query=property --name=/dev/ttyUSB1 > usb1
И это:
vimdiff usb0 usb1
Кабели не имеют ID_SERIAL_SHORT
ценности. Нет никакой разницы, кроме названий ttyUSB0
и ttyUSB1
. Кабели производятся одной и той же компанией. Поэтому нет никакой разницы по серийному названию.
Выходdiff first secnd
1а2 > Шина 002 Устройство 020: ID 067b:2303 Prolific Technology, Inc. Последовательный порт PL2303
решение1
Чтобы понять ответ, давайте сначала разберемся в вопросе. У меня есть два устройства. Они подключены к компьютеру с помощью устройств 'RS232 to USB'. И мне нужно настроить файлы. В каждом файле есть раздел под названием [SERIAL].
Например
[SERIAL]
port = /dev/ttyUSB1
После перезагрузки есть вероятность, что «dev path» можно будет изменить.
Теперь я исправлю эту проблему, ID_PATH
добавив этот код в
ACTION=="add",ENV{ID_BUS}=="usb",ENV{ID_PATH}=YOUR_ID_PATH, SYMLINK+="ttyUSBPort1"
И как я понял, мы создаем ссылку, которая ссылается на один из/dev/ttyUSB*
Так что теперь после перезагрузки есть вероятность, что /dev/ttyUSBPort1
будет ссылаться на другой /dev/ttyUSB*
, но это не мешает мне, так как в моем конфигурационном файле установлен порт, /dev/ttyUSBPort1
и этот порт не меняется.