[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évision
Révision précédente
Prochaine révisionLes deux révisions suivantes
fr:slackbook:linux_kernel [2014/11/04 23:25 (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 117: Ligne 117:
 </code> </code>
  
 +Ici vous pouvez voir que le nouveau noyau que je compile ajoute le support pour un nouveau système de fichiers : ext4. //oldconfig// a revu ma configuration originelle, conservé les anciennes options telle qu'elles étaient et m'a demandé que faire pour les nouvelles options. Il est généralement sage de choisir l'option par défaut, mais vous pouvez chosir ce qui vous convient. //oldconfig// est un outil très pratique pour visualiser les nouvelles options de configuration, en faisant le plus adapté pour les utilisateurs qui veulent simplement essayer la dernière version du noyau.
  
 +Pour les opérations de configuration plus sérieuses, il existe une multitude d'options. Le noyau Linux peut être configuré de trois façons principales. La première est //config//, qui énumèrera chacune des options une par une et vous demander de que vous souhaitez. Cette méthode est si fastidieuse qu'il est peu probable que qui que ce soit l'utilise encore.
  
 +<code>
 +darkstar:/usr/src/linux# make config
 +scripts/kconfig/conf arch/x86/Kconfig
 +*
 +* Linux Kernel Configuration
 +*
 +*
 +* General setup
 +*
 +Prompt for development and/or incomplete code/drivers (EXPERIMENTAL) [Y/n/?] Y
 +Local version - append to kernel release (LOCALVERSION) [] -test
 +Automatically append version information to the version string (LOCALVERSION_AUTO) [N/y/?] n
 +Support for paging of anonymous memory (swap) (SWAP) [Y/n/?]
 +</code>
  
-(//À suivre... / To be continued...//)+Heureusement, il existe deux autres méthodes plus faciles pour configurer votre noyau, //menuconfig// et //xconfig//. Toutes les deux créent un programme basé sur des menus qui vous propose de sélectionner ou dé-sélectionner des options sans avoir à toutes les vérifier//menuconfig// est la méthode la plus utilisée, et c'est celle que je recommande. //xconfig// n'est utile que si vous essayer de compiler un noyau depuis un environnement graphique via **//X//**Les deux sont très proches, et nous n'allons documenter que //menuconfig//
 + 
 +Lancer make menuconfig depuis un terminal vous présentera une interface basée sur curses, comme vous pouvez le voir ci-dessous. Chaque section du noyau dispose son propre sous-menu, et vous pouvez naviguer avec les touches fléchées.
  
 {{ :slackbook:make-menuconfig-w.png |make-menuconfig}} {{ :slackbook:make-menuconfig-w.png |make-menuconfig}}
 +
 +<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éfaut. Cela 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 compilation. Il 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émarrage) et 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 ()