PROJET AUTOBLOG


Le blog de Seboss666

Site original : Le blog de Seboss666

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Modem 4G Huawei E3372 sous Linux, pas super accessible…

vendredi 12 janvier 2018 à 18:30

Sachant qu’Orange ne veut pertinemment pas corriger le pépin de la ligne téléphonique de ma mère qui continue de payer son abonnement (et Free la location de la boucle), abonnement qui fonctionne seulement la moitié du temps (remember la présentation de Grafana, c’était pour ça), la fibre étant promise pour le « premier trimestre 2018 » j’ai décidé de tenter l’aventure de la clé 4G le temps que ça arrive. Clé reçue en 24h, carte sim Free en moins d’une semaine, et même si au final la clé sera utilisée sous Windows, j’ai évidemment voulu la tester sous Linux. J’ai bien fait, c’est pas aussi simple qu’on le pense au premier abord.

Disclaimer : Tout ne sort pas de mon cul non plus, je me suis grandement basé sur l’excellent article bourré d’infos du site lecrabeinfo.net. Vu les moyens à engager pour avoir un full réseau (avec routeur WiFi à modifier pour passer à OpenWRT), je me suis arrêté à la première étape, avoir du réseau le plus simplement possible.

Comment ça une clé USB Mass Storage ?

En effet, j’ai branché la clé après avoir inséré la carte SIM, et tout ce que le noyau me dit, c’est qu’il a reconnu un USB Mass Storage, et un lecteur CD qui n’arrive pas à s’initialiser (contient notamment les éventuels logiciels de gestion sous Windows…) :

[seboss666@seboss666-ltp ~ ]$ lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 005: ID 12d1:1f01 Huawei Technologies Co., Ltd. E353/E3131 (Mass storage mode)
Bus 002 Device 004: ID 5986:024b Acer, Inc 
Bus 002 Device 003: ID 8087:07dc Intel Corp. 
Bus 002 Device 002: ID 062a:5918 MosArt Semiconductor Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

La notice, naturellement, vous demande de vous tourner vers le logiciel de gestion windowsien pour exploiter la clé. Dans le cul donc. J’avais réactivé ModemManager dans l’espoir qu’il détecte quelque chose, mais non. J’ai trouvé ma solution grâce à une recherche Qwant, en anglais évidemment, donc je vous explique ce que j’ai fait pour la culture. Je n’ai pas suivi l’intégralité de l’article, donc libre à vous si son cas d’utilisation vous convient.

En fait, la clé peut évidemment fonctionner dans plusieurs modes, celui qui m’intéresse est le mode carte Ethernet USB, qui est pratiquement universel sous Linux, et notamment celui qu’on utilise lorsqu’on active le partage de connexion USB de son smartphone. Mais pour ça, il faut bricoler un peu.

On commence par installer le paquet usb_modeswitch sur ma Manjaro (usb-modeswitch sous Debian/Ubuntu), ensuite via sudo on crée/remplit le fichier /etc/usb_modeswitch.conf :

# Huawei E353 (3.se) and others
 TargetVendor=0x12d1
 TargetProductList="14db,14dc"
 HuaweiNewMode=1
 NoDriverLoading=1

Pour le détails des identifiants, se reporter à l’article original, mais bon ça va nous permettre de changer le mode de la clé, avec la commande suivante :

sudo usb_modeswitch -v 12d1 -p 1f01 -c /etc/usb_modeswitch.conf
Look for target devices ...
 No devices in target mode or class found
Look for default devices ...
 Found devices in default mode (1)
Access device 005 on bus 002
Get the current device configuration ...
Current configuration number is 1
Use interface number 0
 with class 8
Use endpoints 0x01 (out) and 0x81 (in)
Using standard Huawei switching message
Looking for active drivers ...
 OK, driver detached
Set up interface 0
Use endpoint 0x01 for message sending ...
Trying to send message 1 to endpoint 0x01 ...
 OK, message successfully sent
Read the response to message 1 (CSW) ...
 Response successfully read (13 bytes), status 0
Reset response endpoint 0x81
 Could not reset endpoint (probably harmless): -99
Reset message endpoint 0x01
 Could not reset endpoint (probably harmless): -99
 Device is gone, skip any further commands
-> Run lsusb to note any changes. Bye!

Quelques secondes plus tard, on devrait avoir ça :

[seboss666@seboss666-ltp ~ ]$ lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 006: ID 12d1:14dc Huawei Technologies Co., Ltd. E33372 LTE/UMTS/GSM HiLink Modem/Networkcard
Bus 002 Device 004: ID 5986:024b Acer, Inc 
Bus 002 Device 003: ID 8087:07dc Intel Corp. 
Bus 002 Device 002: ID 062a:5918 MosArt Semiconductor Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Dans mon cas deux secondes plus tard NetworkManager m’indiquait être relié à un nouveau réseau. On y est presque !

Et maintenant, comment qu’on rentre son code PIN et qu’on teste sur nPerf ?

En effet, je n’ai pas rentré le code pin de la carte SIM, donc pas de connexion « internet » pour l’instant. Une petite inspection me permet de vite trouver mes petits :

[seboss666@seboss666-ltp ~ ]$ ip a
(...)
4: enp0s20u7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether 0c:5b:8f:27:9a:64 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.10/24 brd 192.168.3.255 scope global dynamic noprefixroute enp0s20u7
       valid_lft 86359sec preferred_lft 86359sec
    inet6 fe80::a7b2:408a:e123:9435/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[seboss666@seboss666-ltp ~ ]$ ip route show
default via 192.168.3.1 dev enp0s20u7 proto dhcp metric 20100 
192.168.3.0/24 dev enp0s20u7 proto kernel scope link src 192.168.3.10 metric 100

J’ouvre donc un énième onglet dans Firefox, et tape l’adresse http://192.168.3.1 : Paf ça fait des Chocapic ! Je tombe sur l’interface me demandant de saisir le code PIN (et me propose de l’enregistrer pour ne plus avoir à le saisir à l’avenir, faites comme vous le sentez). Dans l’excitation du moment je n’ai pas pris le temps de faire de capture d’écran.

J’avais tout de même un souci : après la saisie, le voyant clignote encore un peu et se fixe sur un Cyan sans clignoter. Petite notice qui dit qu’on est sur un 3G+/4G. Vérification sur l’interface, en effet, il dit être relié en 4G, mais la force du signal est pas dingue. Dans les paramètres réseau, on peut décocher l’option Prise en charge des réseaux 4G.

Moins de deux secondes plus tard, ça fonctionne :

<script async src="https://platform.twitter.com/widgets.js" charset="utf-8">

Le débit est pas ouf chez moi, mais j’ai l’intention de tester évidemment chez ma maman, mais je sais déjà via les techniciens Free qui sont passé que la couverture est pas trop dégueulasse malgré la distance des antennes (dans ma chambre c’était du full 4G). C’est donc une victoire ! (d’ailleurs pour pas perdre trop de choses, j’ai écrit la majorité de cet article via la connexion 3G tant que c’était frais 😀 )

Y’a encore du chemin à faire

Imaginez quelqu’un qui est un utilisateur basique d’une distribution Linux, qui se retrouve à devoir utiliser ce genre de solutions (ma frangine s’est vu « offrir » une clé 3G par Orange pendant qu’il ne voulait pas engager les travaux pour déployer un nouveau faisceau de ligne pour la raccorder en ADSL moisi). À qui dans mon entourage hors bricoleurs je peux dire « ben avec usb_modeswitch ça va tout seul, ensuite tu bricoles sur l’interface web de la clé et roulez jeunesse » ? Non, ça ne fonctionne pas.

Il y a donc encore des progrès à accomplir sur ce terrain, je ne dis pas que c’est évident, facile à faire, d’autant qu’on peut difficilement compter sur les fabricants, comme trop souvent encore. Malgré tout c’est fonctionnel, ce qui est déjà une première étape.

Mais comment ça pourrait aller mieux, alors qu’on annonce des « Always connected PCs » embarquant des modems 4G, voire carrément des puces ARM, Microsoft avançant main dans la main avec Qualcomm et adaptant Windows 10 pour qu’il fonctionne de manière transparente sur une plateforme non x86 ? Avec un Qualcomm en plus pas le plus respectueux en termes de support étendu de son matériel (plusieurs puces à destination d’Android ont vu leur support arrêté très rapidement, genre moins de trois ans, donc pas de possibilité propre d’exploiter les versions récentes d’Android), c’est une fois de plus une catégorie de matériel qu’il ne sera pas possible de libérer, même partiellement, d’autant plus si les outils pour l’exploiter derrière sont aussi rugueux.

Enfin bon, dans mon cas, ma mère va enfin pouvoir continuer de surfer, de mater ses vidéos sur YouTube, voire même maintenant goûter aux joies de Netflix et d’Amazon Prime Video, étant donné la qualité de plus en plus douteuse des contenus des chaînes de télévision classique, même spécialisées (et avec les rediffusions, même Science et Vie TV, ça devient chiant, je sais j’ai mangé pendant deux semaines). Bref, un usage post-2010 classique qui est encore refusé à un nombre beaucoup trop important de personnes dans notre pays en raison de choix stratégiques plus que douteux, aussi bien de la part de l’État que des acteurs privés…