Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
utilisateurs:hypathie:tutos:kernel-linux [22/08/2014 13:08] Hypathie [Personnalisation du noyau] |
utilisateurs:hypathie:tutos:kernel-linux [24/08/2014 07:39] Hypathie [Personnalisation du noyau] |
||
---|---|---|---|
Ligne 368: | Ligne 368: | ||
- | =====Personnalisation du noyau ===== | + | =====Personnalisation du noyau===== |
====La commande make==== | ====La commande make==== | ||
Ligne 378: | Ligne 378: | ||
La cible définit l'action.\\ | La cible définit l'action.\\ | ||
Par exemple pour un nettoyage : | Par exemple pour un nettoyage : | ||
- | <code user>make mrproper</code | + | <code user>make mrproper</code> |
===Choisir les composant en fonction du matériel === | ===Choisir les composant en fonction du matériel === | ||
Ligne 520: | Ligne 520: | ||
<code root>make-kpkg kernel_image</code> | <code root>make-kpkg kernel_image</code> | ||
+ | ====Installer son noyau et ses modules ==== | ||
+ | |||
+ | <code root>make install</code> | ||
+ | |||
+ | Dans le fichier de ses sources (après ''make all'' ou ''make'') | ||
+ | -> Cela copie le monobloc dans /boot\\ | ||
+ | -> copie du fichier "system.map"\\ | ||
+ | -> création et mise en place d'un initrd (si on ne l'a pas fait)\\ | ||
+ | -> modifie grub | ||
+ | |||
+ | ===le fichier system.map === | ||
+ | |||
+ | Il a été créé lors du ''make all''. Il fait une table de correspondance entre nom symbolique et leur adresse en mémoire.\\ | ||
+ | <note> | ||
+ | Il est bien de le copier :\\ | ||
+ | (en root)\\ | ||
+ | |||
+ | -> **''cp System.map /boot/system.map-xxx''**\\ | ||
+ | |||
+ | -> **''rm /boot/System.map''**\\ | ||
+ | |||
+ | -> **''ln -s /boot/System.map-version-de-son-kernel /bootSystem.map''**\\ | ||
+ | </note> | ||
+ | |||
+ | Si on a voulu séparer les différentes opération et qu'on a pas fait de ''make install'' dans le fichier de source, on ajoute enfin les modules. | ||
+ | |||
+ | <code root>make modules_install</code> | ||
+ | |||
+ | Cela installe tous les modules dans /lib/modules/n°kernel-version.\\ | ||
+ | |||
+ | **Opération indispensable avant de créer un initrd car pour le faire c'est dans /lib/modules/n°kernel-version que **mkinitrd** ou **mkinitramfs** il trouve les infos nécessaires pour créer un initrd.** | ||
====INITial Ram Disk ==== | ====INITial Ram Disk ==== | ||
Ligne 528: | Ligne 559: | ||
- | ===Créer un initrd === | + | Quelques outils pour créer un initrd :\\ |
- | Quelques outils : | + | |
* mkinitrd (distrib à base de Redhat) | * mkinitrd (distrib à base de Redhat) | ||
* mkinitramfs (db) | * mkinitramfs (db) | ||
+ | === mkinitrd=== | ||
+ | |||
+ | <code>mkinitrd /boot/initrd-XXXX.img n°du-kernel-version</code> | ||
+ | |||
+ | -> On donne le nom qu'on veut pour son initrd\\ | ||
+ | -> Par exemple : ''mkinitrd ./mon-initrd.img $(uname -r)''\\ | ||
+ | -> ''$(uname -r)'' : pour le kernel actuel.\\ | ||
+ | -> il se crée un initrd pour la version instalée de /boot : ''vmlinuz-3.2.0-4-amd64''\\ | ||
+ | -> Depuis /boot : ./mon-initrd.img 3.2.0-4-amd64\\ | ||
+ | -> faire un uname -r\\ pour voir celle installée\\ | ||
+ | -> Pour faire un initrd pour une autre, faire un make install avant (voir plus bas). | ||
+ | |||
+ | <note> | ||
+ | ** ''-f''** pour écraser l'ancien.\\ | ||
+ | Mais mieux veut faire ''mv initramfs-xxx.img ~/''\\ | ||
+ | |||
+ | ** ''--preload <module>''** : définir un module qui sera chargé avant le module SCSI au démarrage (utile pour certains drivers du disque dur, ou certains système de fichier.\\ | ||
+ | |||
+ | ** ''image-version''** : ajoute le nom du kernel au chemin de l'initrd ce qui permet d'avoir par exemple la création de initramfs-xxxx.img\\ | ||
+ | |||
+ | **''--with=<module>''** : pour personnalisé, ajouter des modules après le SCSI | ||
+ | </note> | ||
+ | |||
+ | ===mkinitramfs === | ||
+ | |||
+ | <code>mkinittramfs -o /boot/initramfs-xxxx.img n°kernel-version</code> | ||
+ | |||
+ | <note> | ||
+ | **''-o''** : pour indiquer le fichier de sortie\\ | ||
+ | **''-d''** fichier de config : permet de détecter les drivers des systèmes de fichier dont il a besoin, par défaut c'est initramfs.\\ | ||
+ | **''-k''** : ne pas supprimer le fichier temporaire qui a servi pendant la création.\\ | ||
+ | **''-v''** : verbose\\ | ||
+ | **''-r''** root : pour définir la partition racine (on peut définir ici ce qu'on a définit dans grub2)\\ | ||
+ | **''--supported-host-version=version-spécifiée''** : avant de lancer mkinitramfs, vérifier si le programme peut créer une image pour la version spécifiée.\\ | ||
+ | **''--supported-target-version=version-target''** : vérifier si une target est supportée\\ | ||
+ | |||
+ | Quand on fait ''mkinitramfs -o /boot/initrd.img n°version'', ce n° de version signifie "va chercher dans /lib/modules/n°version, créé lors de l'installation des modules avec ''make modules_install''. | ||
+ | </note> | ||
+ | Par exemple : <code root>mkintramfs -o mon-initrd.img $(uname -r)</code> | ||
+ | ====Configuration de Grub ==== | ||
+ | ===Legacy === | ||
+ | ===Grub2=== | ||