Content-type: text/html
Manpage of MODULES.CONF
MODULES.CONF
Section: File Formats (5)
Updated: 07 Décembre 1999
Index
Return to Main Contents
NOM
modules.conf - fichier de configuration des modules du noyau Linux
DESCRIPTION
Le comportement de
modprobe(8)
(et
depmod(8))
peut être modifié par le fichier de configuration (optionnel)
/etc/modules.conf.
Le fichier de configuration est constitué d'un ensemble de lignes.
Toutes les lignes vides et tous les caractères d'une ligne après un « # » sont ignorés.
Un « \ » en fin de ligne est ignoré ainsi que le saut de ligne suivant,
la ligne se prolonge donc à la suivante.
Les lignes restantes doivent respecter les formats suivant :
[add] above module liste_de_modules
alias nom_alias résultat
[add] below module liste_de_modules
define VARIABLE MOT
depfile=UN_CHEMIN
else
elseif EXPRESSION
endif
if EXPRESSION
include CHEMIN_VERS_UN_FICHIER_DE_CONFIGURATION
insmod_opt=OPTIONS_GÉNÉRIQUES_POUR_INSMOD
install module commande ...
keep
[add] options module OPTIONS_SPÉCIFIQUES_AU_MODULE
path=UN_CHEMIN
path[ÉTIQUETTE]=UN_CHEMIN
generic_stringfile=UN_CHEMIN
pcimapfile=UN_CHEMIN
isapnpmapfile=UN_CHEMIN
usbmapfile=UN_CHEMIN
parportmapfile=UN_CHEMIN
ieee1394mapfile=UN_CHEMIN
[add] probe nom liste_de_modules
[add] probeall nom liste_de_modules
prune nom_de_fichier
post-install module commande ...
post-remove module commande ...
pre-install module commande ...
pre-remove module commande ...
remove module commande ...
persistdir nom_de_répertoire
Tous les arguments d'une directive sont évalués en prenant en compte
les méta-caractères du shell,
ce qui signifie que les *, ? et les commandes entre « ` » par exemple
peuvent être utilisés.
path[misc]=/lib/modules/1.1.5?/local
path[net]=/lib/modules/`uname -r`/net
DANGER :
Appliquer l'expansion du shell à une entrée utilisateur comporte
un risque majeur pour la sécurité. Le code modutils n'applique cette
expansion que pour les données de confiance, c'est à dire uniquement
pour les données du fichier de configuration. Et même cela présuppose qu'un
utilisateur ne peut pas lancer
modprobe
en root en fournissant son propre fichier
de configuration. Les programmes (y compris le noyau) qui appellent des
programmes modutils en root avec des données utilisateur doivent fournir
exactement un paramètre utilisateur et doivent activer le « safe mode »
à moins de créer des trous de sécurité.
Voir
modprobe(8)
pour plus de détails sur le « safe mode ».
Les directives peuvent être répétées plusieurs fois.
Notez que certaines directives peuvent avoir un préfixe optionnel :
add.
Quand ce préfixe est utilisé, la nouvelle
liste_de_modules
sera
ajoutée
à la liste précédente au lieu de la replacer.
SÉMANTIQUE
UN_CHEMIN
est un chemin complet vers la cible.
Il est possible d'utiliser des méta-caractères dans
UN_CHEMIN,
y compris le résultat d'une commande comme
`uname -r`
ou
`kernelversion`.
Ces deux commandes sont comprises en interne par les utilitaires modutils comme,
respectivement, le numéro de version du noyau et la version du noyau
(par exemple : 2.4.10 et 2.4).
MOT
est une séquence de caractères sans espace. Si un caractère ', " ou ` est trouvé
dans la chaîne, alors tous les caractères jusqu'au ', " ou ` correspondant
sont ajoutés à la chaîne, y compris les espaces.
Tout
MOT
subira une expansion respectant les méta-caractères du shell.
Si le résultat après expansion donne plus d'un mot, alors seulement le premier
mot sera conservé.
EXPRESSION peut être :
- MOT compare_op MOT
-
où compare_op est ==, !=, <, <=, >= ou >.
Les MOTs sont comparés en tant que chaîne de caractères.
- -n MOT compare_op MOT
-
où compare_op est ==, !=, <, <=, >= ou >.
Les MOTs sont comparés en tant que valeurs numériques.
- MOT
-
Si l'expansion de MOT échoue, ou si le résultat est "0", "false" ou "" (vide)
alors le résultat prend la valeur
FAUX.
Sinon, le résultat prend la valeur
VRAI.
- -f NOM_DE_FICHIER
-
Teste si le fichier NOM_DE_FICHIER existe.
- -k
-
Teste si « autoclean » est activé, c'est à dire demandé par le noyau.
- ! EXPRESSION
-
La négation d'une expression est aussi une expression.
SYNTAXE
Ci-dessous la description des directives valables.
- define VARIABLE MOT
-
Fait un
putenv(VARIABLE=MOT).
Les variables d'environnement peuvent être créées et modifiées par cette directive.
Elles peuvent donc être utilisées par toutes les commandes exécutées dans
la session courante.
- depfile=UN_CHEMIN
-
Ceci est le chemin du fichier de dépendances qui sera créé par
depmod
et utilisé par
modprobe
pour trouver les modules et ceux dont ils dépendent.
Normalement la valeur par défaut devrait être utilisée, voir ci-dessous.
- if EXPRESSION
-
Si l'expression est évaluée à
VRAI
alors toutes les directives jusqu'au
else,
elseif
ou
endif
correspondant sont exécutées, sinon, elles sont ignorées.
Les directives
if
peuvent être imbriquées jusqu'à 20 fois.
Note : évitez d'avoir des directives
path
exécutées de manière conditionnelle.
modprobe
a suffisamment de propriétés utiles pour qu'un chemin
exécuté conditionnellement n'apporte rien d'autre que de la confusion.
- else
-
Si le
if
ou le
elseif
précédant correspondant a été évalué à
FAUX
alors les directives incluses entre le
else
et son
endif
correspondant seront évaluées.
- elseif EXPRESSION
-
Si le
if
ou le
elseif
précédant correspondant a été évalué à
FAUX
et si l'expression de cette directive est évaluée à
VRAI
alors les directives jusqu'au
elseif,
else
ou
endif
correspondant seront évaluées.
- endif
-
Cette directive termine une chaîne de directive(s)
if,
elseif
ou
else
contrôlant l'évaluation des directives du fichier de configuration.
if EXPRESSION
n'importe quelles directives
elseif EXPRESSION
n'importe quelles directives
else
n'importe quelles directives
endif
Les directives
else
et
elseif
sont optionnelles.
- include CHEMIN_VERS_UN_FICHIER_DE_CONFIGURATION
-
Prendre en compte des plates-formes ou des configurations
différentes avec un seul fichier peut être assez complexe.
En utilisant la directive
include,
exécutée conditionnellement par des directives
if,
cela devient plus facile à gérer.
- insmod_opt=OPTIONS_GÉNÉRIQUES_POUR_INSMOD
-
Si insmod a besoin d'options spéciales, indiquées nulle part ailleurs,
elles peuvent être ajoutées par cette option, et seront utilisées
pour toutes les invocations d'insmod.
Les options par défaut d'insmod n'ont pas normalement besoin d'être modifiées,
sauf pour gérer une situation très particulière.
- keep
-
Si ce mot est trouvé sur une ligne
avant
toute ligne contenant la directive
path,
alors le chemin par défaut est sauvegardé et donc ajouté au nouveau chemin.
Sinon le comportement normal est que le chemin par défaut est
remplacé
par le chemin donné.
- path=UN_CHEMIN
-
- path[ÉTIQUETTE]=UN_CHEMIN
-
L'argument
UN_CHEMIN
indique un chemin supplémentaire de recherche des modules.
La directive
path
supporte une étiquette optionnelle.
Cela indique le type de modules dans le répertoire donné
et permet des réponses automatiques de
modprobe.
L'étiquette est ajoutée au mot clé « path » entre crochets.
Si l'étiquette est absente, « misc » est utilisé.
Une étiquette très utile est
boot,
qui peut être utilisé pour tous les répertoires contenant
des modules qui doivent être chargés lors du démarrage.
Notez que vous devez spécifier la directive
keep
pour éviter que les directives
path
n'écrasent les chemins par défaut.
- generic_stringfile=UN_CHEMIN
-
Ceci est le chemin vers le fichier generic_string qui sera créé par
depmod
et utilisé par les scripts d'installation qui ont besoin d'informations
sur les modules.
Normalement la valeur par défaut doit être utilisée, voir
below.
- pcimapfile=UN_CHEMIN
-
Ceci est le chemin vers le fichier pcimap qui sera créé par
depmod
et utilisé par les scripts d'installation pour trouver le module
qui supporte un périphérique PCI.
Normalement la valeur par défaut doit être utilisée, voir
below.
- isapnpmapfile=UN_CHEMIN
-
Ceci est le chemin vers le fichier isapnpmap qui sera créé par
depmod
et utilisé par les scripts d'installation pour trouver le module
qui supporte un périphérique ISA PNP (NDT : Plug aNd Play).
Normalement la valeur par défaut doit être utilisée, voir
below.
- usbmapfile=UN_CHEMIN
-
Ceci est le chemin vers le fichier usbmap qui sera créé par
depmod
et utilisé par les scripts d'installation pour trouver le module
qui supporte un périphérique USB.
Normalement la valeur par défaut doit être utilisée, voir
below.
- parportmapfile=UN_CHEMIN
-
Ceci est le chemin vers le fichier parportmap qui sera créé par
depmod
et utilisé par les scripts d'installation pour trouver le module
qui supporte un périphérique parport.
Normalement la valeur par défaut doit être utilisée, voir
below.
- ieee1394mapfile=UN_CHEMIN
-
Ceci est le chemin vers le fichier ieee1394mapfile qui sera créé par
depmod
et utilisé par les scripts d'installation pour trouver le module
qui supporte un périphérique ieee1394mapfile.
Normalement la valeur par défaut doit être utilisée, voir
below.
- alias nom_alias résultat
-
La directive
alias
peut être utilisée pour donner un autre nom aux modules.
Avec une ligne dans
/etc/modules.conf
qui ressemble à ceci :
alias iso9660 isofs
il est possible d'écrire
modprobe iso9660
même s'il n'y a pas de fichier objet pour un tel module.
Notez que la ligne :
alias un_module off
fera en sorte que
modprobe
ignore une demande pour charger ce module.
Un autre alias spécial est :
alias un_module null
qui fera que une requête pour
un_module
réussira toujours, mais
aucun module ne sera vraiment chargé.
Ceci peut être utilisé comme une base pour les piles créées par les directives
above
et
below.
Il est possible d'avoir un grand nombre de niveaux d'alias,
et tous les alias sont résolus récursivement jusqu'à trouver le module
physique voulu. Il y a une limite arbitraire de 1 000 sur la profondeur
des alias pour détecter les boucles comme :
alias a b
alias b a
Si le résultat final d'une recherche dans les
alias
ne correspond pas au nom d'un module, alors
modprobe
applique les expansions
probe et probeall au résultat. Si ces expansions ne réussissent pas
alors le module n'est pas trouvé. Cette procédure donne des résultats sensés.
alias /dev/sg* /dev/sg
probeall /dev/sg scsi-hosts sg
Il est possible qu'un alias fasse correspondre le module A au module B
et que le module A existe en même temps mais cette construction est
ambiguë et
doit
être
évitée.
Pour des raisons historiques, le noyau a un module appelé « sound.o » mais
les développeurs veulent aussi un alias « sound » pointant vers le module
utilisé par la carte son de l'utilisateur, par exemple « alias sound sb ».
Pour essayer de supporter ceci tout en maintenant le comportement défini
par les alias,
modprobe
n'applique pas la résolution des alias pour un
nom obtenu par
modules.dep.
Il n'est pas garanti que cela donne le bon
résultat dans toutes les combinaisons d'alias et de nom réels, vous devez
toujours éviter d'utiliser un alias avec le même nom qu'un module réel.
- [add] probe nom liste_de_modules
-
- [add] probeall nom liste_de_modules
-
Ces directives ne peuvent être utilisées que quand
nom
est le nom d'un module demandé sur la ligne de commande de
modprobe.
Son effet est que quand une requête pour le module
nom
est faite, les modules indiqués dans
liste_de_modules
seront essayés, dans
l'ordre donné. La différence entre les directives est que
probe
continuera jusqu'au premier succès, alors que
probeall
continuera jusqu'à la fin de la liste.
La valeur de retour reflète le fait qu'au moins un module a été chargé correctement
ou pas.
Le préfixe
add
optionnel ajoute la nouvelle liste à une liste précédente au lieu de la remplacer.
- prune nom_de_fichier
-
Le répertoire racine des modules du noyau contient des fichiers
qui ne sont pas des modules, comme par exemple
modules.dep,
modules.generic_string,
modules.pcimap,
modules.isapnpmap,
modules.usbmap,
modules.parportmap,
modules.ieee1394map,
le lien symbolique vers le répertoire source du noyau
et tout autre fichier que le processus d'installation veut conservé d'une
compilation du noyau.
Pour éviter que
depmod
lance des alertes disant « not an ELF file », ces fichiers peuvent apparaître dans
la liste
prune.
depmod
a une liste
prune
prédéfinie qui ne peut pas être enlevée car
elle contient des fichiers qui existeront pour tout compilation du noyau.
Si vous ajoutez vos propres fichiers au répertoire racine des modules,
ajoutez une directive
prune
pour chaque
nom_de_fichier.
Note :
La liste
prune
est utilisée uniquement lors de la recherche dans
le répertoire racine d'un
path,
et seulement si le répertoire contient au moins un sous-répertoire
dont le nom apparaît dans la liste des sous-répertoires standards,
c'est à dire que ce chemin est un répertoire racine provenant d'une
compilation du noyau.
La liste
prune
n'a pas d'effet sur les sous-répertoires d'un
path.
- [add] options [-k] module [OPTIONS_SPÉCIFIQUES_AU_MODULE]
-
Tous les noms de modules, y compris les alias, peuvent avoir leurs propres directives
options.
Les options indiquées pour un alias ont une priorité supérieure
aux options indiquées pour des noms plus « basiques ».
Cette règle est utilisée pour résoudre les conflits entre les directives
options.
Les options données sur la ligne de commande ont la priorité la plus élevée.
Si il y a
-k
devant le nom de module, alors le module ne sera pas en mode
« autoclean » même si
modprobe
a été appelé avec l'option
-k
(autoclean).
Le préfixe
add
optionnel ajoute la nouvelle liste à la précédente au lieu de la remplacer.
Si le résultat d'un
alias
n'est pas un module réel alors toutes les
options
qui ont été ajoutées par la chaîne d'
alias
sont effacées avant l'appel à probe[all].
Si une des
OPTIONS_SPÉCIFIQUES_AU_MODULE
contient des caractères spéciaux pour le shell alors
l'option doit être mise entre '"..."'.
Les '' délimitent l'option dans
modules.conf,
les "" délimitent
l'option quand elle est passée au shell.
Par exemple :
abc='"def,ghi jkl (xyz)"'
- [add] above module liste_de_modules
-
Cette directive permet à un module de placer
un ensemble de modules au-dessus de lui dans une pile de modules,
comme on le voit dans la sortie de la commande
lsmod(8).
La directive
above
est plus utile dans des circonstances où la liste des dépendances
est plus complexe que ce qui peut être décrit dans le fichier de dépendances
modules.dep.
C'est un cas d'optimisation des directives
post-install
et
pre-remove.
Notez qu'un échec pour installer le module n'influencera pas le
code de retour de
modprobe.
Le préfixe
add
optionnel ajoute la nouvelle liste à la précédente au lieu de la remplacer.
- [add] below module liste_de_modules
-
Cette directive permet à un module de placer un ensemble
de modules au-dessous de lui-même dans une pile de modules,
comme on le voit dans la sortie de la commande
lsmod(8).
La directive
below
est utile dans des circonstances où la liste des dépendances
est plus complexe que ce qui peut être décrit dans le fichier de dépendances
modules.dep.
C'est un cas d'optimisation des directives
post-install
et
pre-remove.
Notez qu'un échec pour installer le module n'influencera pas le
code de retour de
modprobe.
Le préfixe
add
optionnel ajoute la nouvelle liste à la précédente au lieu de la remplacer.
Les directives suivantes sont utiles pour exécuter des commandes particulières
au chargement et au déchargement d'un module. Même les alias de modules peuvent
avoir leurs propres commandes, qui seront exécutées dans le bon ordre avec les
directives pour le nom réel du module.
- pre-install module commande
-
Exécute
commande
avant d'installer le module indiqué.
Voir la directive
below
également.
- install module commande
-
Exécute
commande
au lieu de
insmod
par défaut pour installer le module indiqué.
- post-install module commande
-
Exécute
commande
après avoir installé le module indiqué.
Voir la directive
above
également.
- pre-remove module commande
-
Exécute
commande
avant de désinstaller le module indiqué.
Voir la directive
above
également.
- remove module commande
-
Exécute
commande
au lieu du
rmmod
par défaut pour désinstaller le module indiqué.
- post-remove module commande
-
Exécute
commande
après avoir désinstallé le module indiqué.
Voir la directive
below
également.
- persistdir=nom_de_répertoire
-
Quand
rmmod
supprime un module qui contient des paramètres persistants, il stocke
les paramètres éventuellement modifiés sous le répertoire
nom_de_répertoire.
Quand
modprobe
charge un module qui contient des paramètres persistant, il regarde
dans le répertoire
nom_de_répertoire
pour d'éventuelles valeurs précédentes.
Vous devez donner à
persistdir
un nom de répertoire qui est accessible en lecture quand les modules sont chargés et
accessible en écriture quand les modules sont déchargés. La valeur par défaut est
/var/lib/modules/persist.
Beaucoup de distributions Linux chargent leurs modules avant de monter
les systèmes de fichiers, ce qui pose des problèmes pour les données persistantes.
Si
/var
est dans une partition séparée et est montée après que les modules sont chargés
alors
insmod
ne peut pas lire les données persistantes.
Vous avez deux possibilités quand
/var
est une partition séparée :
-
1) Faire pointer
persistdir
vers un répertoire dans la partition racine, disons
/lib/modules/persist.
Ce qui impose que la partition racine soit accessible en écriture quand
rmmod
est lancé.
-
2) Charger tous les modules liés au support des systèmes de fichier d'abord,
puis monter la partition
/var
et enfin le reste des modules.
Ce qui impose que les modules supportant les systèmes de fichier
n'ont pas de données persistantes.
CONFIGURATION PAR DÉFAUT
Si le fichier de configuration
/etc/modules.conf
n'existe pas, ou si une directive n'est pas redéfinie,
les valeurs par défaut suivantes sont utilisées :
depfile=/lib/modules/`uname -r`/modules.dep
generic_stringfile=/lib/modules/`uname -r`/modules.generic_string
pcimapfile=/lib/modules/`uname -r`/modules.pcimap
isapnpmapfile=/lib/modules/`uname -r`/modules.isapnpmap
usbmapfile=/lib/modules/`uname -r`/modules.usbmap
parportmapfile=/lib/modules/`uname -r`/modules.parportmap
ieee1394mapfile=/lib/modules/`uname -r`/modules.ieee1394map
path[boot]=/lib/modules/boot
path[toplevel]=/lib/modules/`uname -r`
path[toplevel]=/lib/modules/`kernelversion`
path[toplevel]=/lib/modules/default
path[toplevel]=/lib/modules
persistdir=/var/lib/modules/persist
Il y a aussi un ensemble de directives
alias
et
options
par défaut.
Cet ensemble évoluant sans cesse, il n'est pas listé ici.
L'ensemble par défaut utilisé peut être obtenu par la commande
modprobe -c
avec un fichier
/etc/modules.conf
vide.
Toutes les directives
options
indiquent les options nécessaires à un module,
comme par exemple dans :
modprobe de620 bnc=1
Ces options seront remplacées par les options fournies
dans le fichier
/etc/modules.conf
et sur la ligne de commande de
modprobe.
Souvenez-vous qu'il est possible d'avoir
des directives
options
aussi bien pour les alias de modules que pour les noms réels de module.
Ceci est utile par exemple pour le module dummy :
alias dummy0 dummy
options dummy0 -o dummy0
FICHIER CONFIGURATION ALTERNATIF
Pour des raisons historiques, si
/etc/modules.conf
n'existe pas, modutils utilisera le fichier
/etc/conf.modules.
Cependant, l'utilisation de ce nom historique est dépréciée et il devrait
être remplacé par
/etc/modules.conf.
Cette version de modutils envoie un message d'alerte si
/etc/conf.modules
existe, les prochaines versions donnerons un message d'erreur et refuserons
de charger les modules.
VOIR AUSSI
depmod(8), modprobe(8), insmod(8)
AUTEUR
Bjorn Ekwall <bj0rn@blox.se>
Keith Owens <kaos@ocs.com.au>
TRADUCTION
Loïc Le Loarer, 2001.
version 2.4.10 de modutils.
Index
- NOM
-
- DESCRIPTION
-
- SÉMANTIQUE
-
- SYNTAXE
-
- CONFIGURATION PAR DÉFAUT
-
- FICHIER CONFIGURATION ALTERNATIF
-
- VOIR AUSSI
-
- AUTEUR
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 21:23:10 GMT, July 10, 2005