SlideShare une entreprise Scribd logo
Linux LPIC2 noelmace.com
Noël Macé
Formateur et Consultant indépendant expert Unix et FOSS
http://www.noelmace.com
Compilation du noyau
Noyau Linux
Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
Linux LPIC2 noelmace.com
Plan
• Résumé des opérations
• Vérifier les dépendances
• Méthode simple et complète
• Compiler le monobloc
• Compiler les modules dynamiques
• INITIal Ram Disk
• Création d'un initrd
• mkinitrd
• mkinitramfs
Linux LPIC2 noelmace.com
Résumé des opérations
• Vérifier les dépendances
• Nettoyer
• Compilation de monobloc
• Compilation des modules
• Installation des modules
# make dep && make clean && make bzImage && make modules 
> && make modules_install
# make dep && make clean && make bzImage && make modules 
> && make modules_install
Linux LPIC2 noelmace.com
Vérifier les dépendances
• S'assurer que toutes les dépendances sont en place
 exemples : fichiers include
$ make dep$ make dep
Linux LPIC2 noelmace.com
Méthode simple et complète
• Dans le répertoire des sources
• Construit le monobloc et les modules
• Suffisant
 si aucune erreur
 et tout les utilitaires nécessaires présent
• Astuce
$ make [all]$ make [all]
$ make [all] | grep -iw "error"$ make [all] | grep -iw "error"
Linux LPIC2 noelmace.com
Compiler le monobloc
• Permet de choisir le type de monobloc à compiler
$ make [zImage | bzImage]$ make [zImage | bzImage]
Linux LPIC2 noelmace.com
Compiler les modules dynamiques
$ make modules$ make modules
Linux LPIC2 noelmace.com
Créer un package
• Pour CentOS
• Pour Debian
$ make rpm$ make rpm
$ make-kpkg kernel_image$ make-kpkg kernel_image
Linux LPIC2 noelmace.com
INITial Ram Disk
• Rappel : cf LPIC1
• Chargé au démarrage
• Système de fichier
 initramfs (cramfs, squashfs)
 chargé en mémoire vive
• Contient certains modules nécessaires
au démarrage
 permet d'utiliser un kernel minimal
 plus grande souplesse
Linux LPIC2 noelmace.com
Création d'un initrd
• Nombreux outils
• Varient suivant les distributions
• Deux plus courants :
 mkinitrd
 mkinitramfs
Linux LPIC2 noelmace.com
mkinitrd
• Options
 --version
 -v : verbose
 --preload=MonModule
 --with=MonModule
 --builtin=MonModule
 -f: permettre d'écraser une image existante
• Exemple
# mkinitrd image KernelVersion# mkinitrd image KernelVersion
# mkinitrd /boot/initrd-2.6.35.4.img 2.6.35.4# mkinitrd /boot/initrd-2.6.35.4.img 2.6.35.4
 --fstab=filename
 --image-version
 --nocompress
 --nopivot
 --omit-lvm-modules
 --omit-raid-modules
Linux LPIC2 noelmace.com
mkinitramfs
• Options :
 -d confdir
 -k
 -o outfile
 -r root
 -v
 --supported-host-version=version
 --supported-target-version=version
# mkinitramfs -o /boot/initramfs-2.6.35.4.img 2.6.35.4# mkinitramfs -o /boot/initramfs-2.6.35.4.img 2.6.35.4
Linux LPIC2 noelmace.com
Ce qu’on a couvert
• Comment compiler le kernel.
• Comment créer un initrd.
Weight : 2
Description : Candidates should be able to properly configure a kernel to include or disable specific features of the Linux kernel as necessary. This objective includes compiling and
recompiling the Linux kernel as needed, updating and noting changes in a new kernel, creating an initrd image and installing new kernels.
Key Knowledge Areas:
 /usr/src/linux/
 Kernel 2.6.x make targets
 Kernel 3.x make targets
The following is a partial list of the used files, terms and utilities:
 mkinitrd
 mkinitramfs
 make
 make targets (config, xconfig, menuconfig, oldconfig, mrproper, zImage, bzImage, modules, modules_install)
201.2 Compiling a kernel (Partiellement)
Key Knowledge Areas:
 /usr/src/linux/
 Build a new kernel and appropriate kernel modules.
The following is a partial list of the used files, terms and utilities:
 make
 /usr/src/linux/*
201.4 Customise, build and install a custom kernel and kernel modules (Partiellement)
Linux LPIC2 noelmace.com
Licence
Ce(tte) œuvre (y compris ses illustrations, sauf mention explicite) est mise à disposition selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
Pour voir une copie de cette licence, visitez http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ ou écrivez à :
Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
Vous êtes libre de :
 partager — reproduire, distribuer et communiquer cette œuvre
 remixer — adapter l’œuvre
Selon les conditions suivantes :
 Attribution — Vous devez clairement indiquer que ce document, ou tout document dérivé de celui, est (issu de) l’œuvre
originale de Noël Macé (noelmace.com) (sans suggérer qu'il vous approuve, vous ou votre utilisation de l’œuvre, à moins
d'en demander expressément la permission).
 Pas d’Utilisation Commerciale — Vous n’avez pas le droit d’utiliser cette œuvre à des fins commerciales (ie. l'intention
première ou l'objectif d'obtenir un avantage commercial ou une compensation financière privée). Pour obtenir ce droit, une
autorisation explicite de l'auteur est requise.
 Partage dans les Mêmes Conditions — Si vous modifiez, transformez ou adaptez cette œuvre, vous n’avez le droit de
distribuer votre création que sous une licence identique ou similaire à celle-ci.
Pour toute demande de collaboration, d'utilisation commerciale ou de publication de ce support ou d'un dérivé de celui-ci sous une
licence incompatible, contacter l'auteur via les contacts indiqués sur le site http://www.noelmace.com. Vous êtes par ailleurs
vivement encouragé (sans obligation légale) à communiquer avec celui-ci si vous réalisez une œuvre dérivée ou toute amélioration
de ce support.

Contenu connexe

Tendances

01 05 installation d'un noyau et de modules noyau
01 05 installation d'un noyau et de modules noyau01 05 installation d'un noyau et de modules noyau
01 05 installation d'un noyau et de modules noyau
Noël
 
LPIC1 10 04 anacron
LPIC1 10 04 anacronLPIC1 10 04 anacron
LPIC1 10 04 anacron
Noël
 
LPIC1 08 05 runlevels
LPIC1 08 05 runlevelsLPIC1 08 05 runlevels
LPIC1 08 05 runlevels
Noël
 
LPIC1 08 02 grub legacy
LPIC1 08 02 grub legacyLPIC1 08 02 grub legacy
LPIC1 08 02 grub legacy
Noël
 
LPIC1 11 02 sécurité système
LPIC1 11 02 sécurité systèmeLPIC1 11 02 sécurité système
LPIC1 11 02 sécurité système
Noël
 
LPIC1 10 02 temps
LPIC1 10 02 tempsLPIC1 10 02 temps
LPIC1 10 02 temps
Noël
 
01 06 gestion et interrogation du noyau et des modules noyau en exécution
01 06 gestion et interrogation du noyau et des modules noyau en exécution01 06 gestion et interrogation du noyau et des modules noyau en exécution
01 06 gestion et interrogation du noyau et des modules noyau en exécution
Noël
 
LPIC1 09 04 bg fg
LPIC1 09 04 bg fgLPIC1 09 04 bg fg
LPIC1 09 04 bg fg
Noël
 
LPIC1 10 03 cron
LPIC1 10 03 cronLPIC1 10 03 cron
LPIC1 10 03 cron
Noël
 
LPIC1 10 01 logs
LPIC1 10 01 logsLPIC1 10 01 logs
LPIC1 10 01 logs
Noël
 
LPIC1 09 02 ps
LPIC1 09 02 psLPIC1 09 02 ps
LPIC1 09 02 ps
Noël
 
LPIC1 09 05 priorités
LPIC1 09 05 prioritésLPIC1 09 05 priorités
LPIC1 09 05 priorités
Noël
 
LPIC1 04 04 configuration de yum
LPIC1 04 04 configuration de yumLPIC1 04 04 configuration de yum
LPIC1 04 04 configuration de yum
Noël
 
LPIC1 04 02 RPM Package Manager
LPIC1 04 02 RPM Package ManagerLPIC1 04 02 RPM Package Manager
LPIC1 04 02 RPM Package Manager
Noël
 
LPIC1 07 04 udev
LPIC1 07 04 udevLPIC1 07 04 udev
LPIC1 07 04 udev
Noël
 
LPIC1 09 03 top
LPIC1 09 03 topLPIC1 09 03 top
LPIC1 09 03 top
Noël
 
LPIC1 11 01 sécurité réseaux
LPIC1 11 01 sécurité réseauxLPIC1 11 01 sécurité réseaux
LPIC1 11 01 sécurité réseaux
Noël
 
06 01 interfaces
06 01 interfaces06 01 interfaces
06 01 interfaces
Noël
 
06 02 opérations de sauvegarde
06 02 opérations de sauvegarde06 02 opérations de sauvegarde
06 02 opérations de sauvegarde
Noël
 
06 05 résolution de nom
06 05 résolution de nom06 05 résolution de nom
06 05 résolution de nom
Noël
 

Tendances (20)

01 05 installation d'un noyau et de modules noyau
01 05 installation d'un noyau et de modules noyau01 05 installation d'un noyau et de modules noyau
01 05 installation d'un noyau et de modules noyau
 
LPIC1 10 04 anacron
LPIC1 10 04 anacronLPIC1 10 04 anacron
LPIC1 10 04 anacron
 
LPIC1 08 05 runlevels
LPIC1 08 05 runlevelsLPIC1 08 05 runlevels
LPIC1 08 05 runlevels
 
LPIC1 08 02 grub legacy
LPIC1 08 02 grub legacyLPIC1 08 02 grub legacy
LPIC1 08 02 grub legacy
 
LPIC1 11 02 sécurité système
LPIC1 11 02 sécurité systèmeLPIC1 11 02 sécurité système
LPIC1 11 02 sécurité système
 
LPIC1 10 02 temps
LPIC1 10 02 tempsLPIC1 10 02 temps
LPIC1 10 02 temps
 
01 06 gestion et interrogation du noyau et des modules noyau en exécution
01 06 gestion et interrogation du noyau et des modules noyau en exécution01 06 gestion et interrogation du noyau et des modules noyau en exécution
01 06 gestion et interrogation du noyau et des modules noyau en exécution
 
LPIC1 09 04 bg fg
LPIC1 09 04 bg fgLPIC1 09 04 bg fg
LPIC1 09 04 bg fg
 
LPIC1 10 03 cron
LPIC1 10 03 cronLPIC1 10 03 cron
LPIC1 10 03 cron
 
LPIC1 10 01 logs
LPIC1 10 01 logsLPIC1 10 01 logs
LPIC1 10 01 logs
 
LPIC1 09 02 ps
LPIC1 09 02 psLPIC1 09 02 ps
LPIC1 09 02 ps
 
LPIC1 09 05 priorités
LPIC1 09 05 prioritésLPIC1 09 05 priorités
LPIC1 09 05 priorités
 
LPIC1 04 04 configuration de yum
LPIC1 04 04 configuration de yumLPIC1 04 04 configuration de yum
LPIC1 04 04 configuration de yum
 
LPIC1 04 02 RPM Package Manager
LPIC1 04 02 RPM Package ManagerLPIC1 04 02 RPM Package Manager
LPIC1 04 02 RPM Package Manager
 
LPIC1 07 04 udev
LPIC1 07 04 udevLPIC1 07 04 udev
LPIC1 07 04 udev
 
LPIC1 09 03 top
LPIC1 09 03 topLPIC1 09 03 top
LPIC1 09 03 top
 
LPIC1 11 01 sécurité réseaux
LPIC1 11 01 sécurité réseauxLPIC1 11 01 sécurité réseaux
LPIC1 11 01 sécurité réseaux
 
06 01 interfaces
06 01 interfaces06 01 interfaces
06 01 interfaces
 
06 02 opérations de sauvegarde
06 02 opérations de sauvegarde06 02 opérations de sauvegarde
06 02 opérations de sauvegarde
 
06 05 résolution de nom
06 05 résolution de nom06 05 résolution de nom
06 05 résolution de nom
 

Similaire à 01 04 compilation du noyau

01 06 gestion et interrogation du noyau et des modules noyau en exécution
01 06 gestion et interrogation du noyau et des modules noyau en exécution01 06 gestion et interrogation du noyau et des modules noyau en exécution
01 06 gestion et interrogation du noyau et des modules noyau en exécution
Noël
 
06 01 construction et installation de programmes à partir du code source
06 01 construction et installation de programmes à partir du code source06 01 construction et installation de programmes à partir du code source
06 01 construction et installation de programmes à partir du code source
Noël
 
01 01 composants du noyau
01 01 composants du noyau01 01 composants du noyau
01 01 composants du noyau
Noël
 
02 03 récupération du système
02 03 récupération du système02 03 récupération du système
02 03 récupération du système
Noël
 
03 04 systèmes de fichiers pour périphériques optiques
03 04 systèmes de fichiers pour périphériques optiques03 04 systèmes de fichiers pour périphériques optiques
03 04 systèmes de fichiers pour périphériques optiques
Noël
 
05 03 dépannage réseau
05 03 dépannage réseau05 03 dépannage réseau
05 03 dépannage réseau
Noël
 
LPIC1 07 05 intro-kernel
LPIC1 07 05 intro-kernelLPIC1 07 05 intro-kernel
LPIC1 07 05 intro-kernel
Noël
 
04 01 configuration raid
04 01 configuration raid04 01 configuration raid
04 01 configuration raid
Noël
 
LPIC1 07 01 introduction à l'administration du matériel
LPIC1 07 01 introduction à l'administration du matérielLPIC1 07 01 introduction à l'administration du matériel
LPIC1 07 01 introduction à l'administration du matériel
Noël
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)
Noël
 
06 03 notification aux utilisateurs des problèmes système
06 03 notification aux utilisateurs des problèmes système06 03 notification aux utilisateurs des problèmes système
06 03 notification aux utilisateurs des problèmes système
Noël
 
07 01 configuration élémentaire d'un dns
07 01 configuration élémentaire d'un dns07 01 configuration élémentaire d'un dns
07 01 configuration élémentaire d'un dns
Noël
 
03 02 maintenance d'un système de fichiers linux
03 02 maintenance d'un système de fichiers linux 03 02 maintenance d'un système de fichiers linux
03 02 maintenance d'un système de fichiers linux
Noël
 
04 02 ajustement des accès aux périphériques de stockage
04 02 ajustement des accès aux périphériques de stockage04 02 ajustement des accès aux périphériques de stockage
04 02 ajustement des accès aux périphériques de stockage
Noël
 
LPIC1 4 01 introduction aux packages
LPIC1 4 01 introduction aux packagesLPIC1 4 01 introduction aux packages
LPIC1 4 01 introduction aux packages
Noël
 
02 02 linux standard base
02 02 linux standard base02 02 linux standard base
02 02 linux standard base
Noël
 
06 04 arp
06 04 arp06 04 arp
06 04 arp
Noël
 
LPIC1 05 06 umask
LPIC1 05 06 umaskLPIC1 05 06 umask
LPIC1 05 06 umask
Noël
 
LPIC1 02 03 aide
LPIC1 02 03 aideLPIC1 02 03 aide
LPIC1 02 03 aide
Noël
 
LPIC1 05 03 les fichiers, dossiers et leurs propriétaires
LPIC1 05 03 les fichiers, dossiers et leurs propriétairesLPIC1 05 03 les fichiers, dossiers et leurs propriétaires
LPIC1 05 03 les fichiers, dossiers et leurs propriétaires
Noël
 

Similaire à 01 04 compilation du noyau (20)

01 06 gestion et interrogation du noyau et des modules noyau en exécution
01 06 gestion et interrogation du noyau et des modules noyau en exécution01 06 gestion et interrogation du noyau et des modules noyau en exécution
01 06 gestion et interrogation du noyau et des modules noyau en exécution
 
06 01 construction et installation de programmes à partir du code source
06 01 construction et installation de programmes à partir du code source06 01 construction et installation de programmes à partir du code source
06 01 construction et installation de programmes à partir du code source
 
01 01 composants du noyau
01 01 composants du noyau01 01 composants du noyau
01 01 composants du noyau
 
02 03 récupération du système
02 03 récupération du système02 03 récupération du système
02 03 récupération du système
 
03 04 systèmes de fichiers pour périphériques optiques
03 04 systèmes de fichiers pour périphériques optiques03 04 systèmes de fichiers pour périphériques optiques
03 04 systèmes de fichiers pour périphériques optiques
 
05 03 dépannage réseau
05 03 dépannage réseau05 03 dépannage réseau
05 03 dépannage réseau
 
LPIC1 07 05 intro-kernel
LPIC1 07 05 intro-kernelLPIC1 07 05 intro-kernel
LPIC1 07 05 intro-kernel
 
04 01 configuration raid
04 01 configuration raid04 01 configuration raid
04 01 configuration raid
 
LPIC1 07 01 introduction à l'administration du matériel
LPIC1 07 01 introduction à l'administration du matérielLPIC1 07 01 introduction à l'administration du matériel
LPIC1 07 01 introduction à l'administration du matériel
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)
 
06 03 notification aux utilisateurs des problèmes système
06 03 notification aux utilisateurs des problèmes système06 03 notification aux utilisateurs des problèmes système
06 03 notification aux utilisateurs des problèmes système
 
07 01 configuration élémentaire d'un dns
07 01 configuration élémentaire d'un dns07 01 configuration élémentaire d'un dns
07 01 configuration élémentaire d'un dns
 
03 02 maintenance d'un système de fichiers linux
03 02 maintenance d'un système de fichiers linux 03 02 maintenance d'un système de fichiers linux
03 02 maintenance d'un système de fichiers linux
 
04 02 ajustement des accès aux périphériques de stockage
04 02 ajustement des accès aux périphériques de stockage04 02 ajustement des accès aux périphériques de stockage
04 02 ajustement des accès aux périphériques de stockage
 
LPIC1 4 01 introduction aux packages
LPIC1 4 01 introduction aux packagesLPIC1 4 01 introduction aux packages
LPIC1 4 01 introduction aux packages
 
02 02 linux standard base
02 02 linux standard base02 02 linux standard base
02 02 linux standard base
 
06 04 arp
06 04 arp06 04 arp
06 04 arp
 
LPIC1 05 06 umask
LPIC1 05 06 umaskLPIC1 05 06 umask
LPIC1 05 06 umask
 
LPIC1 02 03 aide
LPIC1 02 03 aideLPIC1 02 03 aide
LPIC1 02 03 aide
 
LPIC1 05 03 les fichiers, dossiers et leurs propriétaires
LPIC1 05 03 les fichiers, dossiers et leurs propriétairesLPIC1 05 03 les fichiers, dossiers et leurs propriétaires
LPIC1 05 03 les fichiers, dossiers et leurs propriétaires
 

Plus de Noël

LPIC2 12 01 pare-feu et nating
LPIC2 12 01 pare-feu et natingLPIC2 12 01 pare-feu et nating
LPIC2 12 01 pare-feu et nating
Noël
 
présentation des services Open Source pour GNU/Linux
présentation des services Open Source pour GNU/Linuxprésentation des services Open Source pour GNU/Linux
présentation des services Open Source pour GNU/Linux
Noël
 
LPIC1 07 14 mount
LPIC1 07 14 mountLPIC1 07 14 mount
LPIC1 07 14 mount
Noël
 
LPIC1 07 13 fsck
LPIC1 07 13 fsckLPIC1 07 13 fsck
LPIC1 07 13 fsck
Noël
 
LPIC1 07 18 debugfs
LPIC1 07 18 debugfsLPIC1 07 18 debugfs
LPIC1 07 18 debugfs
Noël
 
LPIC1 07 17 tune2fs
LPIC1 07 17 tune2fsLPIC1 07 17 tune2fs
LPIC1 07 17 tune2fs
Noël
 
LPIC1 07 16 dumpe2fs
LPIC1 07 16 dumpe2fsLPIC1 07 16 dumpe2fs
LPIC1 07 16 dumpe2fs
Noël
 
LPIC1 07 12 formatage
LPIC1 07 12 formatageLPIC1 07 12 formatage
LPIC1 07 12 formatage
Noël
 
LPIC1 07 11 introduction aux systèmes de fichiers
LPIC1 07 11 introduction aux systèmes de fichiersLPIC1 07 11 introduction aux systèmes de fichiers
LPIC1 07 11 introduction aux systèmes de fichiers
Noël
 
LPIC1 07 10 GNU parted
LPIC1 07 10 GNU partedLPIC1 07 10 GNU parted
LPIC1 07 10 GNU parted
Noël
 
LPIC1 07 09 fdisk
LPIC1 07 09 fdiskLPIC1 07 09 fdisk
LPIC1 07 09 fdisk
Noël
 
LPIC1 07 08 partitionning
LPIC1 07 08 partitionningLPIC1 07 08 partitionning
LPIC1 07 08 partitionning
Noël
 
LPIC1 07 07 introduction à la gestion des disques durs
LPIC1 07 07 introduction à la gestion des disques dursLPIC1 07 07 introduction à la gestion des disques durs
LPIC1 07 07 introduction à la gestion des disques durs
Noël
 

Plus de Noël (13)

LPIC2 12 01 pare-feu et nating
LPIC2 12 01 pare-feu et natingLPIC2 12 01 pare-feu et nating
LPIC2 12 01 pare-feu et nating
 
présentation des services Open Source pour GNU/Linux
présentation des services Open Source pour GNU/Linuxprésentation des services Open Source pour GNU/Linux
présentation des services Open Source pour GNU/Linux
 
LPIC1 07 14 mount
LPIC1 07 14 mountLPIC1 07 14 mount
LPIC1 07 14 mount
 
LPIC1 07 13 fsck
LPIC1 07 13 fsckLPIC1 07 13 fsck
LPIC1 07 13 fsck
 
LPIC1 07 18 debugfs
LPIC1 07 18 debugfsLPIC1 07 18 debugfs
LPIC1 07 18 debugfs
 
LPIC1 07 17 tune2fs
LPIC1 07 17 tune2fsLPIC1 07 17 tune2fs
LPIC1 07 17 tune2fs
 
LPIC1 07 16 dumpe2fs
LPIC1 07 16 dumpe2fsLPIC1 07 16 dumpe2fs
LPIC1 07 16 dumpe2fs
 
LPIC1 07 12 formatage
LPIC1 07 12 formatageLPIC1 07 12 formatage
LPIC1 07 12 formatage
 
LPIC1 07 11 introduction aux systèmes de fichiers
LPIC1 07 11 introduction aux systèmes de fichiersLPIC1 07 11 introduction aux systèmes de fichiers
LPIC1 07 11 introduction aux systèmes de fichiers
 
LPIC1 07 10 GNU parted
LPIC1 07 10 GNU partedLPIC1 07 10 GNU parted
LPIC1 07 10 GNU parted
 
LPIC1 07 09 fdisk
LPIC1 07 09 fdiskLPIC1 07 09 fdisk
LPIC1 07 09 fdisk
 
LPIC1 07 08 partitionning
LPIC1 07 08 partitionningLPIC1 07 08 partitionning
LPIC1 07 08 partitionning
 
LPIC1 07 07 introduction à la gestion des disques durs
LPIC1 07 07 introduction à la gestion des disques dursLPIC1 07 07 introduction à la gestion des disques durs
LPIC1 07 07 introduction à la gestion des disques durs
 

01 04 compilation du noyau

  • 1. Linux LPIC2 noelmace.com Noël Macé Formateur et Consultant indépendant expert Unix et FOSS http://www.noelmace.com Compilation du noyau Noyau Linux Licence Creative Commons Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
  • 2. Linux LPIC2 noelmace.com Plan • Résumé des opérations • Vérifier les dépendances • Méthode simple et complète • Compiler le monobloc • Compiler les modules dynamiques • INITIal Ram Disk • Création d'un initrd • mkinitrd • mkinitramfs
  • 3. Linux LPIC2 noelmace.com Résumé des opérations • Vérifier les dépendances • Nettoyer • Compilation de monobloc • Compilation des modules • Installation des modules # make dep && make clean && make bzImage && make modules > && make modules_install # make dep && make clean && make bzImage && make modules > && make modules_install
  • 4. Linux LPIC2 noelmace.com Vérifier les dépendances • S'assurer que toutes les dépendances sont en place  exemples : fichiers include $ make dep$ make dep
  • 5. Linux LPIC2 noelmace.com Méthode simple et complète • Dans le répertoire des sources • Construit le monobloc et les modules • Suffisant  si aucune erreur  et tout les utilitaires nécessaires présent • Astuce $ make [all]$ make [all] $ make [all] | grep -iw "error"$ make [all] | grep -iw "error"
  • 6. Linux LPIC2 noelmace.com Compiler le monobloc • Permet de choisir le type de monobloc à compiler $ make [zImage | bzImage]$ make [zImage | bzImage]
  • 7. Linux LPIC2 noelmace.com Compiler les modules dynamiques $ make modules$ make modules
  • 8. Linux LPIC2 noelmace.com Créer un package • Pour CentOS • Pour Debian $ make rpm$ make rpm $ make-kpkg kernel_image$ make-kpkg kernel_image
  • 9. Linux LPIC2 noelmace.com INITial Ram Disk • Rappel : cf LPIC1 • Chargé au démarrage • Système de fichier  initramfs (cramfs, squashfs)  chargé en mémoire vive • Contient certains modules nécessaires au démarrage  permet d'utiliser un kernel minimal  plus grande souplesse
  • 10. Linux LPIC2 noelmace.com Création d'un initrd • Nombreux outils • Varient suivant les distributions • Deux plus courants :  mkinitrd  mkinitramfs
  • 11. Linux LPIC2 noelmace.com mkinitrd • Options  --version  -v : verbose  --preload=MonModule  --with=MonModule  --builtin=MonModule  -f: permettre d'écraser une image existante • Exemple # mkinitrd image KernelVersion# mkinitrd image KernelVersion # mkinitrd /boot/initrd-2.6.35.4.img 2.6.35.4# mkinitrd /boot/initrd-2.6.35.4.img 2.6.35.4  --fstab=filename  --image-version  --nocompress  --nopivot  --omit-lvm-modules  --omit-raid-modules
  • 12. Linux LPIC2 noelmace.com mkinitramfs • Options :  -d confdir  -k  -o outfile  -r root  -v  --supported-host-version=version  --supported-target-version=version # mkinitramfs -o /boot/initramfs-2.6.35.4.img 2.6.35.4# mkinitramfs -o /boot/initramfs-2.6.35.4.img 2.6.35.4
  • 13. Linux LPIC2 noelmace.com Ce qu’on a couvert • Comment compiler le kernel. • Comment créer un initrd. Weight : 2 Description : Candidates should be able to properly configure a kernel to include or disable specific features of the Linux kernel as necessary. This objective includes compiling and recompiling the Linux kernel as needed, updating and noting changes in a new kernel, creating an initrd image and installing new kernels. Key Knowledge Areas:  /usr/src/linux/  Kernel 2.6.x make targets  Kernel 3.x make targets The following is a partial list of the used files, terms and utilities:  mkinitrd  mkinitramfs  make  make targets (config, xconfig, menuconfig, oldconfig, mrproper, zImage, bzImage, modules, modules_install) 201.2 Compiling a kernel (Partiellement) Key Knowledge Areas:  /usr/src/linux/  Build a new kernel and appropriate kernel modules. The following is a partial list of the used files, terms and utilities:  make  /usr/src/linux/* 201.4 Customise, build and install a custom kernel and kernel modules (Partiellement)
  • 14. Linux LPIC2 noelmace.com Licence Ce(tte) œuvre (y compris ses illustrations, sauf mention explicite) est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France. Pour voir une copie de cette licence, visitez http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ ou écrivez à : Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. Vous êtes libre de :  partager — reproduire, distribuer et communiquer cette œuvre  remixer — adapter l’œuvre Selon les conditions suivantes :  Attribution — Vous devez clairement indiquer que ce document, ou tout document dérivé de celui, est (issu de) l’œuvre originale de Noël Macé (noelmace.com) (sans suggérer qu'il vous approuve, vous ou votre utilisation de l’œuvre, à moins d'en demander expressément la permission).  Pas d’Utilisation Commerciale — Vous n’avez pas le droit d’utiliser cette œuvre à des fins commerciales (ie. l'intention première ou l'objectif d'obtenir un avantage commercial ou une compensation financière privée). Pour obtenir ce droit, une autorisation explicite de l'auteur est requise.  Partage dans les Mêmes Conditions — Si vous modifiez, transformez ou adaptez cette œuvre, vous n’avez le droit de distribuer votre création que sous une licence identique ou similaire à celle-ci. Pour toute demande de collaboration, d'utilisation commerciale ou de publication de ce support ou d'un dérivé de celui-ci sous une licence incompatible, contacter l'auteur via les contacts indiqués sur le site http://www.noelmace.com. Vous êtes par ailleurs vivement encouragé (sans obligation légale) à communiquer avec celui-ci si vous réalisez une œuvre dérivée ou toute amélioration de ce support.