technique

Page principale

Répondre à ce message
Auteur: guilde
Date:  
À: guilde
Sujet: technique
Stéphane writes:
>
> En copiant un nouveau module (celui de ma carte son, "sblive") dans
> /lib/modules/2.2.5/misc/ , puis en recompilant mon noyau avec dans
> xconfig, l'option "modules" dans "sound", et en faisant un make dep
> clean ....modules_install , mon module "sblive" devrait-il être intégré
> au nouveau noyau ?


Le module n'est jamais integre au noyau, sinon ce n'est pas un
module. L'interet des modules est qu'elle peut etre compile
separement, a condition d'utiliser les memes inclus de la source du
noyau. Si le module est distribue avec la source du noyau (et est
compile en meme temps ?), c'est automatique, si non il faut faire
attention que les bons inclus soient utilises (en mettant par ex.
-I/usr/src/linux-xxx/include dans l'option de compilation).

> Devrais-je le voir ensuite par make xconfig ?


Non, il suffit que le module compile soit mis au bon endroit (pour que
modprobe puisse le retrouver) et c'est make modules_install qui est
charge de cela.

> Si j'ai bien compris, modprobe crée ou donne une info temporaire au
> système.Si on relance sa machine, il faut relancer modprobe sb io=... ?


Pas du tout: modprobe *insere* le module dans le noyau. Normalement,
on ne lance pas modprobe a la main mais via 2 mecanisme:

- lancement au boot par un script (/etc/init.d/modutils chez debian)
- lancement a la demande par kerneld (ou kmod pour un noyau 2.2.x). Si
par exemple on tente de monte un systeme de fichiers windows, qui a
besoin du module vfat, le noyau s'apercoit que ce module n'est pas
installer, il contacte kerneld (ou kmod) pour lui demander d'installer
ce module. Ce dernier lance modprobe pour le faire

> Donc, il vaut mieux inscrire ces modules directement dans conf.modules ?
> Je sais que c'est le cas de la carte son et SCSI (même si ça marche pas
> encore chez moi ;o) mais est-ce le cas pour tous les modules ?
>
> A quel moment est chargé "conf.modules" ? j'imagine au boot, donc il
> faut relancer sa machine à chaque modif du fichier ? Se reloguer ne
> suffit pas ?


Le fichier conf.modules n'est qu'un fichier d'information permettant
modprobe de faire son travail de facon intelligente. Par exemple, si
on met

option sb io=xxx

dans ce fichier, modprobe sait qu'il faut charger le module sb avec
l'option io=xxx (donc lancer modprobe sb equivaut a lancer modprobe sb
io=xxx). C'est absolument necessaire si modprobe est lancee de facon
automatique par kerneld, car kerneld ne peut pas savoir quelle option
a passer a modprobe.

Une autre utilisation crucial de conf.modules est le mecanisme
d'alias. Le support son ne s'apelle pas sb mais char-major-14 (je
crois) car sb est le module specifique a la carte soundbalaster. Donc
quand le noyau a besion du support son, il demande le chargement du
module (hypothetique) char-major-14 et c'est grace a une ligne

alias char-major-14 xxx

dans conf.modules que modprobe sait quel module il doit charger.

-- 
PHAM Dinh Tuan                         | e-mail: Dinh-Tuan.Pham@???
Laboratoire de Modelisation et Calcul  | Tel: +33 4 76 51 44 23
BP 53, 38041 Grenoble cedex (France)   | Fax: +33 4 76 63 12 63
-----------------------------------------------------------------------