OVH Cloud OVH Cloud

modules.conf

5 réponses
Avatar
gregory.schmitt
Bonjour,

Je possède un vieux modem (port ISA) qui occupe le port série
/dev/ttyS1. J'ai récemment upgradé vers Mandrakelinux 10.1 et son
kernel 2.6, ainsi qu'udev.

J'ai essayé de recompiler un noyau moi-même, chose que je faisais ici
parfaitement bien, mais lorsque je compile les drivers "série" en
module pour pouvoir accéder au modem, ceux-ci ne sont pas
automatiquement installés.

Explication: je lance pppd (en tant qu'utilisateur ou root, ca ne
change rien), et pppd se plaint de ne pas trouver /dev/ttyS1. Bien
évidemment, si j'insère les modules à la main, le port /dev/ttyS1
apparaît alors, mais il me semble que tout accès vers /dev/ttyS1
devrait insérer le module série (8250) automatiquement, non (à
l'instar de pppd et du module ppp_generic)?

J'ai essayé d'insérer la ligne "above ppp_generic 8250" dans
modules.conf, sans résultat. Evidemment, je peux toujours demander au
système d'insérer les modules série au démarrage, mais ce n'est pas ce
que je veux faire.

Comment dois-je alors paramétrer mon modules.conf pour qu'il s'insère
automatiquement ?

5 réponses

Avatar
François Patte
Le Mon, 08 Nov 2004 07:21:08 -0800, Gr?gory SCHMITT a écrit :

Bonjour,

Je possède un vieux modem (port ISA) qui occupe le port série
/dev/ttyS1. J'ai récemment upgradé vers Mandrakelinux 10.1 et son
kernel 2.6, ainsi qu'udev.

J'ai essayé de recompiler un noyau moi-même, chose que je faisais ici
parfaitement bien, mais lorsque je compile les drivers "série" en
module pour pouvoir accéder au modem, ceux-ci ne sont pas
automatiquement installés.

Explication: je lance pppd (en tant qu'utilisateur ou root, ca ne
change rien), et pppd se plaint de ne pas trouver /dev/ttyS1. Bien
évidemment, si j'insère les modules à la main, le port /dev/ttyS1
apparaît alors, mais il me semble que tout accès vers /dev/ttyS1
devrait insérer le module série (8250) automatiquement, non (à
l'instar de pppd et du module ppp_generic)?

J'ai essayé d'insérer la ligne "above ppp_generic 8250" dans
modules.conf, sans résultat. Evidemment, je peux toujours demander au
système d'insérer les modules série au démarrage, mais ce n'est pas ce
que je veux faire.

Comment dois-je alors paramétrer mon modules.conf pour qu'il s'insère
automatiquement ?


Y a pas un Can't locate "char-quelque-chose" dans les log?

--
François Patte
Ecole française d'Extrême-Orient
Université Paris 5

Avatar
Nicolas George
Gr?gory SCHMITT wrote in message
:
J'ai essayé d'insérer la ligne "above ppp_generic 8250" dans
modules.conf


Le noyau 2.6 utilise une nouvelle version de modprobe, qui n'utilise pas
modules.conf.

Avatar
billiob
Bonjour,


Salut
...

Explication: je lance pppd (en tant qu'utilisateur ou root, ca ne
change rien), et pppd se plaint de ne pas trouver /dev/ttyS1. Bien
évidemment, si j'insère les modules à la main, le port /dev/ttyS1
apparaît alors, mais il me semble que tout accès vers /dev/ttyS1
devrait insérer le module série (8250) automatiquement, non (à
l'instar de pppd et du module ppp_generic)?
Ceci est lié à udev, je pense. Il crée, je crois, une entrée dans /dev

lorsqu'un périphérique est branché. Il est notamment très utile pour les
branchements à chaud !
C'est pourquoi quand tu mets "à la main" les modules, le port /dev/ttyS1
est créé. En espèrant t'avoir été utile !
--
@+
billiob
Utilisateur de Linux n°342916
Enregistrez-vous sur http:counter.li.org !!
Remplaçez INVALID par swissinfo pour m'envoyer un mail.

Avatar
omnikron
On Mon, 8 Nov 2004 19:26:05 +0000 (UTC)
Nicolas George <nicolas$ wrote:

| Le noyau 2.6 utilise une nouvelle version de modprobe, qui
| n'utilise pas modules.conf.

Je me trompe peut-etre (mais je ne crois pas... enfin je prefere
rester prudent et ne rien affirmer) mais cela n'a strictement rien a
voir avec le noyau. Chaque distribution fait ce qu'elle veux, par
exemple sous une debian le fichier lu pour charger les modules au
demarrage du system est /etc/modules...

--
omnikron
Avatar
Nicolas George
omnikron wrote in message :
Je me trompe peut-etre (mais je ne crois pas... enfin je prefere
rester prudent et ne rien affirmer) mais cela n'a strictement rien a
voir avec le noyau. Chaque distribution fait ce qu'elle veux, par
exemple sous une debian le fichier lu pour charger les modules au
demarrage du system est /etc/modules...


Tu te trompes. Il est vrai que chaque distribution peut faire un peu ce
qu'elle veut, et prévoir diverses architectures, en particulier pour qu'un
package puisse fournir des bouts de config de modules qui soient pris en
compte, mais ce n'est pas ça qui compte ici.

Ici, il s'agit des outils de chargement des modules eux-mêmes. Jusqu'au
2.4, et vers le milieu de la série des 2.5, c'est modutils <URL:
ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/ > qui fait le boulot.
Depuis le 2.6 (et un petit peu avant), le processus de chargement des noyaux
a été complètement reconçu, et c'est maintenant module-init-tools <URL:
ftp://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/ > qu'il faut
utiliser. Ce dernier a néanmoins l'intelligence de tester la version du
noyau, et d'appeler modutils si nécessaire.

Or si le modprobe de modutils lit sa configuration dans /etc/modules.conf ou
/etc/conf.modules (obsolète), celui de module-init-tools la lit dans
/etc/modprobe.conf. Ce sont les versions par défaut, telles qu'on les trouve
dans les sources originales. Les distributions pourraient les changer, mais
ce serait une mauvaise idée, et elles ne le font pas.

Après, bien sûr, il y a des mécanismes spécifiques aux distributions. Chez
Debian, pour modutils, il y a un script update-modules qui concatène les
fichiers présents dans /etc/modutils/ pour construire /etc/modules.conf.
Mais ce n'est qu'un script annexe.

Attention à ne pas confondre non plus avec /etc/modules, qui lui est
totalement spécifique à telle ou telle distribution (en l'occurence Debian,
je ne sais pas ce que font les autres), et qui ne contient qu'une liste de
modules à charger au boot. En l'occurence, c'est un script
(/etc/init.d/modutils ou /etc/init.d/module-init-tools) qui fait
simplement :

echo 'Loading modules...'
grep '^[^#]' $MODULES_FILE |
while read module args; do
[ "$module" ] || continue
echo " $module"
modprobe $module $args || true
done
echo "All modules loaded."

En particulier, dans ce fichier, il n'est pas question de mettre d'alias ou
de above/below/post-install.