Outils pour utilisateurs

Outils du site


dev:raspberry:linux-from-scratch

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
dev:raspberry:linux-from-scratch [2012/12/18 16:02] – plan rootdev:raspberry:linux-from-scratch [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== LFS (Linux From Scratch) ======+====== LFS (Linux From Scratch) pour Raspberry Pi ======
  
-Générer un système GNU/Linux complet depuis les sources. Les bénéfices sont multiples:+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.   * Mieux connaitre l'architecture des systèmes GNU/Linux.
   * Adapter le système à son matériel, à ses besoins.   * 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 [[:dev:raspberry:cross-toolchain:start | cross toolchain]] détaille davantage le principe de la chaine de compilation croisée.
 + 
  
-===== Buildroot ===== 
  
-Je m'appuierai sur Buildroot pour:+===== L'outil Buildroot ===== 
 + 
 +Buildroot va devenir notre nouvel meilleur amis, il va nous aider 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).   * Générer la chaine de compilation croisée (binutils et bibliothèques).
-  * Compiler le noyau.+  * Compiler un noyau adapté.
   * Compiler les programmes de l'espace utilisateur.   * Compiler les programmes de l'espace utilisateur.
  
-La procédure de compilation de la cross toolchain est détaillée dans le wiki [[:dev:raspberry:cross-toolchain:buildroot|buildroot]].+La présentation de l'outil et la procédure de compilation de la cross toolchain est détaillée dans le wiki [[:dev:raspberry:cross-toolchain:buildroot|buildroot]].
  
 ===== compilation du noyau ===== ===== compilation du noyau =====
  
 +Maintenant que la chaine de compilation croisée est opérationnelle, on peut s'en servir pour compiler le noyau Linux en l'adaptant parfaitement au matériel.
 +
 +==== Recuperer les sources ====
 +
 +On récupère les sources du noyau Linux adapté à la Raspberry disponible sur le dépot git officiel.
 +
 +<code bash>
 +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/
 +</code>
 +
 +On recupere le fichier de configuration préparé
 +
 +<code bash>
 +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
 +</code>
 +
 +Pour voir ou modifier les options de configuration de notre noyau il suffit de lancer la commande **make menuconfig**
 +
 +<code bash>
 +yoann@hermes:/opt/linux-rpi-3.2.27$ make ARCH=arm menuconfig
 +</code>
 +
 +Ci dessous quelques options de personnalisation:
 +  * **General Setup -> Local Version**: pour personnaliser le nom du kernel.
 +  * **Kernel Configuration -> Boot options**: pour définir les options par défaut transmises au noyau lors du démarrage.
 +
 +==== Lancer la compilation ====
 +Une fois les personnalisations apportées, enregistrer les modifications et lancer la compilation avec le commande **make**.
 +
 +<code bash>
 +yoann@hermes:/opt/linux-rpi-3.2.27$ make ARCH=arm CROSS_COMPILE=/opt/cross-rpi/usr/bin/arm-linux-
 +</code>
 +
 +Le résultat de cette compilation est se trouve dans le répertoire //./arch/arm/boot//
 +<code bash>
 +yoann@hermes:/opt/linux-rpi-3.2.27$ ls -lh ./arch/arm/boot/
 +total 6,1M
 +drwxr-xr-x 2 yoann yoann 4,0K 2012-11-26 13:40 bootp
 +drwxr-xr-x 2 yoann yoann 4,0K 2012-12-20 12:40 compressed
 +drwxr-xr-x 2 yoann yoann 4,0K 2012-11-26 13:40 dts
 +-rwxr-xr-x 1 yoann yoann 4,1M 2012-12-20 12:40 Image
 +-rw-r--r-- 1 yoann yoann 1,3K 2012-11-26 13:40 install.sh
 +-rw-r--r-- 1 yoann yoann 3,5K 2012-11-26 13:40 Makefile
 +-rwxr-xr-x 1 yoann yoann 2,0M 2012-12-20 12:40 zImage
 +yoann@hermes:/opt/linux-rpi-3.2.27$
 +</code>
 +
 +Le fichier zImage est l'image toute chaude de notre noyau. Il va maintenant falloir préparer la carte SD.
  
 ===== Création du système de fichier ===== ===== Création du système de fichier =====
dev/raspberry/linux-from-scratch.1355846559.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)