Re: pb chargements modules

Top Page

Reply to this message
Author: Olivier_Allard-Jacquin
Date:  
To: guilde
Subject: Re: pb chargements modules


> >    lorsque je tape ft.o  j'obtiens des erreurs du type ft.o:unresolved
> >    symbol scsi_unregister_module ...
> >    Mais si je charge les modules scsi_mod et sd_mod avant de charger ft
> >    alors ca fonctionne.

>
> C'est un problème de dépendance entre les modules : ft dépend de
> scsi_mod et de sd_mod.
>
> Pour gérer ça, il faut charger le module ft avec la commande modprobe et
> non insmod. modprobe se charge de charger aussi les dépendances. Il faut
> aussi que le fichier modules.dep soit à jour. Il est normalement mis à
> jour automatiquement par la commande depmod lancée au boot.
>
> Cf. man modprobe depmod.


     Il faut en effet configurer "modprobe" afin de lui indiquer quel sont
les modules à lancer avant de
charger le "ft". Pour cela, il faut:
     - modifier le fichier "/etc/modules.conf" (c'est le nom du fichier
sous Mandrake. Sous Debian, c'est
peut-être "/etc/modules.dep" comme le dit Edgar).
L'instruction à utiliser est:
               pre-install <module> <opération>
où "pre-install" indique qu'il faut éxecuter la commande "<opération>"
avant le chargement de "<module>".
Dans ton cas, il faut charger les modules "scsi_mod" et "sd_mod". Pour
cela, on va utiliser la commande
"insmod". On va donc écrire:
               pre-install ft insmod scsi_mod; insmod sd_mod
(la commande "insmod est lancée 2 fois; une fois pour charger chaque
module)


     - lancer la commande "depmode -a", afin que les modifications soient
prises en compte. Si tu
l'oublies, toutes les modifications de ce fichier n'auront aucun effet
jusqu'au prochain reboot de ta machine
("depmode -a" est en effet lancé à chaque démarrage ...).


     - tester la configuration, en lancant "modeprobe ft". Un petit "tail
-f /var/log/messages" dans une
2nd xterm est bien pratique, afin de savoir ce que fait le noyau ...


     2 remarques:
- Il peut être judicieu de rajouter les lignes suivantes au
/etc/modules.conf, afin de décharger "ft" AVANT le
déchargement de "scsi_mod" et "sd_mod" (ce qui intervient après xx minutes
de non utilisation du module):
     pre-remove scsi_mod rmmod ft
     pre-remove sd_mod rmmod ft
(non testé ...)


- ATTENTION de ne pas utiliser "modeprobe" au lieu de "insmod" dans
"/etc/modules.conf", a moins de savoir
EXACTEMENT ce que tu fais (ou si tu dois passer des options particulière au
module). En effet, si par exemple
tu écris par erreur quelque chose come ceci:

     pre-install module1 modeprobe module2
     pre-install module2 modeprobe module1


alors pour charger "module1", le kernel va tenter de charger "module2", qui
demandera de charger "module1"
lui-même demandant "module2", etc .... Le kernel partira dans une boucle
infinie ....C'est un truc qui m'est
arrivé, et je n'ai pas pu arréter la machine si ce n'est avec un "reset"
materiel ...

                                   Olivier