[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ next ]

La FAQ de la liste debian-user-french@lists.debian.org
Chapter 5 - Questions en rapport avec le noyau


5.1 Les bases

Le noyau (kernel, en anglais), c'est le coeur du système d'exploitation. C'est lui qui sait utiliser les périphériques comme le disque, le clavier, la souris, l'écran, la carte réseau... Et surtout, il sait exécuter d'autres programmes. C'est d'ailleurs, en gros, son seul intérêt. Sans noyau, rien ne fonctionne. Pas que ça plante ou quelque chose du genre, ça ne démarre même pas. Comment démarrer si personne ne te fait démarrer ?

D'ailleurs, il faut signaler que, stricto sensu, l'expression "Linux" ne désigne que le noyau de notre système d'exploitation favori (le reste étant tous les programmes que vous connaissez, et tous les autres). On peut dire aussi que le noyau Linux n'est pas le seul existant. Il y a bien sûr tous les noyaux commerciaux, mais il ne faut pas oublier le Hurd, qui n'est rien d'autre qu'un concurrent du noyau Linux, tout aussi libre que lui. Pourquoi dupliquer le travail, me demandez vous ? Parce que le noyau Linux et le Hurd n'ont pas vraiment de points communs, à part le fait qu'ils font la même chose. Là où Linux est un gros truc un peu mastodonte, le Hurd ressemble plus à une tribu de petits trucs qui bossent ensemble. Forcément, ça va pas fonctionner pareil. Comme le Hurd est pour l'instant réservé à l'élite, aux gens prêts à réécrire des bouts de programmes compliqués si ça ne marche pas, nous n'en parlerons pas plus ici.

Revenons donc au noyau Linux. La plus grande question à son sujet est « Comment le compiler ». Et avant ça, « Pourquoi le compiler ? ». C'est que ce brave noyau est capable de faire des choses magnifiques. Il peut faire fonctionner des listes de composants matériels toujours plus grandes. Et forcément, personne n'a besoin de toutes les fonctionnalités. En plus, il est possible de l'utiliser sur différents processeurs. Il est donc clair que chacun aura un jour ou l'autre besoin d'un truc que le noyau sait faire sans problème, mais qui implique de recompiler le noyau pour activer une option. Le meilleur exemple, c'est sans doute le son. Pas moyen d'avoir du son sous Debian sans recompilation du noyau.

Un autre point, c'est que compiler le noyau, c'est un peu lourd. Ça veut dire faire quelques réglages, lancer le compilateur un long moment (grosso modo une demi heure sur mon pentium), et surtout, booter la machine pour tester les options. C'est pas toujours pratique. Donc on a inventé les modules. C'est des petits bouts du noyau, qui savent faire un truc précis. Toujours avec notre exemple, faire du son sur tel ou tel carte. Donc le principe, c'est qu'il faut charger le bon module, doté des bonnes options pour faire faire du son (ou d'autres choses comparables) au noyau. Et l'intérêt principal, c'est que si on s'est trompé dans les options passées au module, pas besoin de recompiler pour réessayer. Il suffit de le recharger, avec d'autres options... C'est beau, la technologie !


5.2 Comment recompiler et installer le noyau

Il y a deux méthodes principales : on peut utiliser la méthode standard sous Linux (make xconfig, make dep et ainsi de suite), ou on peut préférer utiliser la méthode Debian. Elle passe par l'utilisation du paquet kernel-package qui fournit la commande make-kpkg (make kernel package). L'intérêt de cette deuxième méthode (outre celui d'être particulière à Debian :), c'est que l'on obtient des paquets classiques Debian, que l'on peut installer avec dpkg, et ainsi de suite. Ainsi, si on fait des essais, il peut être pratique de conserver le paquet du noyau « qui va bien », pour restaurer la configuration précédente.

Quoi qu'il en soit, il faudra lire attentivement la documentation présente dans /usr/src/kernel-source-x.x.x/Documentation au moins pour configurer le noyau (et compiler si on choisit la méthode standard sous Linux). Et évidemment, la documentation de make-kpkg, si on décide de s'en servir (ce que je recommande).


5.3 Comment installer un nouveau module sans recompiler tout le noyau

Si tu avais compilé auparavant le support pour les modules dans ton kernel (si ce n'est pas le cas, tu ne couperas pas à la réinstallation intégrale), il te suffit de faire un make xconfig, sélectionner le module visé, faire un make dep clean modules et ensuite copier le module qui se trouvera dans /usr/src/kernel-source-2.2.x/modules/catégorie/module.o dans /lib/modules/2.2.x/catégorie puis de lancer un depmod -a.

Évidemment une telle manipulation te fera perdre tout le bénéfice du paquet make-kpkg si tu l'utilisais. C'est à toi de voir.

FIXME: La personne à l'origine de la question a répondu : « C'est ce que j'ai fait, et j'ai maintenant le module minix, par contre le System.map n'a pas été refait et j'ai donc des plaintes par-ci par-là quand je lance top ou ps.... »


5.4 Comment avoir un module chargé automatiquement au lancement

Deux solutions :


5.5 J'ai des « unresolved symbols » dans tel ou tel module.

Voici une méthode empirique, mais efficace : recompiler le noyau en se basant sur un source fraîchement décompressé. C'est pas plus dur que cela :)


5.6 Où mettre les réglages propres à chaque module ?

La méthode standard sous Linux, c'est de les mettre dans /etc/modules.conf, mais ce n'est pas comme ça que l'on fait sous Debian : en effet, un paquet ne peut pas facilement s'installer en modifiant ce fichier, et surtout se désinstaller en effaçant ses modifications. Il a donc été décidé de créer un répertoire /etc/modutils, où on place différents fichiers de configuration pour les noyaux. Et il y a aussi un utilitaire, update-modules, qui génère le fichier /etc/modules.conf à partir des fichiers dont je viens de parler. Par exemple, j'ai sur ma machine le fichier /etc/modutils/carte_son suivant :

     options cs4232 io=0x220 irq=5 dma=1 dma2=3
     options opl3 io=0x388
     options mpu401 irq=9 io=0x330

5.7 N'y aurait il pas un moyen plus simple de faire tout ça autrement?

Ben si, bien sûr. Ce que je viens de dire, c'est pour ceux qui aiment mettre les mains dans le cambouis, pour comprendre. Pour les autres, ruez-vous sur le paquet modconf. D'ailleurs, vous le connaissez déjà, c'est lui qui vous a aidé à installer les noyaux lors de l'installation initiale de Debian !


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ A ] [ next ]

La FAQ de la liste debian-user-french@lists.debian.org

15 avril 2002
La liste des utilisateurs francophones de Debian (Matière première) debian-user-french@lists.debian.org
Martin Quinson (« Rédacteur en chef ») mquinson@ens-lyon.fr
Thierry Laronde (Partie pour éteindre l'ordinateur) thierry.laronde@polynum.com
Christophe Martin (Partie sur les permissions statiques) C.Martin@ipnl.in2p3.fr
Frédéric Petit (Partie sur la compilation d'un paquet) Frederic.Petit@univ-mlv.fr