Publié le 12 avril 2024 - par

Installer OpenWRT sur un routeur Xiaomi AX3000T

Le FabLab UtoPi est installé dans les locaux de l’IUT du Creusot. L’IUT dispose bien entendu d’un réseau informatique efficace mais ultra protégé. Ils nous ont autorisé un PC (identifié par son adresse MAC) sur une seule prise murale ! On comprend les règles que la sécurité impose, mais d’un autre côté, quand les membres du FabLab sont sur place, ils ont besoin d’un AP (Acces Point) WiFi  pour les tests des ESP32, Raspberry Pi et autres IoT. On a aussi une Bambu Lab qui utilise le WiFi pour certaines fonctions inaccessibles autrement. Il fallait donc un Point d’accès WiFi disponible. Cet article explique comment j’ai modifié le routeur pour le passer sour OpenWRT.

Attention, ne vous lancez pas dans cette modification si vous n’êtes pas à l’aise avec les commandes Linux et la compréhension de cet environnement. Vous risquez de « bricker » votre routeur (selon madore.org : bricker – briquer : rendre, généralement par accident, un appareil électronique inutilisable (aussi utile qu’une brique, donc), en abîmant non pas le matériel lui-même, mais le logiciel qui le fait fonctionner). Framboise314 ne pourra être tenu pour responsable si vous transformez votre joli routeur en presse-papier !

Installer OpenWRT sur un routeur Xiaomi AX3000T

Choix du routeur

Il y a de nombreux routeurs qui pouvaient correspondre au besoin. Habituellement j’utilise le Xiaomi Mi Routeur R4, mais depuis les routeurs ont évolué et j’ai regardé ce qui se faisait actuellement. J’avais un penchant pour le Routeur Banana Pi BPI-R4 (vu sur Mini-Machines) qui n’était plus disponible au moment où j’ai voulu commander. Dans la gamme de prix (moins de 50€) et avec les caractéristiques que je souhaitais j’ai retenu le Routeur Xiaomi AX3000T (je n’ai pas d’actions Xiaomi et l’article n’est pas sponsorisé 😀 ).

Caractéristiques du routeur AX3000T

  • Wi-Fi 2,4 GHz :  IEEE 802.11ax, jusqu’à 574 Mbps
  • Wi-Fi 5 GHz :  IEEE 802.11ax, jusqu’à 2402 Mbps
  • 4 antennes à gain élevé
  • Pas de ventilateur
  • Protocoles IEEE 802.11 a/b/g/n/ac/ax, IEEE 802.3/3u/3ab
  • Chiffrement Wi-Fi : WPA-PSK/WPA2-PSK/WPA3-SAE
  • Connectique : 4 prises  10/100/1000 Mbps WAN/LAN (Auto MDI/MDIX)
  • 1 LED d’état
  • 1 x Bouton de réinitialisation
  • 1 x Bouton de connexion réseau
  • 1 x Prise d’alimentation
  • Dimensions : 225 x 172 x 208,8 mm
  • Alimentation norme chinoise fournie avec un adaptateur EU

La démarche à réaliser

Le routeur coûte environ 40€ chez Aliexpress, il est livré avec un firmware… en chinois ! Heureusement Chrome propose une traduction des pages WEB en français et on peut quand même se lancer.

La modification nécessite de se connecter en SSH au routeur en profitant d’une faille du firmware, puis d’installer OpenWRT. Manque de bol, le firmware actuel a été corrigé et ne possède plus la faille. On va donc commencer par installer un ancien firmware (avec les menus en chinois) sur le routeur. Cet ancien firmware peut être attaqué via sa faille pour autoriser la connexion SSH.

Une fois dans la place en SSH, vous pourrez charger une version en RAM de OpenWRT, puis faire une mise à jour pour une installation pérenne. Votre routeur pourra alors être paramétré comme vous le souhaitez et redémarrera avec cette configuration.

Comment faire pas à pas

J’ai utilisé pour le passage en OpenWRT la documentation OpenWRT en ligne, une vidéo et des forums (voir les sources).

Par défaut le routeur démarre sur l’adresse 192.168.31.1

Sur votre PC (Windows ou Linux) essayez de vous connecter sur le routeur
ssh root@192.168.31.1
et comme prévu, le routeur refuse la connexion tout ça parce que le fabricant ne veut pas que les utilisateurs aillent trifouiller dans son routeur. D’un autre côté, je l’ai payé ce routeur, j’en fais ce que je veux, non ? C’est d’ailleurs comme ça que Richard Stallman s’est attaqué au logiciel d’une imprimante Laser

Commencez par télécharger le firmware « percé » sur la page du wiki de OpenWRT

C’est la version 1.0.47 qui nous intéresse. Enregistrez la dans un dossier de votre disque. Connectez le routeur sur votre réseau local avec un câble Ethernet.

Mettre un mot de passe au routeur

Les traductions ont été faites dans Chrome

Connectez vous au Wifi et entrez un mot de passe. Il sera utilisé pour la gestion du routeur (voir les cases à cocher en bas de fenêtre).

Après redémarrage du WiFI, vous allez pouvoir vous reconnecter

 

C’est fait, la connexion a été effectuée et validée.

Installer le firmware « percé »

Connectez vous sur le routeur en filaire sur 192.168.31.1. Vous avez un écran d’accueil en chinois (traduit par Chrome). Entrez votre mot de passe saisi plus haut et validez.

Cliquez sur Paramètres communs (flèche jaune)

On peut maintenant accéder aux paramètres du système.

Cliquez sur Mise à jour manuelle

Choisissez un fichier (ce sera le firmware avec la faille que vous venez de télécharger).

Cliquez sur le fichier du firmware 1.0.47

Lancez la mise à niveau et attendez la fin de l’installation. (voir ci dessous)

Surveillez la LED en face avant du routeur, attendez qu’elle arrête de clignoter et redevienne blanc fixe. (Encore un piège pour les daltoniens : une seule LED avec des couleurs différentes pour donner les états ! Merci Xiaomi 🙁  )

 

Lorsque vous vous reconnectez, vous avez à nouveau la page d’accueil. Entrez à nouveau le mot de passe précédent.

Le code stok est la clé (token) affichée dans la ligne du navigateur (flèche jaune). Ce code sera utilisée pour craquer le firmware. Copiez le et mettez le de côté dans un fichier texte par exemple. Vous verrez plusieurs codes dans mes copies d’écran, ne vous inquiétez pas, j’ai fait plusieurs essais pour finaliser cet article…

Dans le même fichier texte, collez les lignes curl… … de la page Wiki :

et remplacez tous les ${1} par le code stok que vous avez copié

Ensuite copiez chaque ligne curl… et copiez la dans la console comme ci-dessous

Après avoir copié une ligne, validez la et passez à l ligne suivante, jusqu’à copier toutes les lignes. A la fin de l’opération, vous aurez débloqué l’accès SSH de votre routeur .

Connectez vous en SSH au routeur :
ssh root@192.168.31.1
Vous obtenez la connexion tant attendue. Vous pouvez entrer des commandes (ici uname -a).

Tapez la commande
cat  /proc/cmdline
et relevez le chiffre inscrit après firmware. Ici on a un firmware de type 1.

Installer OpenWRT

Récupérez la version d’OpenWRT adaptée au routeur AX3000T sur la page de téléchargement. récupérez les 2 fichiers indiqués (.ubi et .bin)

Depuis votre PC copiez le fichier .ubi vers le répertoire /tmp du routeur Xiaomi.

Un ls /tmp dans la console SSH du routeur permet de vérifier que l’opération s’est bien déroulée et que vous avez bien transféré le fichier .ubi.

Tout à l’heure nous avons relevé un firmware =1 : la page du Wiki fournit la suite des instructions à exécuter pour installer OpenWRT :

On va commencer par la première ligne ubiformat qui va formater un volume UBI (cici md8) et y flasher le fichier OpenWRT…ubi.

 

Si l’opération se déroule normalement vous ne devez pas obtenir de message d’erreur.

Entrez maintenant une par une  les lignes de commande indiquées dans le wiki, comme ci-dessus. A la fin un reboot fait redémarrer le routeur. Attendez bien que le routeur ait fini de rebooter (ça peut être long). A défaut vous pouvez bricker votre routeur (voir les commentaires)

Lorsque le routeur a redémarré vous pouvez vous connecter sur son adresse 192.168.1.1 et vous afficherez la page d’accueil de OpenWRT.

Attention, si votre Box Internet est aussi sur 192.168.1.1. (une LiveBox par exemple) il faut vous désolidariser de la box ou l’éteindre pour que seul OpenWRT vous réponde sinon… c’est le bazar !

Vous pouvez aussi vous connecter en SSH sur OpenWRT.

Sur l’écran d’accueil vous voyez que OpenWRT vous avertit qu’il est en mode recovery et que le mot de passe n’est pas configuré. On va remédier à ça.

Téléchargez le fichier OpenWRT…bin dans /tmp du routeur avec scp comme ci-dessus, depuis la console SSH.

Mettez le système à jour avec la commande sysupgrade. Relancez le système et mettez un mot de passe.

Votre OpenWRT est prêt à être configuré. Il ne devrait plus y avoir de messages d’alerte sur la page d’accueil.

Configuration utilisée en réel

La configuration ci-dessus est opérationnelle. Le Galaxy est connecté avec un adaptateur USB-C <=> Ethernet muni d’une prise permettant de recharger le smartphone avec un chargeur classique. J’ai trouvé ça sur Amazon pour 18€ environ.

Il faut configurer le smartphone pour qu’il soit en données mobiles (ici en 5G) et connecté en USB sur le port WAN du Routeur.

On voit ici la configuration du smartphone. J’avais connecté le chargeur (éclair dans le symbole de la batterie) et 5G pour le transfert de data. On avait environ 200Mo en upload et une quarantaine en download.

Conclusion

Configuré pour le FabLab, le routeur a été mis en place jeudi et a fonctionné sans problème.

J’ai choisi la plage d’adresse 172.24.0.0/16 pour l’installation.
Le routeur est à l’IP  172.24.0.254
Le serveur NAS          172.24.0.253
La BambuLab             172.24.0.200

Pour les deux derniers j’ai fait des réservations d’adresses basées sur l’adresse MAC, ce qui fait qu’à chaque mise en route les mêmes adresses IP sont attribuées aux adresses MAC correspondantes. Donc les appareils gardent la même adresse IP.

La BambuLab a fait une mise à jour de son firmware via le smartphone Galaxy S24 et elle est connectée au PC Linux Mint de contrôle, avec retour de l’AWS, choix de couleur et flux vidéo affiché.

Le NAS est à disposition des adhérents pour stocker leurs fichiers et un dossier multimedia permet de garder des vidéos comme celle sur les chauves-souris (un des projets du FabLab UtoPi).

Sources

Le routeur Xiaomi AX3000T chez Aliexpress

Modifier le routeur AX3000T pour installer OpenWRT (WiKi OpenWRT)

Versions de OpenWRT pour le routeur AX3000T

Forum AX3000T

La vidéo de modification en « anglais »

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

12 réflexions au sujet de « Installer OpenWRT sur un routeur Xiaomi AX3000T »

  1. JDB

    Merci.

    Deux Remarques :

    1 – Il manquerait une petite explication pour la commande scp (ou lien).

    2 – Pour la partie  »Entrez maintenant les lignes de commande indiquées dans le wiki, comme ci-dessus. A la fin un reboot fait redémarrer le routeur. attendez que le routeur ait fini de rebooter » : Je suppose a faire ligne après ligne ? (ce que je n’ai pas fait et je pense que mon routeur est foutu…😢)

    Apres cette etape le voyant reste orange fixe et plus aucun reseau accessible, si quelqu’un a une solution je suis preneur 😅.

    Répondre
  2. jo

    2 points :

    1/ Peut etre une alternative pour passer sous OpenWrt pour ceux qui sont en echec avec la procedure ci-dessus :
    https://www.youtube.com/watch?v=l-rczGl4i0I
    ( Je nai pas encore pu essayer)

    2/ Nouvelle Nand  :  Du nouveau

    Dixit la page « https://openwrt.org/inbox/toh/xiaomi/ax3000t »

    Certains appareils AX3000T sont livrés avec une nouvelle puce flash NAND : Winbond 25n01kvzeir. Cette puce est incompatible avec l’image stable officielle OpenWrt 23.05.4 et uboot ! N’essayez pas de le flasher sans vérifier votre puce ! Cependant, la version SNAPSHOT est entièrement compatible et testée avec les deux puces flash depuis le 13 août 

    Bien cordialement

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.