
Ich habe ein 4G-Modul, das ich ausführen muss
echo '03f0 581d' > /sys/bus/usb-serial/drivers/generic/new_id
nach jedem Start/Fortsetzen, um das Modem sichtbar zu machen. Wie kann ich das automatisieren?
- Fügen Sie VID&PID zu den USB-Seriell-Quellen hinzu und kompilieren Sie neu
- Erstellen Sie ein Skript, das beim Start/Fortsetzen ausgeführt wird und sie dynamisch hinzufügt
- Eine Art Udev-Regel?
Was wäre der beste Ansatz? Ich denke, dieser udev
Ansatz klingt am vernünftigsten. Ich nehme an, das würde auch über Suspend/Resume funktionieren?
Das Modem ist ein HP lt4112 LTE/HSPA+ Gobi 4G-Modem (Huawei ME906E).
Bonusfrage: Warum muss der Befehl nach einem Suspend/Resume-Zyklus erneut ausgeführt werden? Wird das Kernelmodul entladen oder irgendwie zurückgesetzt, wenn der Laptop in den RAM-Suspend-Modus versetzt wird?
Antwort1
Vorausgesetzt, die Hersteller- und Produkt-IDs Ihres Geräts sind wie oben konfiguriert, d. h. 03f0
bzw. 581d
, können Sie einudevRegel, die das Gerät automatisch initialisiert und bindet anlibqmi, Wie nachfolgend dargestellt:
file /etc/udev/rules.d/98-modem-rules.rules
Erstellen Sie die Datei mit Ihrem bevorzugten Texteditor (entsprechende Berechtigungen sudo
sind erforderlich) mit dem folgenden Inhalt:
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"
Auf Ihrem Computer müssen Sie außerdem die entsprechenden Pakete installieren:
Vorausgesetzt, es handelt sich um Ubuntu (da keine Distributionsinformationen angegeben wurden), führen Sie Folgendes aus:
sudo apt install libqmi libqmi-utils
Wenn Sie fertig sind, aktivieren Sie die neue Udev-Regel:
sudo udevadm control --reload-rules
sudo udevadm trigger
Vielleicht finden Sie auchModem-Manager, ein GUI-Frontend zum Anzeigen von Modemstatistiken wie Netzwerksignalstärke usw., das von Nutzen sein kann.
Die Installation erfolgt über:
sudo apt install modem-manager-gui
Nach dem Einlegen einer SIM-Karte ist ein Kaltstart erforderlich.
Aktualisieren:
Eine Alternative hierzu wäre, das Paket zu installieren usb-modeswitch-data
(das auch einbeziehtUSB-Modusschalterals Abhängigkeit).
Das Paket enthält udev-Regeln, die es usb-modeswitch ermöglichen, das Gerät korrekt zu initialisieren, mit mehreren Einträgen für mehrere Geräte. Siehe die Änderungsprotokolle auf derselbenHier.
Die udev-Regeln im Paket werden in einer Datei namens gespeichert 40-usb_modeswitch.rules
. Für Ihre spezielle Hardware lautet sie in Zeile 32-33:
# HP hs4112
ATTR{idVendor}=="03f0", ATTR{idProduct}=="581d", RUN+="usb_modeswitch '/%k'"
Nach der Installation usb-modeswitch
müssen usb-modeswitch-data
Sie einen Neustart durchführen, auch nach dem Neuladen der Udev-Regeln, bevor die SIM-Karte erkannt wird.