it-swarm.com.de

Huawei USB-Modem - Der richtige Treiber (Modul) wird nicht geladen

Ich habe ein Huawei E303F USB Modem. Ich habe Ubuntu Studio 16.04.1 LTS "Xenial Xerus" installiert. Das Modem wird erkannt vom Netzwerkmanager.

Ich kann in Network Manager eine Mobile Broadband-Verbindung einrichten . Es wird jedoch keine Verbindung zum Internet hergestellt. Das Verbindungssymbol wird lange angezeigt und bleibt dann stehen.

Die Verbindung kann jedoch erst hergestellt werden, nachdem Sie unter Windows eine Verbindung zum Internet hergestellt und dann mit Neustart in Ubuntu gebootet haben. Wenn ich das System herunterfahre und dann in Ubuntu starte (oder), stecke ich das Gerät ab und stecke es wieder ein, es funktioniert nicht. Obwohl ich es mit sb_modeswitch jederzeit erkennen kann, ist die Verbindung nicht hergestellt.

Dann muss ich wieder in Windows booten und in Ubuntu neu starten.

Nach dem Herstellen einer Verbindung zum Internet in Windows und einem Neustart in Ubuntu :

usb-devices: Modeminfo beim Verbinden

Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  4 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=12d1 ProdID=1506 Rev=01.02
S:  Manufacturer=HUAWEI
S:  Product=HUAWEI Mobile
C:  #Ifs= 7 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=03 Prot=01 Driver=option
I:  If#= 1 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
I:  If#= 2 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:  If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=03 Driver=option
I:  If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=02 Driver=option
I:  If#= 5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
I:  If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage

usb-devices: Modeminfo, wenn keine Verbindung hergestellt wird

T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 11 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=12d1 ProdID=1506 Rev=01.02
S:  Manufacturer=HUAWEI
S:  Product=HUAWEI Mobile
C:  #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=03 Prot=01 Driver=option
I:  If#= 1 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=03 Prot=16 Driver=option
I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=03 Driver=option
I:  If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=02 Driver=option
I:  If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
I:  If#= 5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
1
Arun_Jo

Ich habe mein Modem in Ubuntu Studio 16.04 zum Laufen gebracht

In Ubuntu Studio 12.10 habe ich den huawei-Treiber installiert und es funktionierte ohne zusätzlichen Tweak. In Ubuntu Studio 15.10 hat es direkt nach dem Einstecken funktioniert. Ich habe nichts getan, um es zum Laufen zu bringen. In Ubuntu Studio 16.04 habe ich die einfachen Schritte von usb_modeswitch und modprobe ausgeführt, damit es funktioniert. Es gibt eine Reihe von Artikeln und Fragen in Foren zu diesem Thema. Trotzdem möchte ich erwähnen, wie ich es gemacht habe und zwar sehr detailliert. Es umfasst drei einfache Schritte:

Bevor Sie die folgenden Schritte ausführen, prüfen Sie, ob Sie vom Hersteller einen Treiber für Ihr Gerät erhalten haben. Für Huawei ist der Treiber so alt, dass Sie die folgenden Schritte ausführen können.

Schritt 1: Ermitteln, ob Ihr Gerät erkannt wurde

Finden Sie mit den Befehlen lsusb und usb-devices heraus, ob Ihr USB-Stick erkannt wurde.

Wenn das Ergebnis Ihr Modem in der Liste anzeigt, überprüfen Sie, über wie viele Schnittstellen (If#) es im Befehl usb-devices verfügt, wobei für jede Schnittstelle eine Zeile mit einem I: beginnt.

Wenn es nur eine Schnittstelle (If #) mit der Klassenspezifikation 'Cls = 08 (stor.)' Gibt, befindet es sich im USB-Flash-Laufwerksmodus. Sie müssen es im nächsten Schritt in den Modem-Modus schalten.

Ist dies nicht der Fall, ist Ihr Modem fehlerhaft oder es treten Probleme auf.

Schritt 2: usb_modeswitch zum Umschalten in den 'Modem Mode'

1) Unterschritt:

Erstes Update von usb-modeswitch und usb_modeswitch-data:

Wenn Sie es irgendwie schaffen, ins Internet zu gelangen, können Sie zum Aktualisieren die folgenden Befehle im Terminal verwenden: Sudo apt-get install usb-modeswitch usb-modeswitch-data

oder

Mit 'Synaptic Package Manager' herunterladen und offline installieren:

Sie können jeden anderen Computer mit Ubuntu und Internetverbindung verwenden. Öffnen Sie den Synaptic Packet Manager und geben Sie usb-modeswitch in das Suchfeld ein. Im Ergebnis markieren Sie beide Pakete. Dabei werden Sie gefragt, ob verwandte Abhängigkeitspakete markiert werden sollen. Klicken Sie auf "Markieren". Gehen Sie dann zur Datei und klicken Sie auf "Generate Package Download Script" und wählen Sie das Verzeichnis aus, in dem Sie das Skript speichern möchten. Geben Sie dem Skript einen Namen wie "deblist" und speichern Sie es. Wechseln Sie dann in das Verzeichnis des Skripts. öffne dort ein Terminal und tippe,

bash ./deblist

Dadurch werden die Pakete in dasselbe Verzeichnis wie das Skript heruntergeladen. Kopieren Sie das Verzeichnis auf Ihren Computer und installieren Sie sie, indem Sie ein Terminal im selben Verzeichnis öffnen und eingeben

Sudo dpkg -i package1.deb package2.deb package3.deb 

Dabei sollten die Dateien package1.deb, package2.deb, package3.deb usw. durch die Namen der heruntergeladenen Pakete ersetzt werden. Dies sollte die Pakete installieren. Die obigen Schritte gelten generell für jede Software.

2) Unterschritt:

Erstellen Sie dann eine Datei mit dem Namen 12d1: 1446 in der Datei /etc/usb_modeswitch.d/ Verzeichnis als Superuser mit dem Befehl touch.

Sudo touch /etc/usb_modeswitch.d/12d1:1446

"12d1" ist die Huawei "Vendor ID" und "1446" ist die "nicht geschaltete Produkt-ID" für mein Gerät lsusb oder usb-devices Befehle für Ihr Gerät.

3) Unterschritt:

Öffnen Sie dann zum Wechseln in den Modem-Modus ein Terminal und geben Sie Folgendes ein

Sudo usb_modeswitch -v 0x12d1 -p 0x1446 -J

der Befehl usb_modeswitch sollte eine Vermittlungsmethode/-nachricht enthalten. Hier wird die Umschaltmethode durch -J spezifiziert und dies ist die Standard-Huawei-Umschaltmethode. Es variiert mit verschiedenen Geräteherstellern. Geben Sie man usb_modeswitch in das Terminal ein, um weitere Informationen zu erhalten.

Geben Sie nun usb-devices in das Terminal ein und Sie sollten nun eine neue 'Produkt-ID' und viele Schnittstellen (If #) für Ihr Gerät aufgelistet sehen. Die meisten Schnittstellen (If #) sollten die Option als Treiber verwenden. Einige dieser Schnittstellen werden für die Internetverbindung verwendet. In den meisten Fällen hat die für die Verbindung verwendete Schnittstelle einen anderen Treiber wie 'huawei_cdc_ncm'.

Versuchen Sie nun, eine Verbindung zum Internet herzustellen, indem Sie mit dem 'Network Manager' von Ubuntu eine 'Mobile Broadband Connection' einrichten. Wenn es verbunden ist, ist Ihre Arbeit erledigt. Ist dies nicht der Fall, können Sie mit dem nächsten Schritt fortfahren.

Schritt 3: Laden des Treibers

Sie können anhand des Befehls usb-devices sehen, welchen Treiber Ihr modusumgeschaltetes Modem verwendet.

1) Unterschritt:

Wenn als Treiber für alle Schnittstellen die Option (If #) angezeigt wird, mit Ausnahme der als USB-Speicher verwendeten, fahren Sie mit dem Unterschritt 2 fort . (oder) Wenn 'huawei_cdc_ncm' angezeigt wird, gehen Sie zu/lib/modules/(uname -r)/kernel/drivers/net/usb /, indem Sie Folgendes eingeben:

Sudo thunar /lib/modules/(uname -r)/kernel/drivers/net/usb/

oder

Sudo nautilis /lib/modules/(uname -r)/kernel/drivers/net/usb/

und verschieben Sie die Datei 'huawei_cdc_ncm' mit der Methode 'Ausschneiden und Einfügen' in ein beliebiges anderes Verzeichnis als Sicherungskopie.

Entfernen Sie nun das Gerät, schließen Sie es wieder an und geben Sie den Befehl usb_modeswitch ein. Im Befehlsergebnis usb-devices sollte 'none' als Treiber für die Schnittstelle (If #) angezeigt werden, die als Modem verwendet wird.

2) Unterschritt:

Entfernen Sie nun das Gerät wieder und geben Sie den Befehl ein,

Sudo rmmod option

um den Optionstreiber aus dem Kernel zu entfernen

Stecken Sie nun das Gerät neu ein und geben Sie den Befehl usb_modeswitch ein. Und trotzdem sollten Sie 'none' als Treiber für das Modem und 'option' als Treiber für andere Schnittstellen (If #) im Befehlsergebnis usb-devices sehen.

Öffnen Sie nun die Datei /sys/bus/usb-serial/drivers/option1/new_id mit nano:

Sudo nano /sys/bus/usb-serial/drivers/option1/new_id

tippe 12d1 1506 und speichere es mit Strg + o und beende es mit Strg + x. Hier 1506 ist die 'Modeswitched Product ID'. Wenn Sie nun usb-devices eingeben, sollten Sie 'option' als geladenen Treiber für das Modem anzeigen.

3) Unterschritt:

Verwenden Sie nun den Befehl modprobe usbserial, um das Gerät mit dem geladenen 'Option'-Treiber arbeiten zu lassen.

Sudo modprobe usbserial vendor=12d1 product=1506

Versuchen Sie nun, das Modem mit dem Internet zu verbinden. Meistens sollte es verbunden sein, aber wenn dies nicht der Fall ist, ziehen Sie den Stecker aus der Steckdose und wiederholen Sie den Schritt 3 . Wenn keine Verbindung hergestellt werden kann, kann das Modem manchmal durch die Automatisierung dieser Befehle mit dem Internet verbunden werden.

Schritt 4: Automatisieren

Um diesen Prozess zu automatisieren, führen Sie nach Abschluss von Schritt 1 den Unterschritt 2 aus. Kopieren Sie die folgenden Zeilen

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="/usr/sbin/usb_modeswitch -v 12d1 -p 1446 -J"

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="/bin/bash -c 'modprobe option && echo 12d1 1506 > /sys/bus/usb-serial/drivers/option1/new_id'"

gehen Sie mit dem Befehl zu /lib/udev/rules.d/40-usb_modeswitch.rules

Sudo mousepad /lib/udev/rules.d/40-usb_modeswitch.rules

oder

Sudo gedit /lib/udev/rules.d/40-usb_modeswitch.rules

Vergessen Sie nicht, die 'Produkt-ID' in den obigen Zeilen nach dem Kopieren in Ihre 'ungeschaltete Produkt-ID' zu ändern. Wenn Sie das Gerät jetzt aus und wieder einstecken, sollte es mit dem Internet verbunden sein.

Auch wenn es funktioniert. Manchmal wird die Verbindung erst hergestellt, nachdem ich den Stecker gezogen und wieder eingesteckt habe, nachdem ich das System gestartet habe. Ich denke, es dauert einige Zeit, um den 'Option'-Treiber zu laden.

1
Arun_Jo

Ich habe herausgefunden, dass Ubuntu, obwohl es einen cdc_mbim-Treiber hat, nicht zwei Schnittstellen (If# in usb-devices -Befehl) aus der Schnittstelle erzeugen kann, die für die Verbindung in Ubuntu verwendet wird. Aber es scheint, dass Windows dies kann. Also beim Neustart der Schnittstelle sind noch Informationen im Modem, denke ich aber beim Aus- und Einschalten ist es nicht.

Beim Booten in Ubuntu werden diese Schnittstellen erkannt und der richtige Treiber (cdc_mbim) ausgewählt. Für die Verbindung werden jedoch nicht unbedingt zwei Schnittstellen benötigt. Schon eine Schnittstelle mit dem richtigen Treiber reicht aus. Das bedeutet, dass Sie nicht erst Windows starten müssen, wenn rechtes Modul/Treiber geladen ist richtig (option Modul).

0
Arun_Jo