Présentation rapide du routeur

Autant le dire tout de suite, la compatibilité avec les modems USB 3G/4G est conforme à ce qui est annoncé sur la page du vendeur, c’est à dire quasi nulle: Huawei E3372, 8372 ou E303 Hilink 3G/4G… Il ne faut pas espérer pouvoir partager un accès IP d’un téléphone connecté sur le port USB, sans avoir injecté au préalable un logiciel alternatif dans le routeur.

Premier réflexe: ouvrir la bête! Pour ce faire, il suffit de retourner le boîtier, d’enlever l’étiquette de garantie qui recouvre la seule et unique vis, d’enlever cette vis, et d’carter les côtés du routeur avec quelque chose de plat et fin (lame de couteau ou de cutter, réglet, etc.) afin de libérer les crochets qui maintiennent la plaque en plastique du dessous:


La carte électronique est maintenue en place par des entretoises moulées dans le dessus du boîtier, et ses connecteurs qui débordent légèrement dans les découpes de la face avant et arrière. Il suffit donc d’écarter légèrement ces deux faces vers l’extérieur du boîtier pour libérer la carte électronique.

En y regardant de plus près, on peut constater que cet appareil:

  • Possède deux antennes fictives:


Les fils noirs sont reliés à la masse, et aucun composant n’est câblé sur les empreintes proches de ces connexions d’antenne. Ce n’est pas une spécificité du routeur que j’ai reçu, car on peut constater la même supercherie en cherchant des photos du même routeur sur Internet. La différence avec les connexions des cordons coaxiaux des vraies antennes est flagrante:


Pour les plus sceptiques, voici sur quoi aboutit le fil noir côté antenne:

Les cordons coaxiaux aboutissent sur ceci:

  • Est équipé d’une mémoire Flash de 8Mo seulement:

  • Dispose d’une interface ‘UART’ qui était un peu masquée par une étiquette sur le circuit imprimé:

On pourra se débarrasser des deux fausses antennes qui n’apportent absolument rien à l’appareil, et remplacer éventuellement les vraies antennes par de la connectique permettant de relier des antennes à gain qui amélioreront de façon significative la porté en WiFi.
La taille de la mémoire Flash, dans laquelle est stocké le logiciel embarqué, réduit le champ des possibilités. On se contentera d’un logiciel léger, avec des fonctions peut-être limitées.
Enfin, l’interface série UART permettra de vérifier la bonne exécution des différents logiciels embarqués, afin d’écarter d’office ceux qui plantent dès l’exécution. Pour info, il s’agit d’une voie série au niveau TTL 3.3V. Il faudra intercaler un convertisseur RS232 éventuellement (type MAX3232) si vous souhaitez connecter un port série de PC, ou une interface USB / série TTL 3.3V (donc pas le type d’interface se terminant sur un connecteur SUBD9 mâle!).

Procédure de mise à jour du logiciel embarqué

Je vous fais grâce des nombreux essais infructueux. Je ne détaillerai que la procédure permettant d’aboutir à la fonction recherchée ci-dessous.

Première étape

Chargez le fichier contenant le futur logiciel du routeur mis à votre disposition ici: gargoyle_1.10.0-ramips-mt7620-xiaomi-miwifi-mini-squashfs-sysupgrade.bin
Ce logiciel a été compilé par Gargoyle Router.
Enregistrez-le sur le PC que vous allez utiliser pour mettre à jour le routeur, à un emplacement où vous le retrouverez facilement.

Deuxième étape

Démarrer le routeur en mode ‘mise à jour’. Pour ce faire, il faut déconnecter son alimentation électrique, appuyer sur le bouton RESET situé juste à côté du connecteur d’alimentation électrique, et le maintenir appuyé lorsque vous remettez le routeur sous tension. Maintenez-le appuyé quelques secondes, jusqu’à voir la LED indiquant que le routeur est sous tension clignoter rapidement (pictogramme ‘power’: cercle ouvert en haut traversé d’une barre verticale).
Une fois dans cet état, le routeur utilise l’IP 192.168.1.1 et autorise le chargement d’un fichier binaire par une interface web légère.
Il faut par conséquent forcer le PC à utiliser une adresse IP sur cette même plage, comme par exemple 192.168.1.93:

C’est un exemple de configuration sous Windows XP, mais faites avec ce que vous avez sous la main. Tout se passe sur l’interface web, donc peu importe la version ou le type de système d’exploitation.
Ouvrez ensuite un explorateur Internet, et connectez vous à l’adresse suivante: http://192.168.1.1
Vous devez voir une page à peu près semblable à celle-ci:

La version 8 d’Internet Explorer, utilisé dans cet exemple, semble avoir du mal à afficher les caractères spéciaux. Ce n’est pas gênant pour ce que nous allons faire.
Cliquez sur le bouton « Parcourir’ en haut à droite et sélectionnez le fichier binaire téléchargé lors de la première étape.
Cliquez enfin sur le bouton en dessous de la zone où est affiché le chemin vers le fichier, afin de procéder au chargement du fichier dans la mémoire RAM du routeur.
Une fois cette opération terminée, le routeur transfère le fichier de sa mémoire RAM vers la mémoire Flash. Cette opération prend moins de 5 minutes.
Le routeur redémarre ensuite avec le logiciel fraîchement installé.

Troisième étape

Il faut maintenant reparamétrer la gestion interne des interfaces réseau, afin que le routeur fasse le pont réseau vers le port USB au lieu de le faire vers son connecteur ‘WAN’ (celui qui est habituellement relié au modem fournissant l’accès Internet).

Cette action peut être effectuée de deux façons:

  • Télécharger le fichier déjà modifié par mes soins et le copier en lieu et place de celui présent sur votre routeur ;
  • Modifier vous-même manuellement le contenu du fichier de configuration des interfaces réseau.

Dans les deux cas, vous aurez besoin d’utiliser un logiciel permettant de vous connecter à la ‘console’ Linux, quel que soit le mode de connexion choisi. Si votre PC fonctionne avec Windows, je conseille d’utiliser Putty: Cliquez ici.

Si vous optez pour la connexion par voie série, il faut croiser les signaux TX et RX entre le PC et le routeur: TX du routeur sur RX du PC par exemple.

Les identifiants par défaut sont les suivants:

  • login: root
  • password: password

Première méthode

  • Télécharger ce fichier: network
  • Copier ce fichier sur une clé USB et la connecter sur le port USB du routeur
  • Se connecter au routeur en SSH ou par le port série ;
  • Chercher le point de montage de la clé USB, qui doit se trouver dans /tmp/usb_mount. Une fois arrivé dans ce répertoire, la commande ls devrait vous donner le reste du chemin d’accès ;
  • Copier le fichier de configuration avec la commande cp network /etc/config/network
  • Forcer la synchro RAM/Flash avec la commande sync ;
  • Sortir du point de montage de la clé USB avec la commande cd / ;
  • Éjecter la clé USB avec la commande umount suivie du chemin d’accès à la clé USB. Exemple: umount /tmp/usb_mount/04C5_E627/ ;
  • Redémarrer le routeur avec la commande reboot ;
  • Vous pouvez passer à la quatrième et dernière étape.

Seconde méthode

  • Se connecter au routeur en SSH ou par le port série ;
  • Ouvrir le fichier de configuration avec l’éditeur de texte ‘vi’ en saisissant la commande vi /etc/config/network ;
  • Passer en mode ‘insertion’ en appuyant sur la touche i du clavier. La lettre I doit s’afficher en bas à gauche ;
  • Commenter les lignes concernant le paramétrage de l’interface WAN en ajoutant le caractère ‘#’ au début de chaque ligne, et ajouter deux nouveaux paramètres à la suite de ces lignes commentées, comme indiqué ci-dessous:


L’écart entre la gauche de l’écran et le début du texte est obtenu en appuyant une fois sur la touche de tabulation du clavier.

  • Quitter le mode d’insertion de texte en appuyant sur la touche ‘Echap’ ou ‘Esc’ du clavier et taper :wq comme indiqué ci-dessous, puis valider avec la touche ‘Entrée’ ou ‘Enter’ du clavier:


Il est aussi possible de quitter l’édition sans sauvegarder, si vous n’arrivez pas à corriger une erreur de frappe, en utilisant la commande :q!.

  • Forcer la synchro RAM/Flash avec la commande sync ;
  • Redémarrer le routeur avec la commande reboot‘ ;
  • Vous pouvez passer à la quatrième et dernière étape.

Quatrième étape

Il s’agit de la seule étape qu’il conviendra de répéter à chaque fois que vous souhaiterez partager la connexion du téléphone sur votre réseau WiFI/Ethernet.

  • Connecter le téléphone au port USB du routeur, avec un cordon disposant de toutes les connexions nécessaires. En cas de doute, testez la connexion sur un PC ;
  • Activer le partage de connexion par son port USB. Exemple sous Android 8:

  • Le routeur détecte automatiquement la connexion du périphérique sur son interface usb0 et applique le pont réseau créé lors de la modification du fichier ‘network’.

Le partage de la connexion est quasi instantané. On pourra par exemple confirmer le bon fonctionnement en faisant un test de ping vers un site web existant, à partir de la console Linux du routeur. Exemple: ping aliexpress.com
On doit voir s’afficher une nouvelle ligne chaque seconde indiquant la réponse du serveur distant.

Conclusion

Même payé au tarif normal à moins de 19€ au moment où j’écris ces lignes, ce routeur reste une solution très abordable et utile pour partager avec plusieurs utilisateurs une connexion de données mobile sur un réseau WiFi et filaire (Ethernet).
La réaffectation de la fonction WAN sur le port USB libère le port Ethernet initialement dédié à cette fonction (celui en plastique bleu). Il est alors possible de connecter 5 équipements en liaison filaire avec le routeur.
On voit sur la carte électronique que de nombreuses empreintes de composants ne sont pas peuplées, comme la protection du bus USB contre les décharges électriques et la surconsommation du périphérique connecté:

Ces économies sont aussi visibles sur la connectique RJ45, qui n’est équipée que des 4 broches nécessaires au fonctionnement en 100Mbps, tout comme le cordon réseau fourni avec le routeur:

Le bloc d’alimentation secteur ne m’inspire pas franchement confiance. Il sera à mon avis le premier à tomber en panne, car ses caractéristiques techniques (9V/0.6A) en font un élément sous-dimensionné pour alimenter simultanément le routeur et l’équipement USB. L’utilisation au maximum de sa charge admissible va accélérer l’usure de ses composants:

Le WiFi n’est pas activé par défaut sur Gargoyle. Il conviendra de se connecter à l’interface web accessible sur les liaisons filaires uniquement, à l’adresse définie par défaut: http://192.168.1.1
Le mot de passe est le même que celui nécessaire pour se connecter sur la console Linux, à savoir: password
Il faudra ensuite aller dans le menu ‘Connection’ > ‘Basic’, définir les paramètres souhaités dans la partie ‘Wireless’ visible en bas de page et valider les nouveaux paramètres avec le bouton ‘Save Changes’ tout en bas de la page.
On constatera au passage que la zone ‘Internet / WAN’ indique bien l’utilisation de la connexion Internet du téléphone:

Par sécurité, il faudra aussi changer le mot de passe d’accès à la page d’administration du routeur, dans le menu ‘System’ > ‘Router Access’, dans la zone ‘Change Administrator Password’. Ici encore, il faudra valider avec le bouton ‘Save Changes’ en bas de page.

Passés les réglages de sécurité de base, le reste du paramétrage dépendra de votre utilisation. La page d’aide du logiciel Gargoyle est accessible ici.
Gargoyle est basé sur OpenWrt. Il est donc possible d’installer des paquets supplémentaires, dans la limite de la taille disponible en mémoire Flash, avec ‘opkg ».

Je n’ai volontairement pas détaillé comment utiliser Putty, entre autre, afin de ne pas alourdir ce billet. Vous trouverez toute l’aide nécessaire avec l’aide de votre moteur de recherche favori.
Enfin, ce billet décrit mon expérience de modification sur mon routeur. J’ai pu recharger sans souci de nombreux logiciels par l’intermédiaire de la page web légère accessible en mode ‘mise à jour’ (voir la deuxième étape ci-dessus), même après avoir injecté des logiciels incompatibles. L’éventualité d’un blocage définitif de votre routeur n’est cependant pas à exclure. Toute expérimentation est effectuée à vos risques et périls.