Banana Pi pour les petits, Arch Linux et Gcompris

J’ai acquis il y a un moment une carte Banana Pi. Elle me servait à l’origine comme NAS, mais ayant rapatrié le serveur de fichiers sur une autre machine, elle se trouvait sans emploi. Mes trois jeunes enfants revendiquant le droit de manipuler un clavier et une souris, j’ai eu l’idée d’installer et de configurer pour eux ce mini-PC, en leur permettant, dans un premier temps, d’y jouer avec la suite éducative Gcompris. J’ai choisi Archlinux ARM pour faire tourner tout cela, et tenté, dans la configuration retenue, de privilégier la simplicité, à la fois dans le choix et la disposition du matériel et dans l’utilisation du logiciel, tout en gardant la possibilité de faire évoluer les choses avec l’évolution des capacités des trois petits et de la liberté qu’il est possible et raisonnable de leur laisser dans l’utilisation de l’informatique et l’exposition à l’écran.

Bananes vertes et jaunes.

Banana Pi + Gcompris = Petits ravis
Photo : Ian Ransley, licence CC.

Voici à toutes fins utiles et pour mémoire le relevé des étapes de cette installation.

Pré-requis :

Matériel

J’ai utilisé :

  • Une carte Banana Pi logée dans un boîtier de base quoique transparent (les trois loupiots sont clients des LEDs bleue, verte qui clignote et rouge…)
  • Une souris optique sans fil Logitech M185 que j’avais en réserve (le choix de la souris sans fil permet de supprimer un… fil ! – mais toute bonne vieille souris USB fera l’affaire)
  • Un écran avec entrée HDMI (moniteur, téléviseur, … tout écran aurait fait l’affaire)
  • Un cable HDMI/HDMI pour relier la carte à l’écran
  • Un clavier USB basique (ici aussi, j’aurais pu supprimer un fil en choisissant un clavier sans fil mais je n’en avais pas sous la main)
  • Pour alimenter la carte et les périphériques, un chargeur récupéré d’un autre appareil et délivrant un courant de 2A sous une tension de 5V, via un cable micro-USB. J’ai utilisé un chargeur pour iPad 2 qui correspond exactement à ces caractéristiques, et se trouvait inemployé, la tablette en question ayant rendu l’âme
  • Une carte SD de classe 6 d’une capacité de 8Go (j’ai commencé avec une 4Go qui est une capacité suffisante, mais laisse assez peu de marge de manoeuvre pour faire évoluer le système)
  • Pour ranger l’ensemble, j’ai choisi de fixer le boîtier au mur avec quatre petites pastilles scratch adhésives : les cables sont ainsi plaqués contre le mur et le tout n’occupe pas de place inutile sur mon bureau, mais reste décrochable pour modifier les branchements, changer la carte SD, etc. J’aurais aussi pu fixer le boîtier directement derrière l’écran avec ces pastilles qui remplacent, pour la très modique somme de 2 à 3 €, un coûteux et souvent inesthétique support VESA…

Logiciel

Pour la partie logicielle :

Installation et configuration de base d’Arch Linux ARM sur la carte Banana Pi

Écriture de l’image sur la carte SD

Téléchargement de l’archive contenant l’image à transférer sur la carte SD

J’ai téléchargé l’archive
ArchLinux_For_BananaPi_v2.0.tgz
disponible sur plusieurs serveurs accessibles depuis :
http://www.lemaker.org/resources/9-96/archlinux_for_bananapi.html (attention, tous ne proposent pas la dernière version),
vérifié l’intégrité du fichier en comparant ce que renvoie la commande :
$ sha1sum ArchLinux_For_BananaPi_v2.0.tgz
avec la somme de vérification publiée sur cette même page.
J’ai ensuite décompressé l’archive :
$ tar -xvzf ArchLinux_For_BananaPi_v2.0.tgz
Pour obtenir l’image décompressée :
ArchLinux_For_BananaPi_v2_0.img

Transfert de l’image sur la carte SD

J’ai connecté la carte SD avec un lecteur de cartes au PC, et repéré le nom du périphérique dans /dev/ en consultant la sortie de la commande :
$ sudo fdisk -l
Ma carte SD était nommée /dev/sdX et comportait une unique partition formatée en FAT32 et nommée /dev/sdX1 – dans mon cas, sdX correspondait à sdb.
Je me suis assuré que la partition présente sur la carte était bien démontée :
$ sudo umount /dev/sdX1
En me plaçant dans le répertoire dans lequel se trouvait l’image décompressée, j’ai ensuite utilisé la commande dd pour transférer l’image vers la carte SD. Cette action nécessite les droits de super-utilisateur :
$ sudo dd if=ArchLinux_For_BananaPi_v2_0.img of=/dev/sdX bs=4M
puis patienté quelques minutes jusqu’à la fin du transfert.

Premier démarrage du système

Préparation de la carte Banana Pi

Il faut ensuite insérer la carte SD dans la carte Banana Pi et effectuer les branchements de la carte :

  1. Le cable Ethernet pour l’accès au réseau
  2. Le cable HDMI/HDMI pour la connection vers l’écran
  3. Un clavier et une souris USB à connecter sur les deux ports USB de la carte
  4. L’alimentation sur le port micro-USB dédié qui se trouve du côté du port HDMI et du port SATA (j’avais au départ par erreur branché l’aimentation sur l’autre port micro-USB (le port OTG), mais ce port ne permet pas de fournir suffisamment de courant à la carte).

Lorsque l’alimentation est branchée, le système démarre.

NB : le branchement de l’écran, du clavier et de la souris ne sont pas absolument requis pour la suite si le réseau comprend un serveur dhcp qui attribue dynamiquement une adresse IP à la carte Banana Pi (ce qui est probablement le cas dès lors qu’on dispose d’un routeur de type Box ADSL). Le démon dhcp et le démon ssh étant activés par défaut, l’installation peut se faire entièrement à distance (headless) au moyen d’une connection SSH. Il suffit de repérer dans la liste des clients dhcp du routeur l’adresse IP de la carte et d’ouvrir une session à distance via une connection SSH depuis un terminal sur une autre machine. C’est la façon dont j’ai procédé.

Changement du mot de passe du super-utilisateur (root)

Par défaut, le mot de passe du super-utilisateur (root) est bananapi. Il y a aussi un utilisateur standard créé dont le login est bananapi et le mot de passe bananapi.

Il est de bonne pratique de changer le mot de passe par défaut pour le super-utilisateur root. Une fois une session ouverte en tant que root avec le mot de passe par défaut :
# passwd
Pour changer le mot de passe de l’utilisateur standard bananapi :
# passwd bananapi

Création d’un utilisateur standard

Par exemple, pour créer un utilisateur dont le login est albert et qui appartient au groupe wheel :
# useradd -m -G wheel -s /bin/bash albert

Paramètres linguistiques, configuration du clavier, date et heure locales

Configuration du clavier

Pour que le clavier AZERTY que j’utilise soit reconnu correctement :
# loadkeys fr-pc
et pour que cette configuration résiste au redémarrage :
# localectl set-keymap fr-pc
pour le mode console et
# localectl set-x11-keymap fr
pour une prise en compte dans l’environnement graphique.

Heure et date

Pour mettre le système à l’heure locale, choisir un couple Zone/Sous-zone (liste consultable en passant la commande timedatectl list-timezones) approprié (dans mon cas Europe/Paris) et passer la commande :
timedatectl set-timezone Europe/Paris

Localisation

En tant que root, éditer /etc/locale.gen en décommentant la/les ligne(s) correspondant à la/aux combinaison(s) langue / encodage des caractères à générer.
# nano /etc/locale.gen
Dans mon cas, j’ai choisi l’anglais des États-Unis et le français de France encodés en UTF-8.
Pour générer les locales choisies :
# locale-gen
Et pour définir la locale du système par défaut :
# echo LANG=en_US.UTF-8 > /etc/locale.conf

Redimensionnement de la partition de la carte SD dédiée au système de fichiers pour utiliser tout l’espace de stockage

L’image téléchargeable que l’on vient de transférer sur la carte SD est prévue pour une carte de 4 Go de capacité seulement. Si l’on dispose d’une carte de capacité supérieure (8 Go dans mon cas), on peut redimensionner la partition correspondant au système de fichiers pour bénéficier de tout l’espace de stockage inutilisé.

Après avoir ouvert une session en tant que super-administrateur (root), lister les partitions en passant la commande :
# fdisk -l
La partition qui nous intéresse est la seconde partition de /dev/mmcblk0. La manipulation consiste à supprimer cette partition de la table de partition avec fdisk, et à en recréer une nouvelle qui part du même secteur et se termine au dernier secteur de la carte, puis à redimensionner le système de fichiers pour qu’il corresponde à la nouvelle taille de la partition.
# fdisk /dev/mmcblk0
Commande d pour effacer une partition puis, normalement, la partition 2 est proposée par défaut.
Commande n pour (re)créer une partition (normalement, la partition 2 est proposée par défaut) puis le point de départ correspondant à l’ancien point de départ (normalement proposé par défaut) et la fin au dernier secteur (normalement proposé, là encore, par défaut).
Commande w pour écrire les changements dans la table de partition puis redémarrage :
# reboot
et, après avoir ré-ouvert une session en tant que root, passer la commande :
# resize2fs /dev/mmcblk0p2

C’est à peu près tout pour la configuration de base.

Mise à jour des paquets

Il reste, avant de démarrer l’installation de l’environnement graphique, à mettre à jour les paquets :
# pacman -Syu

Installation du serveur X et de l’environnement de bureau LXDE sur la carte Banana Pi

Pour le serveur X :
# pacman -S xorg-server xorg-server-utils xorg-apps xf86-video-fbdev xterm xorg-twm xorg-xinit
Pour lxde :
pacman -S lxde
Et pour démarrer tout cela, éditer le fichier .xinitrc dans ~/ pour y ajouter exec startlxde :
# nano ~/.xinitrc

Normalement, la commande startx démarre sans autre configuration à régler l’environnement de bureau.

La police par défaut est assez moche, de mon point de vue. La liste de paquets suivants devrait satisfaire les plus exigeants et les autres qui y piocheront ce qui leur plaît : xorg-fonts-type1 ttf-dejavu artwiz-fonts font-bh-ttf font-bitstream-speedo gsfonts sdl_ttf ttf-bitstream-vera ttf-cheapskate ttf-liberation

Par exemple, pour installer ttf-liberation et ttf-dejavu :
# pacman -S ttf-dejavu ttf-liberation

Installation de Gcompris

# pacman -S gcompris

Voix, musique et effets sonores

Pour bénéficier des effets sonores, des voix enregistrées et de la musique, il faut configurer le son.

Installer le paquet alsa-utils, qui comprend entre autres l’application alsamixer (réglage de la sortie son en mode console) :
# pacman -S alsa-utils

Pour que la sortie se fasse par le port HDMI, il suffit de créer ou d’éditer le fichier :
/etc/asound.conf
et d’y insérer les lignes suivantes :
pcm.!default {
type hw
card 1
device 0
}
ctl.!default {
type hw
card 1
}

pour sortir le son par le port audio jack de la carte, remplacer card 1 par card 0.
/etc/asound.conf
pcm.!default {
type hw
card 0
device 0
}
ctl.!default {
type hw
card 0
}

Compléments

Installation d’un navigateur

Les possibilités de perfectionnement et de réglage personnalisé de l’environnement de bureau sont nombreuses. On peut par exemple souhaiter installer un navigateur peu gourmand en ressources comme midori :
# pacman -S midori

Lightdm

Pour faciliter la conneection, on peut activer Lightdm, un display manager embarqué par Lxde.

# systemctl enable lightdm

C’est fini !

Sources :
Arch Linux : Banana Pi
https://wiki.archlinux.org/index.php/Banana_Pi
Lemaker Wiki : SD Card installation
http://wiki.lemaker.org/SD_card_installation
Arch Linux : Installation guide
https://wiki.archlinux.org/index.php/installation_guide
Arch Linux : General recommendations
https://wiki.archlinux.org/index.php/General_recommendations
ArchwikiFR : Xorg
https://wiki.archlinux.fr/Xorg
Lemaker Forum : Audio Mode Setting
http://forum.lemaker.org/thread-213-1-1-.html
Lemaker Forum : Resize SD Card Partitions
http://forum.lemaker.org/forum.php?mod=viewthread&tid=537&page=2

Laisser un commentaire

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

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