Installer Gentoo sur Raspberry Pi (OpenRC)
Table des matières
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 !
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 :
Ce qui donne :
On formate la première en FAT32 :
On formate la seconde en EXT4 :
On va monter notre futur système Gentoo dans /mnt/gentoo :
On monte la parition root :
On montera /boot de Gentoo plus tard.
Le site de Gentoo propose les liens vers les "stage 3" de chaque architecture.
Se rendre dans la future racine de notre système :
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 :
Extraire ensuite l'archive :
Avant toute chose, on va monter notre partition /boot :
On va cloner plusieurs dépôts "git", on va se positionner dans /root de notre Gentoo pour travailler :
On va récupérer le noyau Raspberry Pi et les micrologiciels :
On copie les fichiers de boot dans le /boot de notre Gentoo :
On copie les modules du noyau dans le /lib de notre Gentoo :
Quelques fichiers de configuration ont besoin d'être créés pour que notre Raspberry Pi puisse démarrer.
On revient à la racine :
On va créer le fichier cmdline.txt qui va contenir les options pour démarrer notre système :
Le fichier ne doit contenir qu'une seule ligne :
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 :
On va évidemment paramétrer le fichier /etc/fstab :
Voici un exemple pour monter / et /boot :
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 :
Exemple :
Définir le mot de passe root en éditant le fichier /etc/shadow :
Remplacer la ligne de root pour définir le mot de passe à raspberry :
On définira l'agencement du clavier :
Et on mettra la disposition d'un clavier français :
On paramètrera la connexion en ssh.
Si on n'a pas de clé publique :
Et on définit la connexion par mot de passe pour root :
Ou alors on copie notre clé publique dans le fichier authorized_keys de root :
Et on définit les bons droits :
On fait démarrer le service ssh au boot :
On démonte toutes les partitions :
Et on met le disque ou la carte SD dans le Raspberry Pi !
On se connecte en SSH et on peut continuer la configuration !
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 !