Armbian : comment mettre à jour le Kernel et tester les versions Nightly • Domotique et objets connectés à faire soi-même

Armbian est mis à jour environ tous les 3 à 4 mois. Si vous avez le gout de l’aventure ou que vous avez besoin de la dernière version du Kernel qui prend en charge certains composants de votre mini-PC, Armbian propose une version Nightly et une procédure de mise à jour du Kernel vers la version en cours de développement. En février 2017, la version 5.25 d’Armbian apporte le support de nouvelles cartes Clearfog Base, Lime2 eMMC, Lime A33, NanoPi M1+, OrangePi Zero, OrangePi PC2. Le driver vidéo simplefb pour SoC H3… toutes les nouveautés se trouvent ici.

Identifier le Kernel et la version d’Armbian installée

Avant de commencer, regardons les versions installées. En vous connectant en SSH, vous avez du remarquer que plusieurs informations sont disponibles. Ici, j’ai utilisé un Orange Pi Lite équipé de 512Mo de RAM et d’une carte SD de 8Go. La version du noyau est la 3.4.112. Elle est basée sur la distribution sun8i (page officielle Linux Sunxi)

root@192.168.1.79's password: 
  ___                               ____  _   _     _ _       
 / _ \ _ __ __ _ _ __   __ _  ___  |  _ \(_) | |   (_) |_ ___ 
| | | | '__/ _` | '_ \ / _` |/ _ \ | |_) | | | |   | | __/ _ \
| |_| | | | (_| | | | | (_| |  __/ |  __/| | | |___| | ||  __/
 \___/|_|  \__,_|_| |_|\__, |\___| |_|   |_| |_____|_|\__\___|
                       |___/                                  

Welcome to ARMBIAN Debian GNU/Linux 8 (jessie) 3.4.112-sun8i 
System load:   0.09             Up time:       4 min        
Memory usage:  14 % of 494Mb    IP:            192.168.1.79
CPU temp:      44°C             
Usage of /:    20% of 7.2G      

Last login: Mon Feb 13 10:27:12 2017
root@orangepilite:~#

Sinon, la commande uname -a  permet de connaitre la version du Kernel installée depuis le Terminal.

uname -a
Linux orangepilite 3.4.112-sun8i #14 SMP PREEMPT Wed Sep 14 20:29:31 CEST 2016 armv7l GNU/Linux

Tous les détails de la version se trouvent dans le fichier release. On peut y accéder facilement avec la commande cat /etc/*-release

cat /etc/*-release
# PLEASE DO NOT EDIT THIS FILE
BOARD=orangepilite
BOARD_NAME="Orange Pi Lite"
VERSION=5.20
LINUXFAMILY=sun8i
BRANCH=default
ARCH=arm
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Ici, l’Orange Pi fonctionne avec la distribution Armbian (version 5.20) qui est basée sur Debian Jessie. La même que Raspbian qui fait fonctionner le Raspberry Pi.

Mettre à jour le Kernel de l’Orange Pi Lite (version 4.x)

Allez sur le site d’Armbian pour trouver la procédure de mise à jour qui correspond à votre mini-PC. Par exemple, pour l’Orange Pi Lite, c’est ici. Il est possible de mettre à jour le Kernel vers la version stable ou vers la version de développement (actuellement 4.x)

bgsvtzauytok3muhb9vk-5272126

Identifiez vous (su -) ou connectez vous en SSH avec le compte root.

On commence par supprimer

aptitude remove ~nlinux-dtb ~nlinux-u-boot ~nlinux-image ~nlinux-headers

Vous aurez au moins deux messages d’avertissement qu’il faudra accepter par Y

 Remove the following packages:
1)     expect                      
2)     libexpat1-dev               
3)     libpython3-dev              
4)     libpython3.4-dev            
5)     python3-dev                 
6)     python3.4-dev               
7)     tightvncserver              
8)     xfonts-base                 



Accept this solution? [Y/n/q/?]

De même pour ces librairies

The following packages will be REMOVED:
  expect{a} libexpat1-dev{a} libpython3-dev{a} libpython3.4-dev{a} linux-headers-sun8i linux-image-sun8i linux-u-boot-orangepilite-default python3-dev{a} 
  python3.4-dev{a} tightvncserver{a} xfonts-base{a} 
0 packages upgraded, 0 newly installed, 11 to remove and 85 not upgraded.
Need to get 0 B of archives. After unpacking 141 MB will be freed.
Do you want to continue? [Y/n/?]

Ensuite exécutez

aptitude remove ~nlinux-firmware ~narmbian-firmware ~nlinux-$(lsb_release -cs)-root

Maintenant que les anciennes ressources ne risquent plus d’interférer avec la mise à jour, exécutez successivement ces commandes. L’opération dure assez longtemps (30 minutes environ). A la fin de l’installation, vous devrez redémarrez l’OrangePi

apt-get install linux-image-dev-sun8i linux-dtb-dev-sun8i linux-headers-dev-sun8i 
apt-get install linux-u-boot-orangepilite-dev linux-$(lsb_release -cs)-root-dev-orangepilite 
apt-get install armbian-firmware sunxi-tools swconfig a10disp
reboot

Voici le journal récupéré durant la mise à jour du Kernel de mon Orange Pi Lite

root@orangepilite:~# apt-get install linux-image-dev-sun8i linux-dtb-dev-sun8i linux-headers-dev-sun8i
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  linux-firmware-image-dev-sun8i
The following NEW packages will be installed:
  linux-dtb-dev-sun8i linux-headers-dev-sun8i linux-image-dev-sun8i
0 upgraded, 3 newly installed, 0 to remove and 83 not upgraded.
Need to get 24.8 MB of archives.
After this operation, 116 MB of additional disk space will be used.
Get:1 http://apt.armbian.com/ jessie/main linux-dtb-dev-sun8i armhf 5.25 [59.7 kB]
Get:2 http://apt.armbian.com/ jessie/main linux-headers-dev-sun8i armhf 5.25 [10.3 MB]
Get:3 http://apt.armbian.com/ jessie/main linux-image-dev-sun8i armhf 5.25 [14.5 MB]                                                                                         
Fetched 24.8 MB in 1min 6s (374 kB/s)                                                                                                                                        
Selecting previously unselected package linux-dtb-dev-sun8i.
(Reading database ... 28601 files and directories currently installed.)
Preparing to unpack .../linux-dtb-dev-sun8i_5.25_armhf.deb ...
Unpacking linux-dtb-dev-sun8i (5.25) ...
Selecting previously unselected package linux-headers-dev-sun8i.
Preparing to unpack .../linux-headers-dev-sun8i_5.25_armhf.deb ...
Unpacking linux-headers-dev-sun8i (5.25) ...
Selecting previously unselected package linux-image-dev-sun8i.
Preparing to unpack .../linux-image-dev-sun8i_5.25_armhf.deb ...
Unpacking linux-image-dev-sun8i (5.25) ...
Setting up linux-dtb-dev-sun8i (5.25) ...
Setting up linux-headers-dev-sun8i (5.25) ...
Compiling headers - please wait ...
Setting up linux-image-dev-sun8i (5.25) ...
update-initramfs: Generating /boot/initrd.img-4.9.4-sun8i
root@orangepilite:~# apt-get install linux-u-boot-orangepilite-dev linux-$(lsb_release -cs)-root-dev-orangepilite
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libuuid-perl linux-base
The following NEW packages will be installed:
  libuuid-perl linux-base linux-jessie-root-dev-orangepilite linux-u-boot-orangepilite-dev
0 upgraded, 4 newly installed, 0 to remove and 83 not upgraded.
Need to get 576 kB of archives.
After this operation, 223 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://apt.armbian.com/ jessie/main linux-jessie-root-dev-orangepilite armhf 5.25 [362 kB]
Get:2 http://apt.armbian.com/ jessie/main linux-u-boot-orangepilite-dev armhf 5.25 [170 kB]                    
Get:3 http://httpredir.debian.org/debian/ jessie/main libuuid-perl armhf 0.05-1+b1 [10.0 kB]                                                                                 
Get:4 http://httpredir.debian.org/debian/ jessie/main linux-base all 3.5 [34.3 kB]
Fetched 576 kB in 1min 4s (8,990 B/s)
Preconfiguring packages ...
Selecting previously unselected package libuuid-perl.
(Reading database ... 51588 files and directories currently installed.)
Preparing to unpack .../libuuid-perl_0.05-1+b1_armhf.deb ...
Unpacking libuuid-perl (0.05-1+b1) ...
Selecting previously unselected package linux-base.
Preparing to unpack .../linux-base_3.5_all.deb ...
Unpacking linux-base (3.5) ...
Selecting previously unselected package linux-jessie-root-dev-orangepilite.
Preparing to unpack .../linux-jessie-root-dev-orangepilite_5.25_armhf.deb ...
Adding 'diversion of /etc/mpv/mpv.conf to /etc/mpv/mpv-dist.conf by linux-jessie-root-dev-orangepilite'
Unpacking linux-jessie-root-dev-orangepilite (5.25) ...
Selecting previously unselected package linux-u-boot-orangepilite-dev.
Preparing to unpack .../linux-u-boot-orangepilite-dev_5.25_armhf.deb ...
Unpacking linux-u-boot-orangepilite-dev (5.25) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for initramfs-tools (0.120+deb8u2) ...
update-initramfs: Generating /boot/initrd.img-4.9.4-sun8i
update-initramfs: Converting to u-boot format
Processing triggers for systemd (215-17+deb8u4) ...
Setting up libuuid-perl (0.05-1+b1) ...
Setting up linux-base (3.5) ...
Setting up linux-jessie-root-dev-orangepilite (5.25) ...
Setting up linux-u-boot-orangepilite-dev (5.25) ...
Updating u-boot on device /dev/mmcblk0
Processing triggers for initramfs-tools (0.120+deb8u2) ...
update-initramfs: Generating /boot/initrd.img-4.9.4-sun8i
update-initramfs: Converting to u-boot format
root@orangepilite:~# apt-get install armbian-firmware sunxi-tools swconfig a10disp
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  a10disp armbian-firmware swconfig
The following packages will be upgraded:
  sunxi-tools
1 upgraded, 3 newly installed, 0 to remove and 82 not upgraded.
Need to get 1,670 kB of archives.
After this operation, 34.8 kB of additional disk space will be used.
Get:1 http://apt.armbian.com/ jessie/utils a10disp armhf 1.0-1~armbian5.25+1 [8,824 B]
Get:2 http://apt.armbian.com/ jessie/main armbian-firmware armhf 5.25 [1,617 kB]
Get:3 http://apt.armbian.com/ jessie/utils sunxi-tools armhf 1.4.2-1~armbian5.25+1 [35.8 kB]
Get:4 http://apt.armbian.com/ jessie/utils swconfig armhf 15.04-2~armbian5.25+1 [7,704 B]
Fetched 1,670 kB in 3s (434 kB/s)    
Selecting previously unselected package a10disp:armhf.
(Reading database ... 51708 files and directories currently installed.)
Preparing to unpack .../a10disp_1.0-1~armbian5.25+1_armhf.deb ...
Unpacking a10disp:armhf (1.0-1~armbian5.25+1) ...
Selecting previously unselected package armbian-firmware.
Preparing to unpack .../armbian-firmware_5.25_armhf.deb ...
Unpacking armbian-firmware (5.25) ...
Preparing to unpack .../sunxi-tools_1.4.2-1~armbian5.25+1_armhf.deb ...
Unpacking sunxi-tools (1.4.2-1~armbian5.25+1) over (1.3-1~armbian5.20+1) ...
Selecting previously unselected package swconfig.
Preparing to unpack .../swconfig_15.04-2~armbian5.25+1_armhf.deb ...
Unpacking swconfig (15.04-2~armbian5.25+1) ...
Setting up a10disp:armhf (1.0-1~armbian5.25+1) ...
Setting up armbian-firmware (5.25) ...
Setting up sunxi-tools (1.4.2-1~armbian5.25+1) ...
Setting up swconfig (15.04-2~armbian5.25+1) ...
root@orangepilite:~#

Durant la mise à jour du Kernel, vous aurez deux questions à acceptez

oowcbb3jfbzv401rjg1j-7862337

puis

bnu5aozplzs3wnmipknp-1252571

Le format de la sortie vidéo n’est normalement pas affectée par la mise à jour du Kernel. Après re-connexion en SSH, le Kernel a bien été mis à jour. Ici, il est basé sur la version 4.9.4-sun8i.

  ___                               ____  _   _     _ _       
 / _ \ _ __ __ _ _ __   __ _  ___  |  _ \(_) | |   (_) |_ ___ 
| | | | '__/ _` | '_ \ / _` |/ _ \ | |_) | | | |   | | __/ _ \
| |_| | | | (_| | | | | (_| |  __/ |  __/| | | |___| | ||  __/
 \___/|_|  \__,_|_| |_|\__, |\___| |_|   |_| |_____|_|\__\___|
                       |___/                                  

Welcome to ARMBIAN 5.25 stable Debian GNU/Linux 8 (jessie) 4.9.4-sun8i   
System load:   2.08             Up time:       37 sec       
Memory usage:  11 % of 489Mb    IP:            192.168.1.79
CPU temp:      48°C             
Usage of /:    17% of 7.2G      


[ 82 updates to install: apt-get upgrade ]

New to Armbian? Check the documentation first: docs.armbian.com

Last login: Mon Feb 13 11:24:25 2017
root@orangepilite:~#

Installer la version Nightly

Armbian propose également une version Nightly, c’est à dire une version en cours de développement qui est compilée (en général) chaque nuit. C’est une version pour les aventuriers ou les développeurs ayant besoin d’une fonctionnalité qui n’est pas encore finalisée.

7dxxbofea3khrooz8gp7-2064501

L’installation est beaucoup plus simple puisqu’il suffit de déclarer les ressources à utiliser pour les mises à jour (update) et les mises à niveau (upgrade). Faites précédez d’un sudo si vous n’êtes pas connecté en root.

sed -i "s/apt/beta/" /etc/apt/sources.list.d/armbian.list

Ensuite

apt-get update
apt-get upgrade

Après l’update puis l’upgrade, Armbian est maintenant passé à la version 5.26. Le Kernel a également été mis à jour vers la version 4.10.0-sun8i

root@192.168.1.79's password: 
  ___                               ____  _   _     _ _       
 / _ \ _ __ __ _ _ __   __ _  ___  |  _ \(_) | |   (_) |_ ___ 
| | | | '__/ _` | '_ \ / _` |/ _ \ | |_) | | | |   | | __/ _ \
| |_| | | | (_| | | | | (_| |  __/ |  __/| | | |___| | ||  __/
 \___/|_|  \__,_|_| |_|\__, |\___| |_|   |_| |_____|_|\__\___|
                       |___/                                  

Welcome to ARMBIAN 5.26.170214 nightly Debian GNU/Linux 8 (jessie) 4.10.0-sun8i   
System load:   0.38             Up time:       2 min        
Memory usage:  12 % of 489Mb    IP:            192.168.1.79
CPU temp:      45°C             
Usage of /:    18% of 7.2G      

Last login: Mon Feb 13 12:08:51 2017

Réinstaller le script h3disp

Il est possible que le script h3disp disparaissent durant la mise à jour vers la version Nightly. C’est très gênant car le fichier script.bin est écrasé durant la mise à jour. Tous vos réglages ainsi que la format vidéo sont supprimés. Pour le réinstallé, je n’ai pas trouvé d’autre moyen que de créer un nouveau script en partant du code source disponible sur GitHub ici. J’ai remarqué que ça peut se produire lorsqu’on migre vers la version Nightly avant de mettre à jour le noyau.

Connectez vous en SSH et créer un fichier h3disp dans votre répertoire utilisateur (par exemple)

nano h3disp

Collez le script et enregistrez le avec CTRL + X puis Y.

Rendez le script exécutable

chmod +x h3disp

Maintenant vous pouvez changer de nouveau votre sortie vidéo. Par exemple.

./h3disp -m 33 -d

b5c8jfrqczygikruhdxa-1773309

Voilà, vous pouvez profiter des toutes dernières versions du noyau Linux et de la distribution Armbian. N’oubliez pas de sauvegarder vos données avant toute mise à jour et que la mise à jour peut provoquer la destruction de votre système.

Avez-vous aimé cet article ?