Installer Archlinux et une interface graphique (lxde) sur un Raspberry Pi

rpi-logo
Joyeux noël à tous !!! Et puis bonne année parce que c’est bientôt ! Bon, et bien ces bien sympas ces vœux mais ça fait pas avancer le boulot, donc je vous propose de repasser aux choses sérieuses :

Vous avez surement entendu parler du Raspberry Pi (« Framboise Pi » en français, ce qui ne veut bien sûr strictement rien dire), ce petit appareil à 25-35$ qui fait fureur et qui permet de faire tourner une (petite) distribution Linux. Si vous avez fait l’achat d’un Raspberry Pi (que je nommerai RPi dans ce tuto) et que vous souhaitez l’utiliser pour autre chose que de la programmation en CLI (Command Line Interface, c’est à dire dans la console en ligne de commande), cet article est fait pour vous ! (Je vous préviens tout de suite, la distribution Debian est fournie directement avec l’interface graphique LXDE mais je considère qu’Archlinux, distribution dont nous allons parler à l’instant, est plus performante et plus personnalisable tout en fournissant des mises à jour plus – voire trop ? – régulières)

1 – Le Raspberry Pi, késako ?

Pour commencer, une présentation de la bête s’impose! Le RPi se décline en 2 versions :

RPi B

  • Le modèle A qui possède un CPU-GPU (processeur et carte graphique) Broadcom BCM2835 capable de lire des vidéos 1080p en 30 images/seconde et disposant de 256Mo de mémoire vive(RAM). Coté connectique il est doté d’un port USB, d’une sortie son, composite et HDMI. Coté technique, il est équipé de connecteurs GPIO qui peuvent être utilisé pour de l’électronique ou pour contrôler le RPi via TTL. Il s’alimente en 5V via une prise microUSB.
  • Le modèle B dispose des mêmes fonctionnalités avec un autre port USB et un port Ethernet (même s’il c’est en réalité un port Ethernet connecté via un USB interne) supplémentaires.Il dispose aussi de 2X plus de RAM, soit 512Mo.

Vous ne voyez pas qu’un détail cloche ?

Ah, mais oui, il n’y a PAS de disque dur !!!

C’est pourquoi les deux modèles sont dotés d’un lecteur de carte SD. C’est l’une des spécificités de RPi : il démarre avec le système que vous aurez mis sur une carte SD ! Bien, je crois que vous êtes parés à affronter l’installation. Moussaillons, à l’abordage !

2 – Les prérequis

Pour réaliser ce tutoriel, il vous faut :

  1. Un Raspberry Pi (enfin, c’est mieux);
  2. Une carte SD d’au moins 4Go;
  3. Une alimentation électrique 5V et 1,2A ou + (un ampérage plus puissant ne risque aucunement de bousiller votre RPi, contrairement à un voltage qui lui est VRAIMENT important) avec une sortie microUSB;
  4. Un écran (ou une connexion SSH mais c’est plus complexe et je n’aborderai pas ce sujet dans ce tuto : peut-être dans un prochain article ?);
  5. Un câble HDMI ou un adaptateur HDMI->VGA pour relier le RPi à l’écran;
  6. Un clavier (indispensable);
  7. Une connexion internet (pour l’installation de l’interface graphique;
  8. Une souris (c’est optionnel mais une interface graphique sans souris est comme un ordinateur sans carte graphique !);
  9. Une certaine connaissance de Linux (exemple : savoir installer un logiciel).

3 – Installer Archlinux sur la carte SD

Pour ce tutoriel, j’ai choisi d’utiliser la distribution Archlinux pour sa simplicité.archlinux logo
Téléchargez d’abord Archlinux (attention, il vous faut la version pour Raspberry Pi et non pas une version pour PC normal !) à l’adresse suivante (dernière version mais beaucoup de lien sur le site donc plus difficile de ‘y retrouver):
http://os.archlinuxarm.org/os/
ou ici :
http://www.raspberrypi.org/downloads

Il nous faut ensuite extraire le fichier zip :
Sous Linux (installez unzip si nécessaire) : unzip nomp-du-fichier-.zip
Sous Windows : ouvrez le fichier dans l’explorateur, cliquez sur extraire tous les fichiers, puis sélectionnez le dossier de destination, validez.
Procédons maintenant à la copie sur la carte SD (il faut au préalable avoir inséré la carte SD dans l’ordinateur ou sur un adaptateur SD<>USB).

Attention : la carte SD doit être vide car toutes ses données seront effacées irrémédiablement !

Si vous êtes sur Linux :

Vous disposez à coup sur (sauf sur certaines distributions élitiques et complexes comme Gentoo) d’un outil nommé DD (ne me demandez pas quelle est sa signification, il y en a plein; toutefois il est surnommé le Destructeur de Données : il va donc falloir faire attention et ne pas se tromper !).

2 étapes s’offre à nous :
– repérer l’adresse du périphérique (eh oui, sous Linux les disques ne s’appellent pas C:, D:, E:, etc et ils possèdent un fichier les décrivant) : pour ce faire, ouvrez le terminal et créez un nouveau dossier (la commande est mkdir nom-du-dossier, soit ici mkdir test), puis déplacez-vous dans ce dossier (cd test). Rentrez ensuite sans les guillemets la commande « sudo ls -a /dev/ > a« , puis insérez la carte SD (qui devait être déconnecté de l’ordinateur pour la précédente manip) et rentrez la commande « sudo ls -a /dev > b« .
Bien je pense qu’une petite explication s’impose : vous avez enregistré la résultat de la commande listant tous les fichiers contenus dans le dossier /dev/ (dev pour devices, soit périphériques, c’est là que sont enreegistrés les « adresses » de tous les périphériques reliés ou contenus dans votre ordinateur) dans le fichier a. Cette liste ne contenait pas le nom de la carte SD, puis vous avez enregistré cette liste des fichiers contenus dans /dev/ dans le fichier b, lorsque que la carte SD était insérée dans l’ordinateur. Le fichier b contient donc le « nom » de la carte SD. Pour l’obtenir, tapez :
diff a b
Ce qui donne pour résultat quelque chose comme :
55a55, 57
> sdbOfficial_gnu
> sdb1
> sdb2

Sur Linux les périphériques sont en effet listés avec des noms comme sda, sdb, sdc, etc. Bref, c’est très différent de Windows ! Vous savez donc que votre carte SD se nomme (dans mon cas) /dev/sdb (en effet, les sdb1 et sdb2 ne sont pas eux aussi des périphériques mais des sous-parties de sdb, – qu l’on nomme aussi partitions – ce qui nous intéresse est donc le nom du périphérique, soit sdb). Nous avons maintenant que l’emplacement de notre fichier est /dev/sdb (ou ce que vous avez chez vous) : Eurêka !
Nous nous retrouvons donc avec un fichier nommé archlinux-hf-*.img que nous voulons copier sur la carte, dont l’adresse est ici /dev/sdb.
La syntaxe de la commande dd est =
dd if=entrée of=sortie bs=taille
Bien, expliquons cela :

  • if veut dire input file, soit fichier d’entrée;
  • of veut dire, comme vous l’aurez deviné, output file, soit fichier de sortie;
  • bs est la taille du bloc, c’est à dire la taille de chaque morceau du fichier qui sera transféré à votre périphérique. 1M est un bon compromis entre rapidité et quantité.

On obtient un résultat quelque chose comme :
sudo dd if=/home/votre-nom-d-utilisateur/votre-dossier-de-telechargement/le-fichier-d-archlinux of=/dev/nom-du-peripherique bs=1M
Sans mon cas cela donne donc:
sudo dd if=/home/simon/Downloads/archlinux-hf-2013-11-14.img of=/dev/sdb bs=1M
ATTENTION : adaptez le code ci-dessus à votre cas et ne vous trompez SURTOUT PAS sur le fichier de sortie sous peine d’effacer votre disque dur !!!
Patientez un petit instant, cela peut être assez long.
Une fois la commande terminée, vous devez redimensionnez vos partitions, chose que vous ferez aisément avec gparted (installez-le si vous ne le possédez pas) : if faut allouer tout l’espace restant de la carte SD à la grande partition au format ext4, faute de quoi vous ne pourrez ajouter aucun fichier sur votre carte SD.

Ouvrez gparted après l’avoir installé :

gparted_home

Sélectionnez le menu déroulant en haut à droite et choisissez le nom de partition correspondant à votre carte SD (là ou vous voyez /dev/sda sur l’exemple que j’ai réalisé avec mon disque dur). Si vous voyez une clé comme sur mes deux premières partitions, faites un clic droit et cliquez sur unmount :
gparted_unmount
Vous pouvez maintenant cliquer sur resize/move. Ne faites pas ça sur la première partition: elle est à la bonne taille. Redimensionnez les deux suivantes dans l’ordre : d’abord la partition la plus grande (en réalité c’est une partition qui contient la partition suivante), puis l’autre.
Et voilà, il ne vous reste plus qu’à insérer dans votre RPi puis à démarrer !
On se retrouve après l’explication pour Windows.

Si vous êtes sur Windows :

Téléchargez Win32WiskImager à l’adresse http://sourceforge.net/projects/win32diskimager/files/latest/download?source=navbar.
Puis extrayez l’archive et lancez Win32WiskImager.exe, ce qui vous donnera ceci :
win32-imagewriter Dans le champ Image File, entrez l’adresse du fichier *.img, choisissez la carte SD dans le champ Device et cliquez sur Write ! Patientez un instant puis lorsque la barre de progression sera complétée, éjectez la carte SD de l’ordinateur.
Bien passons, à l’installation de l’interface graphique.

3 – Installation de LXDE

Nous supposerons pour ce tutoriel que votre RPi est connecté à internet (le moyen le plus simple et le plus efficace de le faire est de le connecter via un câble Ethernet, toutefois tout le monde n’a pas la chance de pouvoir le faire – je n’en ai par exemple pas la possibilité).

Bien, commençons par installer le serveur graphique sur lequel se base notre environnement graphique : le célèbre, le fameux, le précieux, le réputé; j’ai nommé : X.org !!!
Connectons-nous en entrant comme nom d’utilisateur ET mot de passe « root » (sans les guillemets).
Tapez ensuite la commande localectl set-keymap --no-convert fr-pc si vous avez un clavier azerty (il vous faudra donc taper locqlectl set)key,qp ))no)convert fr)pc).
Note : root est sur les système de type UNIX le super-utilisateur, celui qui peut vraiment TOUT faire (même virer les fichier de démarrage si cela lui chante !
Installons-le par la commande pacman -Syu && pacman -S xorg (pacman -Syu permet de mettre à jour le système). Il vous sera demandé quel paquet (comprenez logiciel) vous souhaitez installer, pressez Entrée pour tous les installer (recommandé). Validez par y (pour yes). X.org va se télécharger et s’installer. Entrez ensuite pacman -S xorg-xinit && pacman -S lxde puis validez comme précédemment. rentrez ensuite la commande nano .xinitrc, ce qui vous donnera la page suivante :
nano xinitrc
Tapez exec startlxde puis entrez simultanément la combinaison de touches Control + 0, validez en faisant Entrée. Vous pouvez maintenant fermer nano avec les touches Control + X.
Éditez le fichier /etc/X11/xorg.conf.d/10-evdev.conf
et rajoutez la ligne Option "XkbLayout" "fr" après la ligne Identifier "evdev keyboard ..."
Ouf, voilà l’interface graphique configurée pour démarrer avec un clavier azerty !
Rentrez startx et l’interface graphique va démarrer et vous afficher quelque chose comme ça :
lxde_rpi_scrot
Voilà, c’est la fin de ce tuto, à la prochaine …