
Tengo un módulo 4G que requiere que lo ejecute.
echo '03f0 581d' > /sys/bus/usb-serial/drivers/generic/new_id
después de cada inicio/reanudación para que el módem sea visible. ¿Cómo debería hacer esto automático?
- Agregue VID y PID a fuentes serie USB y vuelva a compilar
- Cree un script que se ejecute al iniciar/reanudar y que los agregue dinámicamente
- ¿Algún tipo de regla udev?
¿Cuál sería el mejor enfoque? Creo que el udev
enfoque parece el más razonable. ¿Supongo que eso también funcionaría con suspender/reanudar?
El módem es un módem HP lt4112 LTE/HSPA+ Gobi 4G (Huawei ME906E).
Pregunta adicional: ¿Por qué es necesario volver a ejecutar el comando después de un ciclo de suspensión/reanudación? ¿El módulo del kernel se descarga o se reinicia de alguna manera cuando la computadora portátil se suspende en la RAM?
Respuesta1
Suponiendo que los ID de producto y proveedor de su dispositivo sean los configurados anteriormente, es decir, 03f0
y 581d
respectivamente, puede crear unudevregla que inicializará automáticamente el dispositivo y lo vinculará alibqmi, Como se muestra abajo:
file /etc/udev/rules.d/98-modem-rules.rules
Cree el archivo usando su editor de texto favorito (y sudo
se requieren los permisos adecuados) con el contenido:
ACTION!="add|change", GOTO="mbim_to_qmi_rules_end"
SUBSYSTEM!="usb|drivers", GOTO="mbim_to_qmi_rules_end"
# load qmi_wwan module
SUBSYSTEM=="usb", \
ATTR{idVendor}=="03f0", ATTR{idProduct}=="581d", \
RUN+="/sbin/modprobe -b qmi_wwan"
# Initialize the LTE lt112 module to operational status:
SUBSYSTEM=="usb", \
ATTR{idVendor}=="03f0", ATTR{idProduct}=="581d", \
ATTR{bConfigurationValue}="3"
# add the new id in the qmi_wwan driver
SUBSYSTEM=="drivers", \
ENV{DEVPATH}=="/bus/usb/drivers/qmi_wwan", \
ATTR{new_id}="03f0 581d"
# load qcserial module
SUBSYSTEM=="usb", \
ATTR{idVendor}=="03f0", ATTR{idProduct}=="581d", \
RUN+="/sbin/modprobe -b qcserial"
# add the new id in the qcserial driver
SUBSYSTEM=="drivers", \
ENV{DEVPATH}=="/bus/usb-serial/drivers/qcserial", \
ATTR{new_id}="03f0 581d"
LABEL="mbim_to_qmi_rules_end"
En su máquina, también necesitará instalar los paquetes apropiados:
Asumiendo Ubuntu (ya que no se proporcionó información de distribución), ejecute:
sudo apt install libqmi libqmi-utils
Cuando termine, active la nueva regla udev:
sudo udevadm control --reload-rules
sudo udevadm trigger
También puedes encontraradministrador de módem, será útil una interfaz gráfica de usuario para ver las estadísticas del módem, como la intensidad de la señal de la red, etc.
Se puede instalar mediante:
sudo apt install modem-manager-gui
Será necesario un arranque en frío después de insertar una tarjeta SIM.
Actualizar:
Una alternativa a esto sería instalar el paquete usb-modeswitch-data
(que también incorporaráinterruptor de modo usbcomo dependencia).
El paquete contiene reglas udev que permiten que usb-modeswitch inicialice el dispositivo correctamente, con múltiples entradas para múltiples dispositivos. Vea los registros de cambios en el mismoaquí.
Las reglas udev del paquete se almacenan en un archivo llamado 40-usb_modeswitch.rules
. Para su hardware particular, está en la línea 32-33:
# HP hs4112
ATTR{idVendor}=="03f0", ATTR{idProduct}=="581d", RUN+="usb_modeswitch '/%k'"
Después de instalar usb-modeswitch
y usb-modeswitch-data
, deberá reiniciar, incluso después de volver a cargar las reglas de udev antes de que se reconozca la tarjeta SIM.