Historique: compiler un noyau linux 3.x pour la mao
Aperçu de cette version: 11
page en cours de rédaction
ancienne page : Compiler un noyau 2.6RT
sujet lié : wiki noyau RT
Table des matières
Introduction
Compiler un noyeau soi même n'est généralement pas un tâche obligatoire. La plupart des noyeaux préemptfs fournis avec grande majorité des distributions devraient convenir pour l'utilisation d'un système dit MAO. Cependant pour des raisons de configuration matérielle, parce qu'on attends une fonctionnalité qui se trouve dans le dernier noyau ou tout simplement par curiosité, certaine personnes se verront obligé de faire un petit détour dans l'univers des compilateurs.Même si aujourd'hui grâce à l'automatisation du processus, cela devient une tâche aisé, n'oubliez pas que ceci est une manipulation relativement avancée où il faut être sûr de ce que l'on fait. Cet article se focalise donc sur les parties importante concernant la MAO pour que chaque débuant puisse optimiser sont système avec le moindre effort. Cet article n'est pas un tutorial générale sur la compilation d'un noyau Linux. Pour ceci veuillez vous référer au multiples pages disponibles sur Internet.
Prérequis
Pour compiler un noyau, il vous faudra télécharger quelques outils et librairies, soit notamment le compilateur gcc et les "headers" du noyau de votre distribution, nous aurons ainsi une configuration sur laquelle nous baser. De plus nous allons préparer un dossier où nous allons télécharger et compiler notre noyau.Ubuntu:
A COMPLETER je suis plus trop sûr si c'est tout ... 😛
Copy to clipboard
~~blue:$~~ sudo apt-get install build-essential linux-headers-$(uname -r) wget patch libncurses5-dev ~~blue:$~~ sudo adduser $(whoami) src ~~blue:$~~ mkdir /usr/src/linux-rt/ ~~blue:$~~ cd /usr/src/linux-rt/
Téléchargement des sources et patchage du noyau
Si vous avez suivi les opérations précédentes, vous devriez vous trouver dans un répertoire tout frais. Téléchargez les sources avec wget depuis le site kernel.org, soit les source du noyeau avec le bon patch. Il faut être relativement rigoureux sur les numéros de version utilisés. De plus pour chaque version de patchs, ormis le format de compression, il y a plusieurs façons d'avoir empaqueté le patch mais en regardant les noms de fichier (patch/patches) on arrive s'en sortir. Le mieux et de regarder la dernière version du patch disponible et prendre le noyau concerné:Nous allons donc télécharger le dernier patch et les sources du noyau:
Copy to clipboard
~~blue:$~~ wget ftp://ftp.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2-rc6-rt9.patch.bz2 ~~blue:$~~ wget ftp://ftp.kernel.org/pub/linux/kernel/v3.x/testing/linux-3.2-rc6.tar.bz2
Extraire le noyau et tester le patch:
Copy to clipboard
~~blue:$~~ tar xvfj linux-3.2-rc6.tar.bz2 ~~blue:$~~ cd linux-3.2-rc6 ~~blue:linux-3.2-rc6$~~ bzcat ../patch-3.2-rc6-rt9.patch.bz2 | patch -p1 --dry-run
Si vous avez des warnings ou des messages bizarres, probablement que vous avez pas téléchargé le bon couple version patch/kernel. Assurez-vous d'avoir télécharger le fichier nommé "patch" et non "patches" avec exactement les même version.
Si le patch s'applique sans problème, vous pouvez passer au vrai patchage:
Copy to clipboard
~~blue:linux-3.2-rc6$~~ bzcat ../patch-3.2-rc6-rt9.patch.bz2 | patch -p1
options de compilation
présentée dans le même ordre que menuconfigles options spécifiques MAO sont marquées d'une étoile ☆
Processor type and features
- Preemption Model
- (?) Preemptible Kernel ☆ (Basse latence, ne nécessite pas de noyau ou patch RT)
- (X) Fully Preemptible Kernel ☆ (nécessite un noyau ou patch RT et sélectionne pour vous toutes les optimisations du patch)