Gentoo - Installation

Installer Gentoo sur Raspberry Pi (OpenRC)

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

logo_gentoo



Introduction



Gentoo est une distribution GNU/Linux sympathique, conçue pour être optimisée pour le matériel de l'utilisateur. Tous les programmes sont donc compilés à partir du code source.

Dans cet article, nous allons installer cette distribution sur un Rasberry Pi 4 B !


Prérequis



En fonction du modèle du Raspberry Pi, on choisira un stage3 ARM ou ARM64.
Raspberry PI 3b, Raspberry PI 3b+, Raspberry PI Zero 2, Raspberry PI Zero 2 w, Raspberry PI 4b et Raspberry PI 5 sont compatibles ARM64

Sur notre machine, on devra avoir la commande git disponible !

-- Partitionnment du disque ou carte SD--

Si on opte pour un disque USB, il sera identifié par le Raspberry par /dev/sda
Si on opte pour une carte SD, elle sera identifiée par /dev/mmcblk0

Partitionner la carte SD ou le disque USB avec 2 partitions.
La table de partition peut être DOS ou GPT.
On fera 1 première partition en FAT32, le reste en ext4.

Le disque utilisé est /dev/sdh dans ce tuto :

Code BASH :
cfdisk /dev/sdh


Ce qui donne :
Code BASH :
                         Disk: /dev/sdh
    Size: 111,79 GiB, 120034123776 bytes, 234441648 sectors
               Label: dos, identifier: 0x4cd42d8e
 
    Device     Boot  Start       End   Sectors   Size Id Type
>>  /dev/sdh1  *      2048    616447    614400   300M  c W95 FAT
    /dev/sdh2       616448 234441647 233825200 111,5G 83 Linux
 
   [Bootable]  [ Delete ]  [ Resize ]  [  Quit  ]  [  Type  ]
   [  Help  ]  [  Write ]  [  Dump  ]


On formate la première en FAT32 :
Code BASH :
mkfs.vfat /dev/sdh1


On formate la seconde en EXT4 :
Code BASH :
mkfs.ext4 /dev/sdh2


On va monter notre futur système Gentoo dans /mnt/gentoo :
Code BASH :
mkdir /mnt/gentoo


On monte la parition root :
Code BASH :
mount /dev/sdh2 /mnt/gentoo


On montera /boot de Gentoo plus tard.

Installer les fichiers d'installation de Gentoo



Stage 3 : Le système



Le site de Gentoo propose les liens vers les "stage 3" de chaque architecture.

Se rendre dans la future racine de notre système :
Code BASH :
cd /mnt/gentoo


On récupérera le stage3 depuis le site de Gentoo : https://www.gentoo.org/downloads/

Pour aller plus vite, on pourra utiliser ce miroir allemand : https://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/releases/arm64/autobuilds

Plusieurs stage3 sont à notre disposition :
- stage3-arm64-openrc : Stage 3 OpenRC (serveur)
- stage3-arm64-desktop-openrc : Stage 3 OpenRC (desktop) qui contient déjà des éléments si on veut installer Gentoo avec un interface graphique

Dans ce tutoriel, on partira sur stage3-arm64-openrc.

On télécharge avec wget :
Code BASH :
wget http://url-du-stage-3-selectionne.tar.xz


Extraire ensuite l'archive :
Code BASH :
tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner



Installer les fichiers de la fondation Raspberry Pi



Avant toute chose, on va monter notre partition /boot :
Code BASH :
mount /dev/sdh1 /mnt/gentoo/boot


On va cloner plusieurs dépôts "git", on va se positionner dans /root de notre Gentoo pour travailler :
Code BASH :
cd /mnt/gentoo/root


On va récupérer le noyau Raspberry Pi et les micrologiciels :
Code BASH :
git clone --depth=1 https://github.com/raspberrypi/firmware


On copie les fichiers de boot dans le /boot de notre Gentoo :
Code BASH :
cp -a firmware/boot/* /mnt/gentoo/boot/


On copie les modules du noyau dans le /lib de notre Gentoo :
Code BASH :
cp -a firmware/modules /mnt/gentoo/lib/



Configuration



Quelques fichiers de configuration ont besoin d'être créés pour que notre Raspberry Pi puisse démarrer.

On revient à la racine :
Code BASH :
cd /mnt/gentoo


On va créer le fichier cmdline.txt qui va contenir les options pour démarrer notre système :
Code BASH :
nano /mnt/gentoo/boot/cmdline.txt


Le fichier ne doit contenir qu'une seule ligne :
Code BASH :
dwc_otg.lpm_enable=0 console=tty root=/dev/sda2 rootfstype=ext4 rootwait cma=256M@256M net.ifnames=0

root=/dev/sda2 car le SSD, une fois dans le Raspberry Pi sera identifié sda (premier disque)

Si on branche le disque sur un port USB 3.0, se référer à l'astuce suivante : https://www.linuxtricks.fr/wiki/raspberry-pi-4-regler-le-probleme-de-boot-sur-usb-3-io-error

On peut créer aussi le fichier config.txt :
Code BASH :
nano /mnt/gentoo/boot/config.txt


Code BASH :
# Si Raspberry Pi 3, indiquer qu'on est en 64 bits
arm_64bit=1
 
# Réduit les bords noirs, ajuste l'affichage écran.
disable_overscan=1
 
# Activer audio si nécessaire (charge snd_bcm2835)
dtparam=audio=on
 
# Activer le pilote DRM VC4 V3D
dtoverlay=vc4-kms-v3d


On va évidemment paramétrer le fichier /etc/fstab :
Code BASH :
nano /mnt/gentoo/etc/fstab


Voici un exemple pour monter / et /boot :
Code :
/dev/sda1       /boot   vfat    noatime,noauto,nodev,nosuid,noexec      0 0
/dev/sda2       /       ext4    noatime 0 0


Pas besoin de configurer le réseau de suite, le dhcp est actif sur l'interface réseau filaire.

On définira le nom d'hôte :
Code BASH :
nano /mnt/gentoo/etc/conf.d/hostname


Exemple :
Code :
hostname="gentoopi.linuxtricks.lan"


Définir le mot de passe root en éditant le fichier /etc/shadow :
Code BASH :
nano /mnt/gentoo/etc/shadow


Remplacer la ligne de root pour définir le mot de passe à raspberry :
Code :
root:$6$xxPVR/Td5iP$/7Asdgq0ux2sgNkklnndcG4g3493kUYfrrdenBXjxBxEsoLneJpDAwOyX/kkpFB4pU5dlhHEyN0SK4eh/WpmO0::0:99999:7:::


On définira l'agencement du clavier :
Code BASH :
nano /mnt/gentoo/etc/conf.d/keymaps


Et on mettra la disposition d'un clavier français :
Code :
keymap="fr"


On paramètrera la connexion en ssh.
Si on n'a pas de clé publique :
Code BASH :
nano /mnt/gentoo/etc/ssh/sshd_config


Et on définit la connexion par mot de passe pour root :
Code BASH :
#PermitRootLogin prohibit-password
PermitRootLogin yes


Ou alors on copie notre clé publique dans le fichier authorized_keys de root :
Code BASH :
mkdir /mnt/gentoo/root/.ssh

Code BASH :
nano /mnt/gentoo/root/.ssh/authorized_keys


Et on définit les bons droits :
Code BASH :
chmod 700 /mnt/gentoo/root/.ssh
chmod 600 /mnt/gentoo/root/.ssh/authorized_keys


On fait démarrer le service ssh au boot :
Code BASH :
cd /mnt/gentoo/etc/runlevels/default/

Code BASH :
ln -s /etc/init.d/sshd sshd


On démonte toutes les partitions :
Code BASH :
cd
umount -R /mnt/gentoo


Et on met le disque ou la carte SD dans le Raspberry Pi !

On se connecte en SSH et on peut continuer la configuration !


Configuration post-installation