Trucs:Alléger son noyau en utilisant les modules

De Lea Linux
Révision datée du 20 janvier 2009 à 20:08 par Romainhk (discussion | contributions) (passage en tableau, ortho)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche
Fred<frederic point bonnaud chez la poste point net>

Cette manipulation demande à ce que vous connaissiez bien votre matériel (carte réseau, son, disque dur, carte SCSI, etc.), le but de cette manœuvre étant de passer les principaux drivers en modules pour alléger votre noyau (le kernel) et aussi le rendre plus rapide. Malheureusement vous ne pouvez pas TOUT passer en module, autrement vous ne pourrez même pas booter votre Linux...

Tout d'abord nous allons "optimiser" la compilation du kernel et des modules. Cela va dépendre de la mémoire que vous avez sur votre machine. Regardons ce petit tableau :

16 Mo 3
24 Mo 4
32 Mo 5
40 Mo 6
48 Mo 7
56 Mo 8
64 Mo 9
80 Mo 11
96 Mo 13
112 Mo 15
118 Mo 17

Nous allons permettre la compilation en parallèle de plusieurs modules à la fois. N'augmentez pas le chiffre de plus de ce qui est dans ce tableau, sinon vous ralentirez la compilation au lieu de l'optimiser. Pour ce faire, aller dans le répertoire /usr/src/linux, éditez le fichier Makefile, cherchez la ligne " MAKE=make"et faites ce changement :

MAKE=make -j N

avec N le nombre du tableau qui correspond à votre config mémoire.
Si vous avez plus de 118Mo, le calcul est simple, vous trouvez N= (mémoire/8) +1.

Attention, cette manip est pour une compilation sous la console (pas sous X !) et va vous bouffer 100% des ressources pour la compilation (ce qui n'est pas grave si vous ne désirez rien faire d'autre en même temps) ! De même si votre système swappe comme un fou, stoppez la compilation par Ctrl-C et baissez le nombre N ! De même si votre processeur est overclocké ça risque de planter !

Bon maintenant passons à ce qui peut être compilé en modules. Déjà tout ce qui permet d'accéder au /(racine) ne doit pas être compilé en module sous peine de ne plus pouvoir booter le systême, c'est à dire que si votre racine est sur un disque IDE, il ne faut pas mettre le support IDE en module, et de même si il est sur un disque SCSI, le SCSI ne dois pas être passé en module. Pour la même raison, le système de fichiers "ext2fs" (ou ext3fs, etc.) ne doit pas être non plus compilé en module. Si votre partition racine est montée par le réseau et NFS (cas des stations diskless par exemple), ne mettez pas le support de la carte réseau et le support NFS en modules.

En effet, les modules sont chargés APRES le noyau, et si les modules IDE sont sur un disque IDE, il faut d'abord les charger avant de pouvoir accéder au disque, mais pour les charger, il faut avoir accès au disque et donc les avoir chargés avant... vous voyez le cercle vicieux ?

Tout le reste peut être compilé en modules, c'est à dire carte son, carte réseau (sauf si la racine est en NFS, voir ci-dessus), port parallèle, ppp support, slip support, CD-ROM, etc. Si vous avez du matériel PnP et que vous voulez utiliser le support PnP, passez également tous les drivers pour ces cartes en modules et configurez votre PNP (voir [../hardware/pnp.php3 rubrique PnP]).

Je vous conseille aussi pour plus de facilité d'inclure le chargement auto des modules par le kernel (kerneld Y), le support des modules bien sûr.

Pour plus de détails sur la compilation du noyau, voyez la [../kernel/kernel.php3 rubrique compilation du noyau].

<

Après la compilation et l'installation, éditez le fichier /etc/conf.modules et passez les options et alias de vos modules (voir aussi dans la [../hardware/pnp.php3 rubrique PnP], cela y est expliqué).