Bonjour à tou(te)s,
après de nombreux tests et recherches sur le forum (voir par ici, ou par là, ou ici…), je propose aujourd’hui un tutoriel pour les possesseurs de clefs USB GSM type Huawei modèles e3372-153h ou e3372-153s.
Il faut compter env. 1h00/1h30 de travail du début à la fin, en prenant large en intégrant le temps de lecture et quelques loupés, pour tout faire tranquillement. Certain(e)s le feront en 15min
Il se peut que la méthode proposée fonctionne aussi pour d’autres modèles de clefs :
à tester pour les plus motivé(e)s avec un autre fichier source de binaries et me dire si cela fonctionne (voir III. Ressources)
L’objectif est de vous proposer une méthode universelle, infaillible (vous me direz si c’est bien le cas), pour rendre fonctionnelle cette clef avec le plugin-sms, qui permet notamment à l’usage de s’affranchir de la méthode de l’usb_modewitch de l’excellent tuto d’@akenad (qui ne fonctionnait pas chez tout le monde), et de n’avoir qu’un seul port ttyUSBX visible dans le plugin-sms.
Ce tuto a fonctionné plusieurs fois, mais est très récent, aussi il se peut que vous rencontriez quand-même des problèmes. Si c’est le ce cas, n’hésitez-pas à me faire vos retours dans les commentaires en précisant vos configurations précises (pas de MP) Merci !
J’espère qu’il permettra à tous ceux qui se sont cassés le dents avec ce matériel de trouver une solution pérenne !
I. Matériel nécessaire
- Un Raspberry Pi 4 (ou autre) sous Pi OS Buster Lite hébergeant Jeedom (alim. min. 3A)
- Une Clef USB Huawei e3372-153h ou e3372-153s
- Un PC sous Windows (v. 7 chez moi) avec le programme DC Unlocker
- Une carte SIM avec forfait SMS (pas de data nécessaire, testé avec forfait Free à 2€/mois)
- Un petit tournevis Torx T4 en étoile à 6 branches
- Une fine lame pour déclipser le carénage plastique de la clef USB
- Un petit cable mâle-mâle (type montage Arduino) ou autre dispositif pour faire contact
II. Protocole
0. Préambule :
Il faut avoir installé le plugin-sms dans sa dernière version dans Jeedom depuis le Market, avec ses dépendances, puis l’avoir désactivé.
Je propose de retirer la carte SIM par mesure de sécurité au cas où pendant toute la durée du tuto, elle sera remise à la fin pour le test d’envoi et réception SMS.
1. Installation des composants logiciels balong-usbdload + balongflash :
Nous allons utiliser sur le Raspberry les programmes balong-usbdload et balongflash, disponibles sur GitHub. Il faut pour cela accéder au terminal, via SSH par exemple (mon cas avec Pi OS LITE), ou interface graphique si c’est votre configuration.
Dans le terminal, on tape dans l’ordre les commandes suivantes:
sudo git clone https://github.com/forth32/balongflash.git
= On installe les dépendances de balongflash, puis on tappe
sudo git clone https://github.com/forth32/balong-usbdload.git
= On installe les dépendances de balong-subload, puis on tappe
sudo cd balongflash
= On se déplace dans le repertoire balongflash, puis on tappe
sudo make
= On compile balongflash, puis on tappe
sudo cd ../
= On revient à la racine du Rpi, puis on tappe
sudo cd balong-usbdload
= On se déplace dans le repertoire balong-usbdload, puis on tappe
sudo make
= On compile balong-usbdload, puis on tappe
sudo cd ../
= On revient à la racine du Rpi, c’est terminé !
Si ces étapes se sont bien passées, vous venez d’installer les x2 programmes que nous utiliserons plus loin dans le tutoriel. Maintenant, nous allons nous intéresser à la clef.
2. Shunter la clef USB :
La clef doit être débranchée avant de lire la suite.
Il va falloir passer la passer en mode factory, c’est la méthode dite de l’aiguille ou « needle ».
Pour cela, la méthode demande pas mal de dextérité, mais ce n’est pas impossible, il faut juste prendre son temps.
Commencer par démonter le carénage de la clef : il faut dévisser les x2 vis proches du connecteur USB avec un petit tournevis Torx T4 et déclipser l’ensemble en s’aidant d’une fine lame par exemple.
Ensuite, il faut relier un connecteur d’un côté à point précis du circuit imprimé (= le plus à gauche sur l’image plus bas) et de l’autre à la masse (= carénage métal du port USB par exemple), en même temps qu’on la branche sur le Raspberry, en maintenant 5 sec env. le dispositif. Pour y parvenir, j’ai utilisé un petit câble mâle-mâle type montage arduino pour faire office de cavalier, n’importe quel conducteur assez long fera l’affaire.
Une fois que la clef est branchée tout en maintenant le dispositif, et seulement après avoir attendu 5 sec, vous pouvez déconnecter le shunt.
Cf. schéma ci-après (et une vidéo YouTube qui illustre la manip. physique à effectuer) :
Si la manip. a fonctionné, vous ne devriez pas voir la LED verte ou bleue s’allumer, elle doit rester éteinte.
Cela ne veut pas dire que la clef ne fonctionne pas, elle est passée en mode « factory »
= elle est bien alimentée et utilisable, mais ne s’occupe plus du réseau GSM.
Si ce n’est pas le cas (LED éteinte), recommencer la procédure en débranchant, puis en shuntant et en maintenant le shunt 5 sec après le branchement.
Inutile d’aller plus loin si vous n’avez pas réussi cette étape. Elle est déterminante pour la suite.
3. Injection du nouveau firmware :
Maintenant que la clef est branchée sur le Raspberry, nous allons pouvoir effectuer les modifications logiciels sur la clef en utilisant le terminal.
D’abord, nous alons télécharger le fichier source des binaries du firmware: il s’agit de la révision n°21.180.01.00.00.
-
On le télécharge en suivant ce lien en prenant soin de garder l’archive .7z sans la décompresser
-
Puis on le mets à la racine du stockage du Raspberry
(pour cela j’ai utilisé FileZilla en ssh car étant sur mac, mais vous pouvez faire autrement…) -
On installe le logiciel de décompression 7zip si besoin avec la commande suivante:
sudo apt-get install p7zip
-
on décompresse l’archive du firmware avec la commande suivante:
sudo 7z x Huawei_E3372h-153_21.180.01.00.00_Firmware_general_3Ginfo.ru.7z
-
On obtient le fichier nommé
E3372h-153_UPDATE_21.180.01.00.00.BIN
à la racine du Raspberry. Vous pouvez le vérifier facilement avec la commandesudo ls
On vient d’enregistrer proprement le fichier à injecter dans la clef à la racine du Raspberry.
Pour la suite, je vous recommande temporairement de débrancher les autres periphériques USB du Pi, pour ne pas se tromper par erreur de périphérique en injectant le firmware.
Si vous avez un disque SSD branché en USB, il faudra faire très attention au moment du choix du ttyUSB dans les lignes de commande plus bas.
Dans le terminal, taper la commande suivante :
sudo ls -l /dev/serial/by-id
Ce qui doit retourner normalement quelquechose qui ressemble à ça:
Notez bien le numéro du ttyUSBX qui s’affiche pour la clef Huawei, nous l’utiliserons à chaque fois dans les lignes de commandes suivantes. Dans l’exemple ci-dessus, il s’agit du numéro ttyUSB1, mais cela peut être différent chez vous.
Une fois la valeur ttyUSBX mémorisée, nous allons tapper la commande suivante, en replaçant « ttyUSBX » par celui que vous venez de trouver, j’ai laissé « ttyUSBX » volontairement dans la ligne de commande ci-dessous:
sudo ./balong-usbdload/balong-usbdload -p /dev/ttyUSBX balong-usbdload/usblsafe-3372h.bin
Qui donne en résultat:
Аварийный USB-загрузчик Balong-чипсета, версия 2.03, (c) forth32, 2015
* Удалена процедура flash_eraseal по смещению 000004b0
Компонент Адрес Размер %загрузки
------------------------------------------
raminit 00000000 3412 100%
usbboot 57700000 5922289 100%
Загрузка окончена
Si vous n’avez pas ce résultat, il faut recommencer. Soit vous vous êtes trompé(e) dans la valeur du ttyUSBX à mettre, soit vous avez mal shunté la clef et il faut recommencer la procédure.
Puis, en entrant à nouveau la commande
sudo ls -l /dev/serial/by-id
vous voyez que votre clef possède des nouveaux ports ttyUSBX, comme par exemple
/dev/ttyUSB1
/dev/ttyUSB2
/dev/ttyUSB3
C’est normal, avec cette étape nous venons de créer 3 interfaces séries. Maintenant, il va falloir n’en conserver qu’une. C’est l’intérêt du 2eme outil « balongflash » que nous allons utiliser.
Il faut bien noter les 3 valeurs de ttyUSBX qui s’affichent uniquement pour la clef Huawei, nous allons utiliser les 3 dans les commandes ci-dessous.
L’idée est « d’essayer » la commande suivante successivement sur les x3 ports ttyUSBX. On commence donc comme ceci avec le premier ttyUSB1 que j’avais dans ma liste de résultat (qui peut être différent chez vous je le rappelle, à adapter donc):
sudo ./balongflash/balong_flash -p /dev/ttyUSB1 E3372h-153_UPDATE_21.180.01.00.00.BIN
Le résultat doit absolument être:
sudo ./balongflash/balong_flash -p /dev/ttyUSB1 E3372h-153_UPDATE_21.180.01.00.00.BIN
Программа для прошивки устройств на Balong-чипсете, V3.0.241, (c) forth32, 2015, GNU GPLv3
--------------------------------------------------------------------------------------------------
Код файла прошивки: 9 (ONLY_FW)
Цифровая подпись: 2958 байт
Версия прошивки: 21.180.01.00.00
Платформа: BV7R11HS
Дата сборки: 2014.09.30 07:17:54
Заголовок: версия 1, код соответствия: HWEW11.1
Режим цифровой подписи: ONLY_FW (2958 байт)
Версия протокола: 7200B--SKCBADZM
Идентификатор устройства: HUAWEI BV7R11HS
----------------------------------------------------
## ---- Имя раздела ---- записано
00 Fastboot 100%
01 M3Boot_R11 100%
02 M3Boot-ptable 100%
03 Kernel_R11 100%
04 VxWorks_R11 100%
05 M3Image_R11 100%
06 DSP_R11 100%
07 Nvdload_R11 100%
08 System 100%
09 APP 100%
Перезагрузка модема...
Si vous n’obtenez pas la réponse avec la liste des items avec les pourcentages 100% en retour, c’est que le port ttyUSBX choisi n’est pas le bon. Essayer alors avec les 2 autres jusqu’à obtenir le résultat ci-dessus.
Pour vérifier qsue l’opération s’est bien déroulée, on va d’abord tapper à nouveau
sudo ls -l /dev/serial/by-id
qui doit nous retourner d’attribué un seul port ttyUSBX pour la clef Huawei, puis la commande
sudo lsusb
qui doit normalement nous retourner ceci:
ID 12D1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard
Si vous n’obtenez pas ce résultat avec la commande
lsusb
, inutile d’aller plus loin.
Dernière manip. pour la clef, elle consiste à faire en sorte de n’avoir qu’un seul port ttyUSBX visible dans Jeedom, nécessaire pour éviter des déconnexions ou des mauvais routages USB en cas de redémarrage par exemple. Dans mon cas, cette étape a été déterminante pour faire fonctionner la clef, il faut la suivre scrupuleusement.
Il faut débrancher la clef du Raspberry et l’installer sur un PC exécutant Windows (Windows 7 dans mon cas).
-
Il faut d’abord installer DC Unlocker.
-
Ensuite, brancher la clef sur un port USB
-
Cliquer sur la loupe de l’interface de DC Unlocker
-
La clef doit être reconnue comme e3372
cf. capture ci-après:
Au passage on note que le firmware s’affiche bien comme n°
21.180.01.00.00
.
Si ce n’est pas le cas, il faut reprendre l’étape 3. Injection du nouveau firmware. -
Dans la fenêtre de texte blanche, tapper la commande suivante en validant avec entrée:
AT^SETPORT="FF;12,16,A2"
(attention aux guillemets, très important !)= DC Unlocker doit retourner « OK » après validation avec entrée, puis tapper
AT^RESET
= DC Unlocker doit retourner « OK » après validation avec entrée.
Nous avons terminé avec le paramétrage de la clef !
Vous pouvez la débrancher du PC, et remonter les carénages en plastique
4. Tests d’envoi et réception de SMS :
Maintenant que la clef est prête, on installe la carte SIM, et on la rebranche sur le Raspberry Pi contenant Jeedom sur un Port USB 2 (pas encore testé sur port USB 3, à voir).
Une rallonge USB d’env. 1.00 a été utilisée avec succès dans mon essai (pour déporter la clef et améliorer le signal).
Une fois la clef branchée, vous pouvez vous connecter à Jeedom et accéder au plugin-SMS.
Cliquez sur « Activer » et dépliez le menu déroulant dans l’encart « Configuration », vous devriez voir apparaitre votre clef Huawei dans la liste, avec son numero de port azssocié, il faut la sélectionner.
Cf. extrait de la configuration chez moi:
(Il se peut que le numéro associé soit différent en fonctions de vos autres clefs déjà branchées, c’est normal).
Si vous voyez toujours plusieurs ports ttyUSBX proposés, vous risquez d’avoir des problèmes de stabilité: il faut alors refaire toute la procédure précédente « Injection nouveau firmware » jusqu’au bout, pour n’avoir qu’un seul port à la fin.
Cf. mes réglages complets visibles dans le plugin, dans l’encart « Configuration » :
Vous pouvez sauvegarder vos réglages, le démon se lance et doit passen en vert = OK.
Si votre démon n’est pas vert = OK, le plugin ne fontionnera pas.
Il faudra alors regarder les logs pour isoler le problème.
Je vous recommande de suivre la documentation offcieile du plugin-SMS pour les réglages à appliquer.
Vous pouvez « Ajouter un nouvel équipement », en le nommant et en l’activant, puis dans « Commandes » cliquer sur « ajouter un nouveau numero » et renseigner le nom, le numéro (utilisateur facultatif) et cliquer sur « Tester ». N’oublier pas le bouton « sauvegarder » en vert en haut à gauche pour sauvegarder vos réglages.
Vous devriez recevoir un SMS de test envoyé par Jeedom
Ensuite, vous pouvez tester l’envoi d’un mot simple en retour.
Si vous n’avez pas paramétré d’interaction, Jeedom vous retournera normalement un message automatique de non comréhension de la demande.
Vous venez d’activer l’envoi + la réception de SMS, yeah
Et c’est aussi la fin de ce tutoriel (ouf ! )
Pour le reste, ça se passe ici !
(Si vous rencontrez des problèmes, pas de MP mais plutôt à la suite du post pour me permettre de corriger le tuto et de centraliser les retours, Merci !)
III. Ressources
Ce tutoriel s’appuie sur différents liens et ressources, que je vous partage pour aller plus loin :
- Tutoriel de 0xf8.org : Flashing a Huawei E3372h 4G LTE stick from Hilink to Stick mode – 0xf8.org
- Tutoriel de Markus : Set Huawei E3372h from hilink to stick mode – Markus' Wiki
- Balong-usbdload : GitHub - forth32/balong-usbdload: Утилита для аварийной USB-загрузки модемов на чипсете Balong V7.
- Balongflash : GitHub - forth32/balongflash: Программа для прошивки модемов фирмы Huawei на чипсете Balong v7
- Firmwares alternatifs pour clefs Huawei: https://www.lteforum.at/mobilfunk/firmware-versionen-hi-non-hilink-e3372h-inkl-mod.2691/
- Video pour shunter la clef : https://www.youtube.com/watch?v=0RsFQH-lAQg
- Sources de binaries (en fonction du modèle de clef) :
- Tutoriel LeCrabe pour le multimode : Huawei E3372 : configurer le « multi-mode » – Le Crabe Info
- Connexion au raspberry en SSH depuis Filezilla: Transférer des fichiers sur la Raspberry Pi sans FTP avec SSH.
- Documentation officielle plugin-SMS : https://doc.jeedom.com/fr_FR/plugins/communication/sms/
- Achat de clef USb Huawei : par exemple chez Domotique-store ou Amazon (attention chez Amazon bien vérifier la réf., ce tuto n’a pas encore testé avec le modèle e3372-320, les clefs e3372h-153 semblent devenus difficiles à trouver…).