[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révisionLes deux révisions suivantes
fr:slackbook:linux_kernel [2014/11/05 01:13 (UTC)] – [Pourquoi et comment compiler un noyau] ellendhelfr:slackbook:linux_kernel [2014/11/10 15:53 (UTC)] – [Pourquoi et comment compiler un noyau] ellendhel
Ligne 142: Ligne 142:
 {{ :slackbook:make-menuconfig-w.png |make-menuconfig}} {{ :slackbook:make-menuconfig-w.png |make-menuconfig}}
  
-(//À suivre... / To be continued...//)+<note warning> 
 +Si vous compilez un noyau d'une version identique à un proposé par Slackware vous devez modifier l'option //"Local version"//. Elle se trouve dans le sous-menu //"General setup"//Si vous ne modifiez pas cette option le noyau que vous compilerez remplacera tous les modules utilisés par les noyaux par défautCela peut rapidement rendre votre système inutilisable. 
 +</note> 
 + 
 +Une fois que vous avez fini de configurer votre noyau, il est temps de passer à l'étape de compilationIl existe différentes méthodes pour cela, mais la plus efficiace est d'utiliser //bzImage//En utilisant cette option avec la commande **//make//** la compilation du noyau débutera et vous verrez un flot de messages s'afficher dans votre terminal jusqu'à le processus se termine ou qu'une erreur fatale se produise. 
 + 
 +<code> 
 +darkstar:/usr/src/linux# make bzImage 
 +scripts/kconfig/conf -s arch/x86/Kconfig 
 +  CHK     include/linux/version.h 
 +  CHK     include/linux/utsrelease.h 
 +  SYMLINK include/asm -> include/asm-x86 
 +  CALL    scripts/checksyscalls.sh 
 +  CC      scripts/mod/empty.o 
 +  HOSTCC  scripts/mod/mk_elfconfig 
 +  MKELF   scripts/mod/elfconfig.h 
 +  HOSTCC  scripts/mod/file2alias.o 
 +... plusieurs centaines de lignes suivent ... 
 +</code> 
 + 
 +Si le processus engendre une erreur, vous devriez vérifier la configuration de votre noyau en premier lieu. Les erreurs de compilation sont le plus souvent générées par un problème dans le fichier ''.config''. Si tout c'est bien passé nous n'avons pas encore fini, il reste à préparer les modules. 
 + 
 +<code> 
 + 
 +darkstar:/usr/src/linux# make modules 
 +  CHK     include/linux/version.h 
 +  CHK     include/linux/utsrelease.h 
 +  SYMLINK include/asm -> include/asm-x86 
 +  CALL    scripts/checksyscalls.sh 
 +  HOSTCC  scripts/mod/file2alias.o 
 +... plusieurs milliers de lignes suivent ... 
 +</code> 
 + 
 +Si la compilation du noyau et des modules se termine correctement, il ne nous reste qu'à les installer. L'image du noyau doit être recopiée dans un endroit spécifique, généralement le répertoire ''/boot'', et vous devez lui donner un nom unique pour éviter d'écraser une autre image du noyau présente au même endroit. Habituellement les images du noyau sont nommées ''vmlinuz'' en y ajoutant leur numéro de version et une référence locale. 
 + 
 +<code> 
 +  darkstar:/usr/src/linux# cat arch/x86/boot/bzImage > /boot/vmlinuz-release_number-local_version 
 +  darkstar:/usr/src/linux# make modules_install 
 +</code> 
 + 
 +Une fois ces étapes completées, vous aurez une nouvelle image du noyau située dans ''/boot'''et de nouveaux modules dans le répertoire ''/lib/modules''. Afin de pouvoir utiliser ce nouveau noyau vous aurez besoin d'éditer ''lilo.conf'', de créer un initrd (uniquement si vous avez besoin de charger un ou plusieurs modules au démarrageet d'exécuter la commande **//lilo//** pour mettre à jour votre gestionnaire de démarrage. Lorsque vous redémarrerez, si tout se passe sans accroc, vous devriez avoir une option pour démarrer votre système avec votre tout nouveau noyau. Si quelque chose ne marche pas, vous passerez sûrement un certain temps à régler le problème. 
 ====== Navigation ====== ====== Navigation ======
  
 fr:slackbook:linux_kernel ()