COMPILER LE KERNEL
Nous allons voir comment compiler un kernel Linux. Dans ce tutoriel, nous utiliserons suse 10. Nous compilerons le kernel 2.6.13-15.7. Les commandes montres dans cet article fonctionnent néanmoins avec n''importe quel kernel 2.6.Installez les sources du kernel
rpm -i kernel-source-2.6.13-15.7.i586.rpm
déplacez-vous dans le répertoire du kernel (/usr/src/linux) pour effectuer les prochaines opérations.
Modifiez la ligne contenant EXTRAVERSION dans le fichier Makefile. N'importe quelle valeur peut être mise, mais le premier caractère doit être un trait d'union.
Si vous ne voulez pas utiliser le fichier de config de ce kernel faite
make mrproper
Cette commande permet de choisir les options du kernel
make xconfig
Pour débuter, il peut être intéressant de rien changer afin de s''assurer que ça fonctionne. Par la suite, vous pouvez enlevez des fonctionnalités que vous n''utilisez pas.
Ouvrez le fichier: .config et modifiez la ligne concernant: CONFIG_LOCALVERSION, changez sa valeur. La valeur mise pour cet exemple est: -default_collinm_1. Ce changement permettra de ne pas écraser les modules. Ainsi, ce noyau et ses modules seront totalement indépendants du noyau que vous avez.
Cette commande compile le kernel
make bzImage
Cette commande compile les modules
make modules
Cette commande installe les modules
make modules_install
La commande ci-dessous copie le bzimage, System-map et modifie grub pour vous
make install
Ensuite, vous devez modifier votre fichier grub ou lilo. Ici nous allons modifier le menu de grub
Avant les modifications menu.lst ressemblait à
# Modified by YaST2. Last modification on Tue Jan 17 02:34:27 EST 2006 color white/blue black/light-gray default 0 timeout 8 gfxmenu (hd0,4)/message ###Don't change this comment - YaST2 identifier: Original name: linux### title SUSE LINUX 10.0 root (hd0,4) kernel /vmlinuz root=/dev/sda6 vga=0x317 selinux=0 resume=/dev/sda9 splash=silent showopts initrd /initrd ###Don't change this comment - YaST2 identifier: Original name: failsafe### title Failsafe -- SUSE LINUX 10.0 root (hd0,4) kernel /vmlinuz root=/dev/sda6 vga=normal showopts ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0 edd=off 3 initrd /initrd
Le fichier après les modifications fait par make install ressemble à
# Modified by YaST2. Last modification on mer fév 8 22:53:52 EST 2006 color white/blue black/light-gray default 1 timeout 8 gfxmenu (hd0,4)/message title Linux-2.6.13-test1-15.7-default_collinm_1 root (hd0,4) kernel /vmlinuz-2.6.13-test1-15.7-default_collinm_1 root=/dev/sda6 vga=0x317 selinux=0 resume=/dev/sda9 splash=silent showopts initrd /initrd-2.6.13-test1-15.7-default_collinm_1 ###Don''t change this comment - YaST2 identifier: Original name: linux### title SUSE LINUX 10.0 root (hd0,4) kernel /vmlinuz root=/dev/sda6 vga=0x317 selinux=0 resume=/dev/sda9 splash=silent showopts initrd /initrd-2.6.13-15.7-default ###Don''t change this comment - YaST2 identifier: Original name: failsafe### title Failsafe -- SUSE LINUX 10.0 root (hd0,4) kernel /vmlinuz root=/dev/sda6 vga=normal showopts ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0 edd=off 3 initrd /initrd-2.6.13-15.7-default
Si vous regarder dans votre répertoire /boot, il est fort probable que vmlinuz pointe sur la nouvelle valeur ici: vmlinuz-2.6.13-test1-15.7-default_collinm_1. Il faut donc modifier cela.
# Modified by YaST2. Last modification on mer fév 8 22:53:52 EST 2006 color white/blue black/light-gray default 1 timeout 8 gfxmenu (hd0,4)/message title Linux-2.6.13-test1-15.7-default_collinm_1 root (hd0,4) kernel /vmlinuz-2.6.13-test1-15.7-default_collinm_1 root=/dev/sda6 vga=0x317 selinux=0 resume=/dev/sda9 splash=silent showopts initrd /initrd-2.6.13-test1-15.7-default_collinm_1 ###Don''t change this comment - YaST2 identifier: Original name: linux### title SUSE LINUX 10.0 root (hd0,4) kernel /vmlinuz-2.6.13-15.7-default root=/dev/sda6 vga=0x317 selinux=0 resume=/dev/sda9 splash=silent showopts initrd /initrd-2.6.13-15.7-default ###Don''t change this comment - YaST2 identifier: Original name: failsafe### title Failsafe -- SUSE LINUX 10.0 root (hd0,4) kernel /vmlinuz-2.6.13-15.7-default root=/dev/sda6 vga=normal showopts ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0 edd=off 3 initrd /initrd-2.6.13-15.7-default
Il est maintenant possible de démarrer sur un et l''autre des noyaux. Les modules sont indépendants.
Si vous utilisez les pilotes Nvidia, une fois qu'ils sont installés vous pouvez démarré sur vos autres noyaux. Lancez NVIDIA-Linux-x86-1.0-xxxx-pkg1.run avec l'option -K. Vous allez ainsi avoir les pilotes pour le noyau en cours. Cette commande doit être faite pour chacun de vos noyaux.
Aucun commentaire:
Enregistrer un commentaire