Ce site est multilangue :
4 minute(s) de lecture
Cet article contient 788 mots.
Source brute de l'article : MD
Description
OpenWRT a un outil pour faire la mise à niveau d’une version à une autre nommé sysupgrade. Il est possible de l’invoquer depuis l’interface web d’administration Luci, depuis le menu “Système” > “Flash firmware”.
Le principal ennui - et cela peut en être un - est que par défaut, l’usage
de sysupgrade
va supprimer toute trace de configuration personnalisée…
à moins de prendre quelques précautions bien utiles, avant !
Le procédé suivant explique pas-à-pas la mise à niveau tout en mode CLI !
c’est plus rapide, et normalement fonctionnel)
Procédé
La première chose à laquelle nous veillons est d’installer l’outil curl
,
car par défaut le binaire wget
nativement installé ne supporte pas TLS.
# opkg install curl
opkgscript.sh
Ensuite, nous récupèrons ce script fort utile opkgscript.sh
:
$ curl -O https://raw.githubusercontent.com/richb-hanover/OpenWrtScripts/master/opkgscript.sh
Et, nous donnons les droits d’exécution nécessaire :
# chmod 0700 opkgscript.sh
2/ on sauvegarde la liste des paquets installés - pour pouvoir restaurer après la mise à niveau système :
# ./opkgscript.sh -v write
Le script écrit la liste dans un fichier /etc/config/opkg.installed
.
Téléchargement firmware
Récupèrons la nouvelle version du firmware :
⇒ e.g. pour la version 19.07.6, et, pour le routeur Ubiquiti EdgeRouter X :
$ v="19.07.6"
$ curl -O https://downloads.openwrt.org/releases/"${v}"/targets/ramips/mt7621/{openwrt-"${v}"-ramips-mt7621-ubnt-erx-squashfs-sysupgrade.bin,sha256sums}
⇒ e.g. pour un snapshot, tel que pour le Xiaomi Redmi Router AC2100 :
$ curl -O https://downloads.openwrt.org/snapshots/targets/ramips/mt7621/openwrt-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-sysupgrade.bin
Puis, nous vérifions la somme de contrôle afin de nous assurer du firmware :
$ sha256sum -c sha256sums 2> /dev/null | grep OK
⇒ Résultat correct pour le routeur Ubiquiti EdgeRouter X :
openwrt-19.07.6-ramips-mt7621-ubnt-erx-squashfs-sysupgrade.bin: OK
ATTENTION : Si la vérification échoue, allez en discuter sur le forum !
Ne cherchez pas à mettre à jour avec un micro-logiciel corrompu !!!
Sauvegarde configuration
L’étape suivante est de vérifier la configuration de la sauvegarde :
# sysupgrade -l
Si nécessaire, il faut éditer le fichier pour ajouter certains répertoires/fichiers,
ainsi dans le cas où un utilisateur a été ajouté correctement au groupe `sudo`
,
il faudra ajouter ce qui suit dans le fichier /etc/sysupgrade.conf
:
- /etc/sudoers
- /etc/sudoers.d/
Vérifions à nouveau - et sauvegardons la configuration :
# sysupgrade -b /tmp/backup-${HOSTNAME}-$(date +%F).tar.gz
/etc/config/opkg.installed
précédemment créé avec
le script opkgscript.sh
.Puis, il faut récupèrer cette sauvegarde :
$ scp root@openwrt:/tmp/backup*.tar.gz $(pwd)
(où ‘openwrt’ est l’adresse IP de votre routeur…)
Ultimes vérifications
Par acquis de conscience, assurons-nous de l’espace mémoire et disque
avec les commandes free
et df
, histoire de vérifier l’état et de la
disponibilité.
Puis supprimons ce qui devient désormais inutile :
- les fichiers de listes des paquets :
# rm -r /tmp/opkg-lists/
- les caches suivants :
# sync && echo 3 > /proc/sys/vm/drop_caches
- Et si nécessaire, suppression des pilotes wifi suivants :
# rm /etc/modules.d/*{80211,ath9k,b43}*
Mise à Niveau Système
Enfin, passons à la mise à niveau système, tel que :
# sysupgrade -v openwrt-"${v}"-*-sysupgrade.bin
⇒ Exemple, pour le routeur Ubiquiti EdgeRouter X :
sysupgrade -v openwrt-"${v}"-ramips-mt7621-ubnt-erx-squashfs-sysupgrade.bin
Code : ash
Saving config files...
etc/config/dhcp
etc/config/dhcp-opkg
etc/config/dropbear
etc/config/firewall
etc/config/firewall-opkg
etc/config/https-dns-proxy
etc/config/https-dns-proxy-opkg
etc/config/luci
etc/config/luci-opkg
etc/config/network
etc/config/ntpclient
etc/config/opkg.installed
etc/config/rpcd
etc/config/system
etc/config/ucitrack
etc/config/ucitrack-opkg
etc/config/uhttpd
etc/dropbear/authorized_keys
etc/dropbear/dropbear_rsa_host_key
etc/group
etc/hosts
etc/inittab
etc/luci-uploads/.placeholder
etc/opkg/keys/0b26f36ae0f4106d
etc/opkg/keys/1035ac73cc4e59e3
etc/opkg/keys/5151f69420c3f508
etc/opkg/keys/72a57f2191b211e0
etc/opkg/keys/792d9d9b39f180dc
etc/opkg/keys/9ef4694208102c43
etc/opkg/keys/b2d571e0880ff617
etc/opkg/keys/b5043e70f9a75cde
etc/opkg/keys/c10b9afab19ee428
etc/opkg/keys/dace9d4df16896bf
etc/opkg/keys/dd6de0d06bbd3d85
etc/opkg/keys/f94b9dd6febac963
etc/passwd
etc/profile
etc/profile.d/opkg.sh
etc/rc.local
etc/shadow
etc/shells
etc/sysctl.conf
etc/uhttpd.crt
etc/uhttpd.key
etc/uhttpd.key
etc/uhttpd.crt
Commencing upgrade. Closing all shell sessions.
Normalement votre session SSH va se fermer et le routeur démarrer !
Après la mise à niveau, il est très probable que les machines derrière le routeur n’est plus accès correctement à Internet. C’est une phase normale ; ne pas paniquez.
En effet, ne pas oublier que sysupgrade
supprime toute configuration utilisateur.
L’étape suivante va d’être de restaurer le “profil utilisateur”.
Mise à Niveau “tiers”
# opkg update && opkg list-upgradable
Normalement suite à la mise à niveau, il ne devrait pas y en avoir beaucoup.
Restauration profil utilisateur
On répète les étapes d’installation de l’outil curl, puis du script opkgscript.sh
.
Et une fois installé et les droits d’exécution attribués, on l’exécute pour
qu’il complète l’installation du “profil utilisateur” :
# ./opkgscript.sh -v install
Pour finir, mieux vaut redémarrer !
Ultimes Vérifications
Ensuite, vérifier la configuration de votre routeur :
- que vos différentes interfaces réseaux soient toujours présentes et opérationnelles.
- que votre configuration “firewall” soit correcte ; vérifiez dans les différents onglets votre configuration.
- que les différents services, que vous auriez précédement installés, soient toujours opérationnels, tel qu’un tunnel IPv6, OpenVPN, ou tout service accessible depuis le menu “Services”.
Voilà…
Normalement, tout devrait fonctionner correctement en suivant correctement ce processus de mise à niveau.