[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Noyau debian ?



En réponse à vivanno <deb@vivanno.com>:

> Pour le fichier j' ai aussi la ligne "CONFIG_BLK_DEV_IDESCSI=m" dans
> mon
> fichier "/boot/config-2.2.20". Par contre ça veux dire quoi la valeur
> "m"!

Houla !

Je crois que lire des docs c'est bien, encore faudrait-il savoir à quoi ça sert 
de recompiler son noyau ...

Car sans vouloir me montrer méprisant/méchant/orgueilleux, je trouve étonnant 
de voir quelqu'un qui prétend avoir un "serveur de mail" alors qu'il ne sait 
pas à quoi sert l'option "M" dans un menuconfig ("un quoi ?").

Alors on recommence un petit cours à la con sur ce que c'est qu'un noyau (y a 
pas grand chose à faire à mon boulot le 26 décembre :o)). Pour commencer, il 
faut savoir que le but d'un OS (Operating System) est de créer une interface 
pour exécuter des programmes, cette interface assurant la gestion de la 
mémoire, de l'ordonancement des processus, de la gestion d'un système de 
fichiers et de l'exploitation des périphériques. Ce qui fait l'ultime 
différence entre deux OS, c'est leur organisation : sous Windows, on a une 
organisation à peu près par couches, sous Linux on a une organisation 
monolithique (le process init qui lance d'autres process ...). En particulier, 
le "programme" de base de l'OS c'est le noyau. Sous windows, ça sert à rien de 
remplacer le noyau au cours de la vie de l'OS (sauf quand il est planté ou 
qu'on veut refaire l'IHM ...) car les évolutions vont avoir lieu sur des 
couches supérieures. Sous Linux, le kernel joue un rôle nettement plus 
important, en particulier parce que l'OS est adaptable à plusieurs matériels 
différents. 

Configurer le noyau sous Linux consiste à le rendre le plus proche possible de 
sa machine afin que le matériel soit bien exploité. La seule difficulté 
consiste à déterminer "ce dont on n'a pas besoin" pour éviter d'avoir un noyau 
trop gros impossible à charger au démarrage, et d'éviter les incompatibilités 
d'options. Lors de la définition de son noyau, on définit deux grandes 
catégories : la définition du kernel et la définition des modules. Cela se fait 
lors de la phase "make config/make menuconfig/make xconfig" de la compilation 
du noyau (personnellement je recommande le menuconfig car il fonctionne en 
console et qu'il est plus fonctionnel que le simple make config) : lors des 
différent dialogues, il faut choisir pour chaque option si ce qui y est associé 
doit être inclus dans le noyau (Y) ou non (N) ou compilé sous forme de module 
chargeable (M). Dans certains cas, le choix M n'est pas possible, dans d'autres 
il l'est mais il est fortement recommandé de choisir plutôt Y (exemple : 
gestion de ext2 ou ext3 ...). Pour savoir s'il faut choisir Y ou M, il faut 
voir l'utilité de l'option : si vous comptez utiliser en permanence un 
périphérique (ex : carte ethernet, carte son, ou drivers PCMCIA sur un 
portable ...), alors autant choisir "Y". Dans le cas de périphériques plus 
rarement utilisés (exemple : support USB si on n'a qu'une WebCam qu'on utilise 
trois fois dans l'année), alors il vaut mieux choisir l'option "M". En cas de 
doute sur l'utilité d'une option, il ne faut pas hésiter à lire la doc associée 
(help dans menuconfig ou dans xconfig ...).

Une fois les choix réalisés, je conseille fortement de sauver la configuration 
dans un fichier à part, puis il faut procéder à la compilation 
(personnellement, je passe par les étapes traditionnelles "make dep && make 
clean && make bzImage && make modules && make modules_install && make install 
&& reboot", mais une des forces de Debian est de proposer un autre mode de 
compilation orienté "packages" que je n'ai pas encore eu le loisir de découvrir 
suffisamment pour l'utiliser ...). Ce qu'il faut vérifier avant de relancer sa 
machine :
- les liens marqués dans /etc/lilo.conf correspondant à vmlinuz sont bien liés 
à la version du noyau qui vient d'être compilé ;
- lilo (ou équivalent) a bien été exécuté ;
- le répertoire /lib/modules/2.X.Y/ correspondant au nouveau noyau existe et 
n'est pas vide.

Alors à ce moment on peut se permettre de rebooter et on croise les doigts pour 
ne pas avoir de kernel_panic (cela dit, je n'en ai pas vu depuis pas mal 
d'années ...). Une fois que le noyau est chargé (exemple : après un reboot), 
alors le chargement des modules selon les périphériques est défini par le 
fichier /etc/modules.conf : on y trouve des trucs du genre "char-major-18 
xxxxx.o", ce qui signifie que lorsqu'un programme voudra accéder à un device 
dont le numéro majeur (ls -l /dev/xxx) est 18, alors il chargera le module 
xxxxx.o (sauf s'il est inclus dans le noyau). Le programme "lsmod" permet de 
savoir ceux qui sont déja chargés.

Enfin, à la question "faut-il changer de noyau ?", il faut savoir que le 2.2.20 
présente en gros les lacunes suivantes :
- Pas de support "natif" de l'USB (pas taper, pas taper, j'exagère un peu, mais 
c'est pas loin, l'USB est plus simple sous les 2.4)
- Pas de support du sytème de fichier ext3 (il me semble)
- Pas de DRI et d'accélération AGP sous XFree 4.X
- Tout un tas d'autre trucs (genre des trucs pour fair du beau firewalling) ...

Après, les changements entre la version 2.4.19 et la 2.4.20 par exemple sont 
mineurs :
- Amélioration de drivers
- Ajout de nouveaux matériels
- Résolutions quelques bugs

Bref c'est pas forcément du méga-probant ...

> D'autre j'ai la ligne "CONFIG_CD_NO_IDESCSI=y" qui elle théoriquement
> signifie que j'ai le support IDE-SCSI d'actif! ;-)

Ben non justement :o) Cette option n'a rien à voir avec de l'émulation de SCSI 
sur un CD-ROM (ou autre) IDE : cette option permet d'accéder à des drivers 
d'anciens lecteurs de CD-ROM, du temps où ATAPI n'était pas des masses répandu. 
En gros, cette option t'en a normallement rien à faire.

Pour ta config, si tu veux l'émulation IDE/SCSI il te faut les options 
suivantes :
dans le menu "Block Devices" 
 - activer l'option "SCSI emulation support" 
dans le menu "SCSI Support"
 - activer l'option "SCSI support" 
 - activer l'option "include SCSI CD-ROM drivers" 
 - activer l'option "SCSI generic support" 

Bon, j'ai l'impression d'avoir encore raconté comment s'est fait le monde, je 
dois être le n°3845 à avoir décrit "Le noyau pour les nuls", et il se peut même 
qu'il y ait quelques erreurs dans mon speech. 

On va dire que c'était mon acdeau de noël :o)

Olivier



Reply to: