Outils pour utilisateurs

Outils du site


dev:raspberry:linux-from-scratch

Ceci est une ancienne révision du document !


LFS (Linux From Scratch) pour Raspberry Pi

On cherche à générer un système GNU/Linux complet pour une Raspberry Pi à partir des fichiers sources seulement. Les bénéfices sont multiples:

  • Comprendre les étapes de la compilation.
  • Mieux connaitre l'architecture des systèmes GNU/Linux.
  • Adapter le système à son matériel, à ses besoins.

La Raspberry Pi fonctionnant autour d'un microprocesseur ARM, il va falloir mettre en place une chaine de compilation croisée qui permettra de générer depuis un systeme hôte de type PC, du code exécutable pour le microprocesseur ARM. le wiki cross toolchain détaille davantage le principe de la chaine de compilation croisée.

L'outil Buildroot

Buildroot va devenir notre nouvel meilleur amis, il va nous aider dans toutes les étapes de la mise en service de notre système GNU/Linux. On s'appuiera sur lui pour:

  • Générer la chaine de compilation croisée (binutils et bibliothèques).
  • Compiler un noyau adapté.
  • Compiler les programmes de l'espace utilisateur.

La présentation de l'outil et la procédure de compilation de la cross toolchain est détaillée dans le wiki buildroot.

compilation du noyau

Maintenant que la chaine de compilation croisée est opérationnelle, on peut s'en servir pour compiler notre noyau Linux.

Recuperer les sources

On récupère les sources du noyau Linux adapté à la Raspberry disponible sur le depot git officiel.

yoann@hermes:/opt$ cd /tmp/
yoann@hermes:/tmp$ wget https://github.com/raspberrypi/linux/archive/rpi-3.2.27.zip
yoann@hermes:/tmp$ unzip rpi-3.2.27.zip
yoann@hermes:/tmp$ sudo mv linux-rpi-3.2.27/ /opt/

On recupere le fichier de configuration préparé

yoann@hermes:/tmp$ cd /opt/linux-rpi-3.2.27/
yoann@hermes:/opt/linux-rpi-3.2.27$ wget http://www.blaess.fr/christophe/files/glmf/rpi-scratch-01/config-linux
yoann@hermes:/opt/linux-rpi-3.2.27$ mv config-linux .config

Pour modifier les options de configuration lancer la commande make menuconfig

yoann@hermes:/opt/linux-rpi-3.2.27$ make ARCH=arm menuconfig

Buildroot va nous permettre de générer le noyau linux.

General Setup → Local Version pour définir un suffixe local sur le nom du kernel. Kernel Configuration → Boot options: pour définir les options transmises au noyau lors du démarrage.

Lancer la compilation

Création du système de fichier

init et scripts d'initialisation

Compilation des programmes

dev/raspberry/linux-from-scratch.1356004585.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)