В правилах udev назначается одинаковое имя порта для модема с 4 портами ttyUSB

У меня есть dlink DW-157 3g. Я пытаюсь назначить один и тот же порт для ключа каждый раз, когда он загружается, изменяя файл правил udev. Поскольку загрузочный ключ для загрузки загружается как носитель, я должен ввести приведенную ниже команду для извлечения и монтирования для режима модема, а затем другой команды под ним, чтобы использовать порты ttyUSB модема для запуска модемного набора.

sudo eject /dev/sr0 sudo /bin/sh -c "echo 2001 7d0e > /sys/bus/usb-serial/drivers/option1/new_id 

После ввода данных, sudo dmesg | grep ttyUSB отображается как:

 [ 17.581264] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB1 [ 17.584470] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB2 [ 17.593854] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB3 [ 17.594869] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB4 

Фактическим портом, на котором я могу использовать модем для набора номера, является ttyUSB1. Итак, я пытаюсь назначить ttyUSB1 для d_uart в моем файле правил udev:

 ACTION=="add", ATTRS{idVendor}=="2001", ATTRS{idProduct}=="7d0e", SYMLINK+="d_uart" 

Но что происходит, d_uart присваивается ttyUSB4. Что мне делать, чтобы назначить его первому порту всегда (ttyUSB1 в этом случае)?

Кроме того, вывод команды для ttyUSB1, ttyUSB2, ttyUSB3 и ttyUSB4 для комманды ниже:

 udevadm info -a -n /dev/ttyUSB4 | grep '{serial}' | head -n1 

та же.

ATTRS {серийный} == "3f980000.usb"

Кроме того, вывод команды ls -l / dev / d_uart

 lrwxrwxrwx 1 root root 7 Oct 3 13:27 /dev/d_uart -> ttyUSB4 

Выход lsusb:

 Bus 001 Device 006: ID 2001:7d0e D-Link Corp. Bus 001 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root h 

Вывод информации udevadm -n / dev / ttyUSB2:

 P: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.3/ttyUSB2/tty/ttyUSB2 N: ttyUSB2 S: d_uart S: serial/by-id/usb-D-Link_Inc_D-Link_DWM-157-if03-port0 S: serial/by-path/platform-3f980000.usb-usb-0:1.4:1.3-port0 E: DEVLINKS=/dev/d_uart /dev/serial/by-id/usb-D-Link_Inc_D-Link_DWM-157-if03-port0 /dev/serial/by-path/platform-3f980000.usb-usb-0:1.4:1.3-port0 E: DEVNAME=/dev/ttyUSB2 E: DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.3/ttyUSB2/tty/ttyUSB2 E: ID_BUS=usb E: ID_MODEL=D-Link_DWM-157 E: ID_MODEL_ENC=D-Link\x20DWM-157 E: ID_MODEL_ID=7d0e E: ID_PATH=platform-3f980000.usb-usb-0:1.4:1.3 E: ID_PATH_TAG=platform-3f980000_usb-usb-0_1_4_1_3 E: ID_REVISION=0300 E: ID_SERIAL=D-Link_Inc_D-Link_DWM-157 E: ID_TYPE=generic E: ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device E: ID_USB_DRIVER=option E: ID_USB_INTERFACES=:020e00:0a0002:ff0201:ff0000:080650: E: ID_USB_INTERFACE_NUM=03 E: ID_USB_PROTOCOL_FROM_DATABASE=Interface Association E: ID_VENDOR=D-Link_Inc E: ID_VENDOR_ENC=D-Link\x2cInc\x20\x20 E: ID_VENDOR_FROM_DATABASE=D-Link Corp. E: ID_VENDOR_ID=2001 E: MAJOR=188 E: MINOR=2 E: SUBSYSTEM=tty E: TAGS=:systemd: E: USEC_INITIALIZED=978899 

One Solution collect form web for “В правилах udev назначается одинаковое имя порта для модема с 4 портами ttyUSB”

Вы можете попытаться совпадение при создании устройства ttyUSB1. Измените свое правило на

 ACTION=="add", ENV{ID_VENDOR_ID}=="2001", ENV{ID_MODEL_ID}=="7d0e", ENV{DEVNAME}=="/dev/ttyUSB1", SYMLINK+="d_uart" 

Удостоверьтесь, что вы sudo udevadm control --reload после любых изменений. Вероятно, вы должны совпадать с ID_USB_INTERFACE_NUM , если это отличается для каждого порта, чтобы он работал, даже если у вас есть другие устройства ttyUSB* .

  • Не удается получить доступ к Rasperberry Pi через Интернет
  • Ошибка при попытке подключения к Интернету с использованием wvdial
  • Linux и Unix - лучшая ОС в мире.