Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Kernel-kernel26


Introduction au kernel 2.6

Introduction au kernel 2.6
Comment tester la nouvelle cuvée du kernel sans se planter ...

Tout d'abord ...

A propos de cet article ...

Licence de ce document

Ce document est sous licence FDL.

Pourquoi cet article ?

Tout simplement parce que j'utilise la version de développement depuis le 2.5.70, de nouvelles fonctionnalités m'ont séduit. De plus, ce sera la version qui sera utilisée très prochainement dans toutes les distributions, je pense donc qu'il est utile de savoir le maîtriser le plus rapidement possible.

Préambule

Pour les personnes ne sachant pas encore ce qu'est un noyau, je leur conseille FORTEMENT de consulter la définition dans le glossaire de lea.

Les principaux changements

Parmi les modifications qui ne sont verront pas physiquement, on peut noter le nouvel ordonnanceur (programme se chargeant, de distribuer le temps de calcul aux différents processus, assurant donc leur ordonnancement), une meilleure répartition du temps machine, et une granularité d'horloge (portion de temps minimum pouvant être traitée par le système) qui passe de 10 ms à 1 ms. Dans les modifications majeures, on peut noter l'intégration des pilotes ALSA au noyau, la possiblité de gérer jusqu'à 4 Go de RAM sur les machines i386, un noyau préemptif (système pour lequel on peut arrêter à tout moment n'importe quelle application pour passer la main à la suivante). Le code des entrée/sorties a même été revu, les architectures ont été divisées ... STOP ! Arrêtons là, une liste complète des nouvelles fonctionnalités peut être trouvée ici.

Nécessaire à la compilation du nouveau noyau

  • Les sources, à récupérer sur le serveur FTP suivant : ftp.kernel.org
  • Une version récente de GCC. En ce qui me concerne, j'utilise GCC 3.3.2.
  • La librairie ncurses si vous souhaitez configurer votre noyau en mode graphique dans un terminal (paquet libncurses-dev sous Debian.)
  • La librairie qt si vous désirez configurer votre noyau sous X (interface graphique) (paquet libqt3-dev sous Debian.)

Préparation des sources

Récupérer les sources

A l'heure où j'écris ces lignes, la dernière version de test est la 2.6-test10. Vous trouverez TOUTES les versions du noyau sur le serveur ftp ftp.kernel.org. Pour récupérer la dernière version du noyau 2.6, il vous suffit d'aller dans le répertoire /pub/linux/kernel/V2.6 et de prendre le fichier correspondant à la dernière version, compressée soit en .tar.gz soit en .tar.bz2.

Installer correctement les sources

Les modifications suivantes se font en root
  • Une fois le téléchargement effectué, copier l'archive fraichement récupérée dans le répertoire /usr/src/linux.
    cp linux-2.6.XX.tar.gz /usr/src/ (ou linux-2.6.XX.tar.bz2 si l'archive est au format bz2)
  • Ensuite, décompressez l'archive.
    tar zxvf linux-2.6.XXX.tar.gz (si celle-ci est au format .tar.gz)
    tar xjvf linux-2.6.XXX.tar.bz2 (si format bz2)
  • Enfin, il est nécessaire que les sources de votre nouveau noyau pointent vers /usr/src/linux. On fait ça tout simplement en créant un lien symbolique, qui fera pointer votre nouveau répertoire vers /usr/src/linux. Il est également fort probable que vous ayez les sources de votre ancien noyau. Il est donc conseillé de les supprimer avant de créer le nouveau lien. Tout cela se fait avec la commande :
    rm /usr/src/linux && ln -s /usr/src/linux-2.6.XX /usr/src/linux
    Cela va de soi, mais remplacer linux-2.6.XX par le répertoire nouvellement créé
  • Voilà, il nous reste plus qu'à aller configurer notre noyau ;-)

La configuration

Zoup, assez discuté sur les futilités, passons à la configuration du noyau !

Entrez dans l'outil de configuration

Positionnez vous dans le répertoire /usr/src/linux : cd /usr/src/linux
Puis, plusieurs possiblités s'offre à vous :

Faîtes attention au préalable à bien avoir installé la librairie nécessaire au mode de configuration que vous choisirez. Voir plus haut pour plus d'informations
  • Vous optez pour une configuration en mode texte pur. Attention, c'est très vite fastidieux, on doit répondre si l'on désire activer chaque option. Cette méthode est donc réservée à tous les barbus/geek. Si vous voulez néanmoins utiliser ce mode de configuration, vous taperez la commande suivante.
    make config
  • Vous optez pour une configuration graphique en mode texte (style curses). Dans ce cas, vous taperez la commande suivante :
    make menuconfig
  • Enfin, vous pouvez configurer votre noyau sous X. Dans ce cas, vous devez être connecté sur un serveur X, et taper la commande suivante :
    make xconfig
Kernel26-menuconfig.png
Un exemple de configuration avec menuconfig
Kernel26-xconfig.png
Un exemple avec xconfig

Les principaux changements et recommandations concernant la configuration

Remarques Générales

  • Si vous avez l'habitude du noyau 2.4, sachez que la plupart des options de l'ancienne version du 2.4 sont disponibles, elles ont été , en revanche, bien souvent déplacées dans des sections plus adaptées.
  • Les diverses sections sont plus cohérentes. Ainsi, tout ce qui concerne le réseau (support de protocoles, du filtre de paquets, mais aussi des différentes cartes) est inclus dans une seule et même section. Nous avons plus de sections, mais chacune est bien délimitée et concerne une partie précise du noyau (son, réseau, input, ...).

Section par section

General Setup
  • Grosse surprise, il y a maintenant moins d'élements dans cette section. C'est plutot normal puisque pour cette nouvelle version du noyau, de nombreuses options ont été séparées et replacées dans les sections adéquates.
  • Une nouvelle option est la gestion du .config. Cette option vous permet de conserver votre configuration du noyau, ce qui vous facilitera la vie lors d'une future recompilation.
Loadable module support
  • Vous pouvez maintenant compiler le support pour décharger des modules. Je ne peux que vous conseiller de compiler cette option (en dur bien sur). A coté de ça, il faudra installer module-init-tools, qui inclut les nouvelles version des outils pour les modules, comme modprobe et cie ...
Processor Type and features
  • Bien choisir son architecture et son type de processeur. En effet, le noyau 2.6 sépare le processeur et l'architecture. Pour la majeure partie des lecteurs, l'architecture sera PC-Compatible, et le processeur soit Athlon, PIII ou PIV.
  • L'option "Generic x86 support" vous permettra d'avoir un support générique pour le x86, surtout sur les processeurs exotiques. Cette option est surtout utile si on ne connait pas le processeur sur lequel ce kernel sera utilisé : elle permet de pouvoir avoir un support générique des processeur i386, avec quelques accélérations. Autrement dit, si le noyau est compilé uniquement pour votre machine, ne la prenez pas !
  • Comme dit précédemment, cette nouvelle mouture est préemptive. Veillez à bien cocher l'option "Preemptible Kernel" pour avoir un système plus réactif !
Power Management options
  • L'ACPI a fait un saut en avant par rapport à la version 2.4 du noyau Linux. Même si les mêmes options sont disponibles, l'ACPI, ça n'était pas vraiment ça sous Linux. Néanmoins, je vous déconseille de l'utiliser, un ami têtu en a déjà fait les frais (un portable grillé pour la peine !). Le problème est principalement que les interfaces ACPI ont de grandes différences et il est difficile de fournir un support ACPI complet. Il est donc préférable d'utiliser l'APM.
  • L'ajustement de l'horloge du processeur est présent, mais je ne l'ai malheureusement pas testé. Par conséquent, je ne préfère pas en dire plus ;-)
Executable File Formats
  • Je ne peux que vous recommander de mettre en dur tous les types de binaires. En effet, Linux gère de nombreux formats de fichiers binaires comme l'antédéluvien a.out, l'ELF, et bien d'autres (dont les binaires dos, ...).
Device Drivers

Ce sont précisément les bouts de code qui permettront à votre nouveau noyau d'intéragir avec vos périphériques. Je ne détaillerai pas toutes les sections, je vais parler plutot des avancées majeures de cette nouvelle section.

  • On pourra noter que les Input ont bien été séparés du reste dans ce noyau. Dans la section "Input Device Support", vous trouverez aussi bien le support pour le clavier PS2 que pour les écrans tactiles ou les joystick. Allez donc faire un tour pour inclure tous vos périphériques.
  • Un des gros changement, c'est l'inclusion des pilotes ALSA. Vous pouvez les compiler soit en dur, soit en modules. ("Device Drivers->Sound"). Si vous n'utilisez pas encore ALSA, c'est l'occasion de découvrir ce fabuleux projet. Pour les autres, ces modules remplaceront les anciens, et les script de démarrage pourront se conserver.
  • Ne surtout pas oublier de compiler votre kernel avec l'option Device Drivers -> Graphics Support -> Console display driver support -> Video mode selection support. Bien sur, vous pouvez utiliser le framebuffer à la place.
File Systems
  • Veillez à bien compiler les systèmes de fichiers en dur, au moins pour le système root (votre /).
  • Le support du XFS est maintenant inclu en standard dans notre noyau préféré ! Pour ceux qui ne connaissent pas encore le XFS, c'est le système de fichiers développé par Silicon Graphics pour son OS Irix. Ce dernier est très performant et fiable.
  • On note le support expérimental de NFS v4 et de CIFS, nouveaux systèmes de fichiers en réseau.

Compiler et installer votre nouveau noyau

Il est je pense inutile de décrire comment compiler et installer votre noyau, de nombreux articles ayant été écrits à ce sujet. Si toutefois vous ne savez pas, je vous invite à consulter cette documentation sur lea, ou en chercher une autre :-)
A noter également que la commande make-kpkg fonctionne parfaitement pour Debian pour faire un paquet contenant notre nouveau noyau.

Problèmes rencontrés

Le kernel boote, mais rien ne s'affiche

Veuillez bien lire les recommandations ci-dessus, il y a de grandes chances pour que vous n'ayez pas activé l'option Video mode selection support ou le framebuffer.

Drivers nVidia

Pour les possesseurs de cartes nVidia et qui désirent garder le pilote propriétaire, j'ai une mauvaise et une bonne nouvelle.
La mauvaise, c'est que les pilotes officiels ne s'installent pas avec cette nouvelle mouture du kernel.
La bonne, c'est qu'il existe un patch pour pouvoir les installer. Vous trouverez toutes les ressources nécessaires sur http://www.minion.de

Ma carte TV ne fonctionne pas

Eh oui, vous goutez les joies du devel. Apparemment, les cartes TV ont quelques incompatibilités avec certains matériels.

Pour finir

La meilleure manière de mieux connaitre ce nouveau kernel, c'est de l'essayer, n'hésitez donc pas à compiler votre propre noyau, tout en prenant soin de conserver dans un coin de votre disque un noyau qui fonctionne. Je vous conseille également de consulter le site kernelfr qui proposera une traduction des fichiers et autres broutilles autour du kernel.

Autres ressources



@ Retour à la rubrique Noyau et modules

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Julien Delange le 05/11/2003.

Copyright

© 05/11/2003 Julien Delange

Tête de GNU Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la GNU Free Documentation License, Version 1.2 ou n'importe quelle version ultérieure publiée par la Free Software Foundation; sans section invariante, sans page de garde, sans entête et sans page finale. Pour plus d'informations consulter le site de l'APRIL.
Affichages
Outils personnels

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons CC-BY-SA