Fichiers de config Noyau -- Kernel Linux


Le noyau est la partie du système d'exploitation qui fait l'interaction entre le matériel et les logiciels/utilisateurs.

Pour visualiser la configuration matériel de votre machine, en root, tapez:
lspci
0000:00:00.0 Host bridge: Intel Corp. 440LX/EX - 82443LX/EX Host bridge (rev 03)
0000:00:01.0 PCI bridge: Intel Corp. 440LX/EX - 82443LX/EX AGP bridge (rev 03)
0000:00:07.0 ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 01)
0000:00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
0000:00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01)
0000:00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 01)
0000:00:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
0000:00:0a.0 RAID bus controller: Silicon Image, Inc. (formerly CMD Technology Inc) PCI0680 Ultra ATA-133 Host Controller (rev 02)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc Rage 128 PF/PRO AGP 4x TMDS

ou lshw

Principe

Sous linux, toutes les distributions sont fournis avec un un noyau précompilé. C'est à dire qu'il est fourni sous forme de package.
Une bonne partie du noyau est mis en module, ainsi vous n'avez plus qu'à charger les modules spécifiques à votre matériel pour que ce dernier fonctionne.
Lorsque vous voulez mettre à jour le noyau, il suffit de mettre à jour le package du noyau disponible pour votre distribution.

Les Avantages

Les Inconvénients
FXExemple de noyau précompilé disponible :
apt-cache search kernel-image
[...]
kernel-image-2.4-386 - Linux kernel image for version 2.4 on 386
kernel-image-2.4-586tsc - Linux kernel image for version 2.4 on Pentium-Classic
kernel-image-2.4-686 - Linux kernel image for version 2.4 on PPro/Celeron/PII/PIII/P4
kernel-image-2.4-686-smp - Linux kernel image for version 2.4 on PPro/Celeron/PII/PIII/P4 SMP
kernel-image-2.4-k6 - Linux kernel image for version 2.4 on AMD K6/K6-II/K6-III
[...]
kernel-image-2.6-em64t-p4 - Linux kernel image for version 2.6 on Intel EM64T systems
kernel-image-2.6-em64t-p4-smp - Linux kernel image for version 2.6 on Intel EM64T SMP systems
kernel-image-2.6-k7 - Linux kernel 2.6 image on AMD K7 machines - transition package
kernel-image-2.6-k7-smp - Linux kernel 2.6 image on AMD K7 SMP machines - transition package
kernel-image-2.6.8-11-amd64-generic - Linux kernel image for version 2.6.8 on generic x86_64 systems
kernel-image-2.6.8-11-amd64-k8 - Linux kernel image for version 2.6.8 on AMD64 systems
[...]
kernel-image-2.6.8-11-em64t-p4-smp - Linux kernel image for version 2.6.8 on Intel EM64T SMP systems
kernel-image-2.6.8-2-386 - Linux kernel image for version 2.6.8 on 386.
kernel-image-2.6.8-2-686 - Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4.
kernel-image-2.6.8-2-686-smp - Linux kernel image for version 2.6.8 on PPro/Celeron/PII/PIII/P4 SMP.
kernel-image-2.6.8-2-k7 - Linux kernel image for version 2.6.8 on AMD K7.
[...]


Définition des modules

Techniquement, les modules sont des morceaux de noyau qui peuvent être insérés ou enlevés sans redémarrer l'ordinateur. Cela présente l'avantage d'avoir un noyau de taille raisonnable tout en procurant une grande souplesse.

En pratique, un module est un pilote d'un périphérique ou d'une fonctionnalité. Par exemple, pour faire marcher une carte réseau, on a besoin d'insérer le module conçu pour cette carte réseau.

source: ici

Compiler son noyau soit même

Les Paquets necessaires

libncurses5-dev
make
gcc
cpp


Récupérer les sources du noyau

L'autre solution consiste à télécharger les sources vous-mêmes à partir de http://www.kernel.org et à compiler vous même le noyau.
Pour cela :
lrwxrwxrwx   1 root src        12 2005-08-07 15:56 linux -> linux-2.6.12

NOTES : Dans /usr/src/linux doit TOUJOURS se trouver la dernière version que vous avez compilé mais surtout la version du noyau utilisé par le système. Lorsque vous compilez des programmes qui créait des modules, ces dernières vont directement voir dans /usr/src/linux. Si la version du des sources du noyau présente dans /usr/src/linux et celle du système, le module compilé par le programme ne pourra pas être chargé.

La configuration du noyau

Vous arrivez dans une interface. Cette interface permet de choisir les fonctionnalités/drivers que vous désirez compiler par la suite.  
Je vous conseil de commencer par le haut pour finir par le bas pour ne rien oublier. En effet, si vous oubliez une option, une partie du matériel ou fonctionnalité ne sera pas accessible. Votre linux risque de ne pas démarrez ou vous risquez de perdre des fonctionnalités ( son etc.. ). Vous devez donc sélectionnez les parties du noyau que vous voulez compiler.
En cochant avec une * vous compilez la fonctionnalité/drivers en dur.
En cochant avec un M vous compilez la fonctionnalité/drivers en module.
       N'oubliez pas de compiler les drivers que lspci vous a donné. De plus, vous devez compiler dans "Device Drivers" le support ATA ou SATA ou SCSI ( selon votre matériel et le File System utilisé par votre linux ( par défaut Ext3 ) qui est celui par défaut. Je vous conseil de compiler ces options en dur et non en module (sinon cela necessite un initrd ce qui complique la chose). Si vous ne faites pas ceci, votre ordinateur ne démarrera pas ( vous aurez un kernel panic "Kernel panic: VFS: unable to mount root fs on ..."

N'hésitez pas à vous aider de l'aide pour avoir des informations sur les options du noyau et savoir à quoi ils correspondent.

Quand vous avez terminé, enregistrez et quittez, cela créé un fichier .config. Ce fichier sous forme de texte contient toutes les fonctionnalités et drivers que vous avez sélectionné dans l'interface. Il est conseille de le garder pour une future compilation !

Les Options qu'il faut activer dans le kernel pour

Le support ipv6
activer pour une connexion ADSL avec modem USB
activer pour une souris USB
activer pour carte ATI
activer pour activer les sensors

Lancer la compilation

Pour lancer la compilation :
make bzImage cela compile le noyau
Quand c'est terminé vous devez compiler les modules pour cela :
make modules
( ces derniers se trouvent dans /lib/modules/version_du_noyau )

La compilation est alors terminée, vous devez copier le noyau dans le répertoire /boot pour qu'il soit chargé au démarrage de l'ordinateur. Pour cela :
cp arch/i386/boot/bzImage /boot/vmlinuz-numeronoyau
cp System.map /boot/System.map-numeronoyau


Configuration du loader Lilo

La partie importante, où vous définissez les noyau à charger au démarrage de votre linux est celle-ci :

# Boot up Linux by default.
#
default=2.6.12-sec
prompt
timeout=20

image=/boot/vmlinuz-2.6.12-sec
      label=2.6.12-sec
      read-only

image=/boot/vmlinuz-2.6.12
      label=2.6.12
      read-only


Vous devez rajouter une entrée comme ci-dessous, avec le noyau fraichement compilé.
Enregistrez votre fichier lilo.conf puis tapez : lilo pour créer les entrées.
Il ne reste plus qu'à redémarrez l'ordinateur.

Autres docs sur le noyau : ici et ici

Retour à la page d'accueil