Как автоматизировать usb_modeswitch?

Я использую модем USB LTE для подключения к Интернету. Проблема заключается в том, что каждый раз, когда я подключаю его к своему ПК, он сначала распознается как запоминающее устройство . Мне нужно вручную запускать эту команду каждый раз, когда я подключаю ее: sudo usb_modeswitch -J -v 12d1 -p 14fe , чтобы изменить ее режим на Модем / Сетевая карта . Это не большая проблема, Как мне автоматизировать этот процесс таким образом, чтобы каждый раз, когда я подключал устройство, оно в первую очередь распознавалось как модем?

1
задан 6 June 2020 в 19:48

1 ответ

Самый простой способ - создать правило udev в /etc/udev/rules.d/70-usb-modeswitch. .rules.

Например, с флешкой USB LTE от другого поставщика:

# own udev rule USB LTE 
# switch from mass storage mode to modem modem
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9bfe", RUN+="/usr/sbin/usb_modeswitch -v 1c9e -p 9bfe -M '55534243123456780000000000000606f50402527000000000000000000000'"
# load driver for modem mode
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9b01", RUN+="/bin/bash -c 'modprobe option && echo 1c9e 9b01 > /sys/bus/usb-serial/drivers/option1/new_id'"
# rule for modemmanager (example /lib/udev/rules.d/77-mm-longcheer-port-types.rules)
ACTION!="add|change", GOTO="mm_longcheer_port_types_end"
SUBSYSTEM!="tty", GOTO="mm_longcheer_port_types_end"

SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c9e", GOTO="mm_longcheer_vendorcheck"
GOTO="mm_longcheer_port_types_end"

LABEL="mm_longcheer_vendorcheck"
SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"

ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9b01", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1"
ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9b01", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1"
ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9b01", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1"
ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9b01", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1"
ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9b01", ENV{ID_MM_LONGCHEER_TAGGED}="1"

GOTO="mm_longcheer_port_types_end"

После сохранения вашего правила выполните udevadm control --reload-rules .

см. также этот более длинный пост в блоге https://bytefish.de/blog/huawei_e352s5/

2
ответ дан 19 June 2020 в 21:29

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

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