« Compilation linux » : différence entre les versions
m (Ajout d'une catégorie) |
|||
Ligne 31 : | Ligne 31 : | ||
Allez sur ''Load'' et importer le ''.config''. | Allez sur ''Load'' et importer le ''.config''. | ||
''' | '''Nettoyer les fichiers de compilation''' | ||
make-kpkg clean | make-kpkg clean | ||
===Compilation=== | ===Compilation=== | ||
'''Compiler le noyau''' | '''Compiler le noyau''' |
Version du 10 septembre 2017 à 12:32
Ce document traite de la compilation d'un noyau Linux.
ATTENTION
La compilation prend plusieurs heures (environs 2h30 sur mon core i7 960). Ne commencez pas l'opération si vous allez vous coucher et que votre PC fait un bruit d'avion à coté de votre lit (ça sent le vécu)...La compilation d'un noyau se fait en passant des paramètres sous forme de variables dans un fichier de configuration nommé .config.
Compilation Linux Debian
Depuis une configuration existante
Préparation
Téléchargement des sources de Linux
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.13.tar.xz
Note : Vous trouverez les sources de la version du noyau que vous désirez sur le site officiel du noyau.
Décompression des sources
tar xf linux-4.13.tar.xz && cd linux-4.13/
Installation des dépendances
apt install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential
Note : le paquet kernel-package n'est pas disponible dans Stretch. Utilisez une autre branche pour l'installation. Nettoyage de l'archive
make clean && make mrproper
Explications:
- make clean : Supprime la plupart des fichiers générés (nécessaires à la compilation mais non utilises à l'issue) mais garde la config'.
- make mproper : Supprime tous les fichiers générés précédemment ainsi que la config et des fichiers de sauvegarde (purge totalement l'archive - mproper = Mr Propre).
Configuration
Importation des paramètres du noyau actuel
cp /boot/config-`uname -r` .config
Prise en compte du fichier de configuration
Note : Cette partie est peu être inutile, vérifier.
make menuconfig
Allez sur Load et importer le .config.
Nettoyer les fichiers de compilation
make-kpkg clean
Compilation
Compiler le noyau
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
INFORMATION
Cette opération va générer deux fichier .deb:- linux-headers-4.13.0-custom_4.13.0-custom-10.00.Custom_amd64.deb
- linux-image-4.13.0-custom_4.13.0-custom-10.00.Custom_amd64.deb
Installation
Depuis une installation sur une mémoire morte
dpkg -i linux-headers-4.13.0-custom_4.13.0-custom-10.00.Custom_amd64.deb linux-image-4.13.0-custom_4.13.0-custom-10.00.Custom_amd64.deb
Note : les fichiers /boot/initrd.img-4.13.0-custom et /boot/vmlinuz-4.13.0-custom sont désormais présents dans /boot.
Depuis un squashfs
L'installation de ces paquets utilise l'emplacement /lib/live/mount/medium/live qui ne contient pas d'espace libre (il y a donc une erreur à l'installation). Pour combler cette lacune, exécuter cette commande:
mount -t tmpfs -o rw,relatime,size=1G tmpfs /lib/live/mount/medium/ && mkdir /lib/live/mount/medium/live
On peut désormais installer les paquets sans encombre et récupérer leur résultat dans /boot pour un amorçage PXE
dpkg -i linux-headers-4.13.0-custom_4.13.0-custom-10.00.Custom_amd64.deb linux-image-4.13.0-custom_4.13.0-custom-10.00.Custom_amd64.deb