web-dev-qa-db-fra.com

Huawei modem USB - le pilote approprié (module) ne se charge pas

J'ai un modem USB Huawei E303F. J'ai installé Ubuntu Studio 16.04.1 LTS "Xenial Xerus". Le modem obtient détecté par le gestionnaire de réseau.

Je peux configurer une connexion haut débit mobile dans Network Manager. Mais ce n'est pas se connecter à Internet. Le symbole de connexion est affiché pendant un long moment puis s’arrête.

Mais il ne peut se connecter qu'après s'être connecté à Internet sous Windows, puis avoir démarré sous Ubuntu par redémarrage. Si je ferme le système puis que je démarre sous Ubuntu (ou). Débranchez le périphérique et le rebranchez, cela ne fonctionnera pas. Même si je peux le faire détecter à l'aide de sb_modeswitch à tout moment, la connexion n'est pas établie.

Là encore, je dois démarrer sous Windows et redémarrer sous Ubuntu.

Après la connexion Internet dans Windows et redémarré dans Ubuntu :

usb-devices: Informations sur le modem lors de la connexion

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: Informations sur le modem lorsque vous ne vous connectez pas

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

Mon modem fonctionne dans Ubuntu Studio 16.04.

Dans buntu Studio 12.1, j'ai installé le pilote huawei et cela a fonctionné sans aucun tweak supplémentaire. Dans buntu Studio 15.1, cela fonctionne juste après que je l’ai branché. Je n'ai rien fait pour que ça marche. Dans buntu Studio 16.04, j'ai suivi les étapes simples de usb_modeswitch et de modprobe pour le faire fonctionner. Il existe un certain nombre d'articles et de questions dans les forums à ce sujet. Mais je veux quand même mentionner comment je l’ai fait et de manière très détaillée. Il comporte trois étapes simples comme suit,

Avant d’essayer les étapes suivantes, déterminez si vous avez un pilote pour votre périphérique fourni par le fabricant. pour Huawei, le pilote est si vieux et vous pouvez donc suivre les étapes ci-dessous.

Étape 1: Déterminer si votre appareil est détecté

Déterminez si votre clé USB est détectée à l'aide des commandes lsusb et usb-devices.

Si le résultat indique votre modem dans la liste, voyez le nombre d'interfaces (If#) dont il dispose dans la commande usb-devices, répertoriée avec une ligne pour chaque interface, commençant par I:.

Si elle ne comporte qu'une seule ligne d'interface (Si #), sa spécification de classe est 'Cls = 08 (stor.)', Puis elle est en mode clé USB. Vous devez passer en mode modem à l’étape suivante.

Si ce n'est pas répertorié, votre modem est défectueux ou a quelques problèmes.

Étape 2: usb_modeswitch pour passer en "mode modem"

1) sous-étape:

Première mise à jour usb-modeswitch et usb_modeswitch-data:

Si vous parvenez à vous connecter à Internet, vous pouvez utiliser ces commandes dans le terminal pour la mise à jour: Sudo apt-get install usb-modeswitch usb-modeswitch-data

ou

Téléchargez à l'aide de 'Synaptic Package Manager' et installez-le hors ligne:

Vous pouvez utiliser n'importe quel autre ordinateur avec Ubuntu et une connexion Internet. Ouvrez le gestionnaire de paquets synaptic et tapez usb-modeswitch dans le champ de recherche et dans le résultat, marquez les deux packages. Et pendant que vous faites cela, il vous sera demandé si vous souhaitez marquer les packages de dépendance associés. cliquez sur 'Mark'. Ensuite, allez dans fichier et cliquez sur 'Générer le script de téléchargement du paquet' et sélectionnez le répertoire dans lequel vous souhaitez enregistrer le script. Donnez ensuite au script un nom tel que 'deblist' et sauvegardez-le. Ensuite, allez dans le répertoire du script. y ouvrir un terminal et taper,

bash ./deblist

Cela téléchargera les packages dans le même répertoire que le script. Copiez le répertoire sur votre ordinateur et installez-les en ouvrant un terminal dans le même répertoire et en tapant

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

Où package1.deb, package2.deb, package3.deb, etc., doivent être remplacés par les noms des packages téléchargés. Cela devrait installer les paquets. Les étapes ci-dessus sont génériques pour tout logiciel.

2) sous-étape:

Créez ensuite un fichier nommé 12d1: 1446 dans le répertoire / etc/usb_modeswitch.d / en tant que super utilisateur avec la commande touch.

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

'12d1' est l'identifiant du fournisseur Huawei et '1446' est le 'identifiant de produit non commuté' pour mon appareil et peut être obtenu à partir de l'élément lsusb ou usb-devices ci-dessus. commandes pour votre appareil.

3) sous-étape:

Ensuite, pour passer en mode Modem, ouvrez un terminal et tapez

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

la commande usb_modeswitch doit inclure une méthode/un message de commutation. Ici, la méthode de commutation est spécifiée par -J et il s'agit de la méthode de commutation standard de Huawei. Cela varie selon les fabricants de périphériques. Tapez man usb_modeswitch dans le terminal pour plus d'informations.

Maintenant, tapez usb-devices dans le terminal et vous devriez maintenant voir un nouvel "ID de produit" et de nombreuses interfaces (Si #) pour votre appareil. La plupart des interfaces (Si #) devraient utiliser l'option comme pilote. Certaines de ces interfaces sont utilisées pour la connexion Internet et la plupart du temps, celle utilisée pour la connexion a un pilote différent du type 'huawei_cdc_ncm'.

Essayez maintenant de vous connecter à Internet en configurant une "connexion haut débit mobile" à l'aide du "gestionnaire de réseau" d'Ubuntu. S'il est connecté, votre travail est terminé. mais si ce n'est pas le cas, vous pouvez alors passer à l'étape suivante.

Étape 3: Chargement du pilote

Vous pouvez voir le pilote utilisé par votre modem à l'aide de la commande usb-devices.

1) sous-étape:

Si l'option 'option' apparaît comme pilote pour toutes les interfaces (Si #), à l'exception de celles utilisées comme stockage USB, passez à la sous-étape 2 donnée ci-dessous (ou) Si est affiché 'huawei_cdc_ncm' , allez dans/lib/modules/(uname -r)/kernel/drivers/net/usb/en tapant,

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

ou

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

et déplacez le 'huawei_cdc_ncm' par la 'méthode couper-coller' dans un autre répertoire, en tant que sauvegarde.

Maintenant, retirez le périphérique, rebranchez-le et tapez la commande usb_modeswitch. Dans le résultat de la commande usb-devices, vous devez indiquer "aucun" en tant que pilote de l'interface (Si #) utilisée comme modem.

2) sous-étape:

Maintenant, supprimez à nouveau le périphérique et tapez la commande,

Sudo rmmod option

supprimer le pilote d'option du noyau

Maintenant, reconnectez le périphérique et tapez la commande usb_modeswitch. Et toujours, vous devriez voir "aucun" pilote pour le modem et "option" comme pilote pour les autres interfaces (Si #) dans le résultat de la commande usb-devices.

Ouvrez maintenant le fichier / sys/bus/usb-serial/drivers/option1/new_id en utilisant nano:

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

tapez 12d1 1506 et sauvegardez-le avec ctrl + o et quittez avec ctrl + x. Ici 1506 est "l'ID de produit à commutation de mode". Maintenant, si vous tapez usb-devices, vous devriez voir 'option' comme pilote chargé pour le modem.

3) sous-étape:

Maintenant, utilisez la commande modprobe usbserial pour que le périphérique fonctionne avec le pilote 'option' chargé.

Sudo modprobe usbserial vendor=12d1 product=1506

Maintenant, essayez de connecter le modem à Internet. La plupart du temps, il devrait être connecté, mais si ce n’est pas le cas, débranchez-le et essayez à nouveau de étape Néanmoins, s’il ne se connecte pas, le processus d’automatisation de ces commandes peut parfois connecter le modem à Internet.

Étape 4: automatisation

Pour automatiser ce processus, après avoir terminé la étape 1 de sous-étape 2, copiez les lignes suivantes.

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'"

à /lib/udev/rules.d/40-usb_modeswitch.rules à l'aide de la commande

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

ou

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

N'oubliez pas de changer l'ID de produit dans les lignes ci-dessus en votre "ID de produit non activé" après la copie. Maintenant, si vous débranchez l'appareil et que vous le rebranchez, il devrait être connecté à Internet.

Même si ça marche. Parfois, il ne se connecte qu’après que je l’ai débranché et rebranché, après l’amorçage du système. Je pense qu'il faut un certain temps pour charger le pilote "option".

1
Arun_Jo

J'ai découvert que même si Ubuntu avait un pilote cdc_mbim, il ne pouvait pas générer deux interfaces (If# dans usb-devices commande) sur celle utilisée pour la connexion à Ubuntu. Mais il semble que Windows puisse le faire. Donc, lors du redémarrage de l'interface, les informations sont toujours dans le modem, mais si vous éteignez et allumez, ce n'est pas le cas.

Ainsi, lors du démarrage dans Ubuntu, il détecte ces interfaces et sélectionne le bon pilote (cdc_mbim). Mais pas nécessairement deux interfaces sont nécessaires pour la connexion. Même une interface avec le bon pilote suffit. Ce qui signifie qu'il n'est pas nécessaire de démarrer sous Windows si le module/pilote correct est chargé correctement (module option).

0
Arun_Jo