[23/02/2015 – La marche à suivre pour installer Arch Linux ARM sur la Cubieboard a changé. Certaines des informations présentées sur cettte page ne sont plus valables.]
J’ai acquis il y a un peu plus d’un an une carte Cubieboard 1. J’y avais installé Arch Linux ARM en suivant les recommandations disponibles sur le site d’Arch Linux ARM.

Il est plus facile d’installer Arch Linux ARM sur la carte Cubieboard que de dresser un chameau. Source : The Field Museum Library
À l’occasion d’une réinstallation, je me suis rendu compte qu’une mise à jour était nécessaire, en particulier pour profiter pleinement des 1 Go de RAM embarqués sur la carte. Voici donc, à toutes fins utiles, un relevé des étapes que j’ai parcourues pour l’installation de base d’Arch Linux ARM sur la Cubieboard 1, version définitive (RAM 1 Go).
[Testé sur une carte micro SD de 16 Go de classe 10. Préparation de la carte micro SD depuis un PC tournant sous Xubuntu Linux]
Préparation de la carte micro SD
Pour la suite, sdX désigne le nom de la carte micro-SD dans /dev .
Partitionnement de la carte :
Il faut :
- Une partition de 32 Mo pour le démarrage, formatée en FAT 32, et démarrant au secteur 2048 ;
- Une partition en ext4 pour le système de fichiers occupant le reste de la carte micro SD.
Pour créer le partitionnement, on utilise fdisk :
# fdisk /dev/sdX
Puis n, p, 1, 2048, +32M, t, c pour la première partition, et n, p, 2, et les valeurs par défaut pour la seconde partition. w pour écrire les changements dans la table de partition de la carte micro-SD.
Formatage des partitions
Pour la première partition :
# mkfs.vfat /dev/sdX1
Et pour la seconde :
# mkfs.ext4 /dev/sdX2
Téléchargement du bootloader
Le fichier d’archive contenant le bootloader ( http://archlinuxarm.org/os/sunxi/cubieboard-bootloader.tar.gz ) indiqué dans le guide d’installation sur le site d’Arch Linux ARM est une version ancienne prévue pour la version bêta de la carte et qui ne permet pas d’utiliser toute la mémoire vive disponible (1 Go) mais seulement 512 Mo. Il faut aller chercher une version plus récente mise à disposition sur Sunxi, et accessible depuis cette page :
http://linux-sunxi.org/Hwpack
Les dernères versions des différents firmwares disponibles sont accessibles depuis cette page :
http://dl.linux-sunxi.org/users/amery/sunxi-3.0/latest/
Pour la Cubieboard 1, l’archive à télécharger est :
cubieboard_hwpack.tar.xz
# wget http://dl.linux-sunxi.org/users/amery/sunxi-3.0/latest/cubieboard_hwpack.tar.xz
Décompression de l’archive contenant le bootloader
Décompresser l’archive :
# tar -xf cubieboard_hwpack.tar.xz
et descendre dans le répertoire bootloader
# cd cubieboard_hwpack/bootloader
Écriture du bootloader sur la carte micro SD
On remet à zéro les secteurs de la carte micro SD qui recevront le bootloader (en préservant la table de partition) :
dd if=/dev/zero of=/dev/sdX bs=1k count=1023 seek=1
On écrit le bootloader sur la carte micro SD :
# dd if=sunxi-spl.bin of=/dev/sdX bs=1024 seek=8
# dd if=u-boot.bin of=/dev/sdX bs=1024 seek=32
Préparation de la partition de démarrage
Télécharger la dernière archive disponible contenant le système de fichiers :
# wget http://archlinuxarm.org/os/ArchLinuxARM-sun4i-latest.tar.gz
On crée deux dossiers temporaires qui serviront de point de montage pour les deux partitions de la carte :
mkdir boot-tmp
mkdir root-tmp
On monte les partitions de la carte sur les répertoires temporaires, la partition 1 (FAT) est montée sur boot-tmp, la partition 2 (ext4) est montée sur root-tmp :
mount /dev/sdX1 boot-tmp
mount /dev/sdX2 root-tmp
Décompression et copie de l’archive dans la partition destinée à accueillir le système de fichiers :
tar xf ArchLinuxARM-sun4i-latest.tar.gz -C root-tmp
Récupération du binaire cubieboard.bin et de uEnv.txt :
wget http://archlinuxarm.org/os/sunxi/cubieboard-bootloader.tar.gz
tar xzf cubieboard-bootloader.tar.gz
Copie de ces fichiers vers la partition de boot :
cp cubieboard/cubieboard.bin boot-tmp/
cp cubieboard/uEnv.txt boot-tmp/uEnv.txt
Copie du fichier uImage (kernel) vers la partition de démarrage :
cp root-tmp/boot/uImage boot-tmp/uImage
Activation des modules du noyau permettant l’affichage sur un écran connecté à la Cubieboard en HDMI :
Créer le fichier : cubie.conf dans root-tmp/etc/modules-load.d
nano root-tmp/etc/modules-load.d/cubie.conf
Et y ajouter les lignes suivantes :
fbcon
lcd
hdmi
disp
disp_ump
ump
Éditer le fichier uEnv.txt dans boot-tmp/
nano boot-tmp/uEnv.txt
Qui contient, après édition, ceci :
boot_mmc=fatload mmc 0 0x43000000 ${fexfile}; fatload mmc 0 0x48000000 ${kernel}; bootm 0x48000000
console=tty0
extraargs=console=tty0 disp.screen0_output_mode=EDID:1980x1080p60 rootwait mac_addr=XX:XX:XX:XX:XX:XX
fexfile=cubieboard.bin
mac_addr=XX:XX:XX:XX:XX:XX
est l’adresse MAC que l’on souhaite attribuer à la carte.
Synchroniser, puis démonter les deux partitions :
sync
umount /dev/sdX1 /dev/sdX2
Premier démarrage et configuration minimale du système :
Relier la Cubieboard à un écran
Insérer la carte micro-SD dans son emplacement et brancher l’alimentation de la Cubieboard, raccordée à un clavier USB et à un écran via la sortie HDMI et reliée au routeur ou à la box par un cable ethernet. Si tout se déroule conformément au plan, une console doit s’ouvrir à l’écran.
Première session
Mot de passe administrateur (root)
Ouvrir une session en tant que root (le mot de passe par défaut est root).
On complète l’installation en commençant par changer le mot de passe de root :
passwd
Le clavier en français
Si le clavier est en AZERTY, il faut l’indiquer au système :
loadkeys fr
Pour que cette disposition de clavier résiste aux redémarrage :
localectl set-keymap fr-pc
Définir un nom d’hôte
Pour que la cubieboard apparaisse sur le réseau sous son petit nom :
hostnamectl set-hostname cubieboard
Pour être à l’heure
Pour indiquer le bon fuseau horaire à prendre en compte :
timedatectl set-timezone Europe/Paris
par exemple (pour la liste des valeurs possibles, timedatectl list-timezones
).
Mise à jour des paquets
Il est recommandé de réinitialiser les jeux de clés de pacman :
pacman-key –init
Activation de DHPC
Pour mettre à jour les paquets, il faut accéder à l’internet. Par défaut, le démon dhpc n’est pas activé. À moins que le réseau ne soit en ipV6, il faut l’activer si l’on souhaite que le routeur lui attribue automatiquement une adresse IP :
systemctl start dhpcd
systemctl enable dhpcd
Normalement, la connection devrait être établie. Pour le vérifier :
ifconfig
Mise à jour des paquets
Lancer pacman à la chasse aux mises à jour :
pacman -Syu
Compléments et points notables
Le service de tâches planifiées cronie n’est pas activé par défaut. Pour le faire (et s’éviter des arrachages de cheveux pour comprendre pourquoi les tâches planifiées dans la crontab ne s’exécutent pas…) :
systemctl enable cronie
Certains paquets fort utiles ne sont pas embarqués, et notamment screen, sudo et wget. Pour pouvoir compiler des paquets, les outils contenus dans base-devel peuvent aussi être fort utiles :
pacman -S screen sudo wget base-devel
Enfin, il est de bonne pratique de n’utiliser la machine en tant que root que pour les tâches d’administration. On peut créer un utilisateur standard avec : # useradd -m -G wheel -s /bin/bash utilisateur
.
Sources :
https://gist.github.com/trixpan/6ff425f65d736b07aecf
http://archlinuxarm.org/platforms/armv7/allwinner/cubieboard
http://linux-sunxi.org/Hwpack
Ping : Installer Arch Linux ARM sur la Cubieboard | Carnet