Последовательные порты USB сбрасываются каждый раз при перезапуске системы Как это предотвратить?

Я использую Ubuntu 18:04 LTS и пытаюсь установить связь с последовательными портами, но каждый раз, когда я перезапускаю систему, порты сбрасываются, есть ли способ чтобы предотвратить то же самое. т.е. предполагая, что я использую ультразвуковой датчик, который назначен на / dev / ttyUSB0 , и я использую датчик частоты пульса, который назначен на / dev / ttyUSB1 , тогда порты будут стабильными до система перезагружается, после чего порт часто меняется, поэтому есть способ заморозить порты, назначенные датчикам, чтобы они оставались неизменными даже после перезапуска. К системе может быть подключено любое количество датчиков.

1
задан 16 December 2019 в 10:31

1 ответ

Однажды у меня была такая же проблема на beagle bone с debian jessie и более поздней версией stretch.

https://unix.stackexchange.com/questions/66901/how-to-bind-usb-device-under-a-static-name

Это мне помогло.

В итоге они предложили добавить правила udev:

Цитата из того, что мне помогло:

Синтаксис правила выше может работать в некоторых дистрибутивах, но не работал в моем (Raspbian). Поскольку я так и не нашел ни одного документа, который объяснял бы все тонкости и тонкости, я написал свой собственный, который можно найти здесь. Вот к чему все сводится.

  1. узнайте, что на ttyUSB:

    dmesg | grep ttyUSB

  2. перечисляет все атрибуты устройства:

    udevadm info --name = / dev / ttyUSBx --attribute-walk

(конечно, с номером (а) вашего устройства вместо x). Выберите набор уникальных идентификаторов, например idVendor + idProduct. Вам также может понадобиться SerialNumber, если у вас несколько устройств с одинаковыми idVendor и idProduct. Серийные номера должны быть уникальными для каждого устройства.

  1. Создайте файл /etc/udev/rules.d/99-usb-serial.правила с чем-то вроде этой строки> в нем:

    SUBSYSTEM == "tty", ATTRS {idVendor} == "1234", ATTRS {idProduct} == "5678", SYMLINK + = "your_device_name"

(при условии там вам не нужен серийный номер и, конечно же, с номерами idVendor и idProduct, которые вы нашли на шаге 2.

  1. Загрузите новое правило:

    sudo udevadm trigger

  2. Проверьте, что произошло:

    ] ls -l / dev / your_device_name

покажет, на какой номер ttyUSB перешла символическая ссылка. Если это / dev / ttyUSB1, то проверьте, кто владеет этим и к какой группе он принадлежит:

ls -l / dev / ttyUSB1

Тогда просто для удовольствия:

udevadm test -a -p $ (udevadm info -q path -n / dev / your_device_name)

0
ответ дан 7 January 2020 в 00:39

Другие вопросы по тегам:

Похожие вопросы: