C-I) Installation d'un nouveau micrologiciel.
Ce sont les manipulations à faire si vous désirez remplacer le micrologiciel installé dans l'ONU.
Comme nous allons le voir, nous écrasons les partitions nommées "Image 0" et "Image 1" uniquement.
Je l'ai fait, ça a été testé et ça fonctionne !
C-II) Recommandation.
Je vous conseille vivement de ne pas toucher à la partition "Image 1".
Installez votre nouveau micrologiciel uniquement dans la partition "Image0".
La partition "Image 1" servira en cas de problème à réinstaller la partition "Image 0".
Et comme nous le verrons par la suite, si vous avez un blocage, comment utiliser le câble USB / TTL Serial.
C-III) Sauvegarde du paramétrage de l'ONU.
Avant de commencer à faire quoi que ce soit dans l'ONU, je vous conseille vivement de ne pas toucher au paramétrage et de faire une sauvegarde.
fw_printenv > /root/printenv.txt
Puis de le récupérer et de le stocker dans votre ordinateur.
Ne le stockez pas dans l'ONU car en faisant un "firstboot" vous perdez tous vos fichiers et vos bidouilles.
C-IV) Sauvegarde des partitions.
De même, faites une sauvegarder de toutes les partitions.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| root@HUAWEI:~# dd if=/dev/mtd0 of=/tmp/mtd0.backup
512+0 records in
512+0 records out
root@HUAWEI:~# dd if=/dev/mtd1 of=/tmp/mtd1.backup
1024+0 records in
1024+0 records out
root@HUAWEI:~# dd if=/dev/mtd2 of=/tmp/mtd2.backup
14848+0 records in
14848+0 records out
root@HUAWEI:~# dd if=/dev/mtd3 of=/tmp/mtd3.backup
12480+1 records in
12480+1 records out
root@HUAWEI:~# dd if=/dev/mtd4 of=/tmp/mtd4.backup
6528+0 records in
6528+0 records out
root@HUAWEI:~# dd if=/dev/mtd5 of=/tmp/mtd5.backup
16384+0 records in
16384+0 records out
root@HUAWEI:~# |
Et on vérifie :
1 2 3 4 5 6 7 8
| root@HUAWEI:~# la /tmp/mtd*
-rw-r--r-- 1 root root 262144 Oct 19 15:29 /tmp/mtd0.backup
-rw-r--r-- 1 root root 524288 Oct 19 15:29 /tmp/mtd1.backup
-rw-r--r-- 1 root root 7602176 Oct 19 15:29 /tmp/mtd2.backup
-rw-r--r-- 1 root root 6389879 Oct 19 15:29 /tmp/mtd3.backup
-rw-r--r-- 1 root root 3342336 Oct 19 15:29 /tmp/mtd4.backup
-rw-r--r-- 1 root root 8388608 Oct 19 15:30 /tmp/mtd5.backup
root@HUAWEI:~# |
Attention: la partition "/tmp" est temporaire, ce qui veut dire qu'au prochain démarrage de l'ONU, son contenu va disparaitre.
C-V) Transfert des sauvegardes vers Windows.
Comme j'utilise Putty sous Windows, je vais de ce fait utiliser la commande "pscp.exe" pour réaliser le rapatriement des backup.
L'ONU est installé dans le Media Converter et je suis relié par mon câble éthernet à Windows.
Je vais me créer un script Windows pour le rapatriement des backup, que voici :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| @echo off
chcp 1252 > nul
title "Reception depuis l'ONU Huawei"
set PATH=C:\Program Files (x86)\PuTty;%PATH%
set PASSWORD=root
set USERID=root@192.168.1.10:/tmp
set CHEMIN=L:\Réseaux\ONT_ONU\G-PON\Huawei_MA5671A\10.Original\Backup
echo "+-----------------------------------+"
echo "| Reception depuis l'ONU Huawei |"
echo "+-----------------------------------+"
echo.
pscp.exe -scp -pw %PASSWORD% -load Huawei_IPv4 -r -p %USERID%/mtd0.backup %CHEMIN%\mtd0.backup
pscp.exe -scp -pw %PASSWORD% -load Huawei_IPv4 -r -p %USERID%/mtd1.backup %CHEMIN%\mtd1.backup
pscp.exe -scp -pw %PASSWORD% -load Huawei_IPv4 -r -p %USERID%/mtd2.backup %CHEMIN%\mtd2.backup
pscp.exe -scp -pw %PASSWORD% -load Huawei_IPv4 -r -p %USERID%/mtd3.backup %CHEMIN%\mtd3.backup
pscp.exe -scp -pw %PASSWORD% -load Huawei_IPv4 -r -p %USERID%/mtd4.backup %CHEMIN%\mtd4.backup
pscp.exe -scp -pw %PASSWORD% -load Huawei_IPv4 -r -p %USERID%/mtd5.backup %CHEMIN%\mtd5.backup
pscp.exe -scp -pw %PASSWORD% -load Huawei_IPv4 -ls %USERID%/
echo.
pause
exit |
A vous de modifier le "chemin" où vous désirez stocker vos backup.
Bien que je n'ai pas de mot de passe, rien ne vous empêche d'en créer un. Par exemple, mettre "root".
Pour se connecter en "ssh" à l'ONU, le paramétrage se trouve dans "Huawei_IPv4".
La particularité de ce script est qu'il faut mettre "-scp" pour qu'il fonctionne sans problème.
C-VI) Quelles versions dois-je utiliser ?.
Je vais installer le micrologiciel Carlito que l'on trouve dans "Gpon Hack, List of firmwares and files".
Il existe des versions, à savoir l'une pour l'Image 0 et l'autre pour l'Image 1.
Dans la version "FS Modded", il n'y a qu'une seule version, que vous pouvez aussi bien installer dans l'Image 0" que dans l'Image 1".
Il faut savoir que l'on peut cloner l'Image 0 dans l'Image 1, mais pas l'inverse.
Pourquoi ? A cause de la taille de la partition.
Je récupère les binaires du micrologiciel Carlito :
--> mtd2 : md5hash: d3cb6f7efec201b37931139feb4bb23b
--> mtd5 : md5hash: 59d2dc15227d6f693a38131eca89b29e
que je stocke dans windows.
Vu que le premier micrologiciel que je vais tester est Carlito, rien ne vous empêche de le remplacer par un autre micrologiciel, comme par exemple "FS Modded".
C-VII) Installation de l'image 1.
Remarque importante : vous ne devez pas flasher l'image sur laquelle vous vous trouvez. Si vous êtes sur l'image 0, vous devez flasher l'image 1, et vice-versa.
a) je suis sous Windows, et j'entre dans l'ONU en utilisant Putty. A priori, je suis dans l'image 0.
Vérifiez que vous êtes bien dans la bonne Image, en faisant "cat /proc/mtd".
Si vous voyez apparaitre "Image 1" vous êtes alors dans l'Image 0, et vice-versa.
On peut aussi vérifier en interrogeant "fw_printenv image_committed" qui vous donnera le numéro de l'image où vous vous trouvez.
b) on procède au premier transfert du binaire "mtd5.bin", c'est-à-dire l'image 1 depuis Windows vers l'ONU en le plaçant dans le répertoire "/tmp". Voici mon script batch sous Windows :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| @echo off
chcp 1252 > nul
title "Transfert vers l'ONU Huawei"
set PATH=C:\Program Files (x86)\PuTty;%PATH%
set PASSWORD=root
set CHEMIN=L:\Réseaux\ONT_ONU\G-PON\Huawei_MA5671A\10.Original\Binaries
set USERID=root@192.168.1.10:/tmp
echo "+---------------------------------+"
echo "| Transfert vers l'ONU Huawei |"
echo "+---------------------------------+"
echo.
pscp.exe -scp -pw %PASSWORD% -load Huawei -ls %USERID%
pscp.exe -scp -pw %PASSWORD% -load Huawei -r -p %CHEMIN%\mtd5.bin %USERID%/mtd5.bin
pscp.exe -scp -pw %PASSWORD% -load Huawei -ls %USERID%
echo.
pause
exit |
Comme indiqué dans le script, le binaire se trouve dans "/tmp/mtd5.bin".
A vous de corriger le "chemin" selon votre convenance.
c) l'image active est la 0. On va flasher l'image N°1.
1 2 3 4 5 6
| root@HUAWEI:~# mtd -e image1 write /tmp/mtd5.bin image1
Unlocking image1 ...
Erasing image1 ...
Writing from /tmp/mtd5.bin to image1 ...
root@HUAWEI:~# |
L'installation de l'image 1 est faite.
d) On va basculer vers l'image 1, en faisant :
1 2 3
| fw_setenv committed_image 1
fw_setenv image1_is_valid 1
reboot |
Cela bascule automatiquement l'image 0 vers l'image 1.
Je rappelle que cela va remettre le répertoire "/tmp" à zéro et donc, nous aurons perdu notre fichier "/tmp/mtd5.bin".
C-VIII) Installation de l'image 0.
a) on entre à nouveau dans l'ONU (par Putty) et a priori, nous sommes dans l'image 1.
b) on procède au second transfert du binaire "mtd2.bin" depuis Windows vers l'ONU en le plaçant dans le répertoire "/tmp".
On modifie le script batch en remplaçant "mtd5.bin" par "mtd2.bin". Après le transfert, le binaire se trouve dans "/tmp/mtd2.bin".
c) on va flasher l'image 0, puisqu'elle est désactivée et que nous nous trouvons dans l'image 1.
1 2 3 4 5 6
| root@SFP:/tmp# mtd -e image0 write /tmp/mtd2.bin image0
Unlocking image0 ...
Erasing image0 ...
Writing from /tmp/mtd2.bin to image0 ...
root@SFP:/tmp# |
Puis nous revenons maintenant à l'image N°0, en faisant :
1 2 3
| fw_setenv committed_image 0
fw_setenv image0_is_valid 1
reboot |
Cela bascule automatiquement l'image 1 vers l'image 0.
Comme nous pouvons basculer, sans problème, d'une image à l'autre, nous considérons que l'installation s'est bien passée.
C-IX) Résolution du problème du transfert des sauvegardes.
En dehors d'un transfert par "ssh", il existe une autre façon de procéder, mais cela se passe sous Debian.
La commande "nc" pour "netcat" (sous Debian), que je ne connaissais pas. Comme elle n'est pas installée, je m'empresse de le faire :
apt-get install netcat-traditional
Comment l'utiliser ?
Comme exemple, nous allons transférer un fichier depuis l'ONU Huawei vers mon ordinateur sous Debian. Attention, le sens du transfert à de l'importance.
a) je suis sous Debian, là où nous allons réceptionner notre fichier et nous tapons :
nc -l -p 1234 > le_chemin_du ficher_à_réceptionner
J'ai conservé le même port "1234". la commande se met en attente d'une réception.
b) je vais sous l'ONU Huawei SmartAX Ma5681a. Je vais envoyer le fichier en tapant la commande suivante :
cat le_chemin_du_fichier_à_transférer | nc 192.168.1.20 1234
J'ai créé le fichier dans le répertoire "/root" en faisant "touch essai" puis en mettant dedans la chaine "test de transfert".
L'adresse IP 192.168.1.20 est celle de l'interface où se trouve mon ordinateur, dans mon cas sous Debian.
Je rappelle que l'adresse IP de l'ONU est 192.168.1.10. Dès que l'on tape sur "enter" le fichier est transféré.
Je l'ai testé et ça fonctionne très bien, ainsi que pour des fichiers binaires.
c) je retourne sous Debian et je vérifie que j'ai bien réceptionné mon fichier. Tout va bien. J'ai mon fichier avec la chaîne de caractère "test de transfert".
Comme je préfère travailler sous Windows, j'ai une préférence pour "Putty" et la commande "pscp.exe.
d) J'ai essayé d'utiliser la commande "scp" sous Debian, mais comme j'ai une verion Linux trop récente, j'ai rencontré des problèmes.
Je n'ai pas trouvé la solution, bien que j'ai suivi à la lettre les recommandations indiquées dans le site "Hack Gpon".
Il est indiqué de faire ceci :
scp -o KexAlgorithms=+diffie-hellman-group1-sha1 -o HostKeyAlgorithms=+ssh-dss rootfs.bin root@192.168.1.10:/tmp/
depuis Debian, mais à chaque fois, j'ai une erreur de transfert.
Partager