Si un périphérique ne peut pas être initialisé avec
/sbin/hwup, l'agent explore les tables de
correspondance de modules (en anglais module maps) à la
recherche d'un pilote adapté. Il examine en premier les tables de
correspondance dans /etc/hotplug/*.handmap ; s'il
n'a pas trouvé de pilote, il cherche également dans
/lib/modules/<kernelversion>/modules.*map. Si
vous voulez utiliser un autre pilote que le pilote standard du noyau,
déclarez-le dans /etc/hotplug/*.handmap car ce fichier
est le premier à être lu.
L'agent USB cherche également des pilotes en mode utilisateur dans les
fichiers /etc/hotplug/usb.usermap et
/etc/hotplug/usb/*.usermap. Les pilotes en mode
utilisateur (user-mode) sont des programmes qui règlent l'accès au
périphérique en lieu et place d'un module noyau. On peut de cette façon
appeler des programmes exécutables pour des périphériques déterminés.
Dans le cas de périphériques PCI, pci.agent interroge
d'abord hwinfo au sujet de modules de pilote. L'agent ne
recherche dans le pci.handmap et les correspondances du
noyau (kernel map) que si hwinfo ne connaît aucun pilote.
Ceci a déjà été tenté auparavant par hwinfo et doit donc
également échouer. hwinfo dispose d'une base de données
supplémentaire d'assignation des pilotes. Toutefois la commande lit
également pci.handmap, ce qui permet de s'assurer
qu'une quelconque assignation inscrite dans ce fichier est réellement
utilisée.
L'agent pci.agent
peut être limité à des périphériques d'un type déterminé ou aux modules
pilotes qui se trouvent dans un sous-répertoire de
/lib/modules/<kernelversion>/kernel/drivers. Dans
le premier cas, des classes de périphériques PCI trouvées à la fin du
fichier /usr/share/pci.ids peuvent être ajoutées dans
le fichier /etc/sysconfig/hotplug au niveau des
variables HOTPLUG_PCI_CLASSES_WHITELIST
etHOTPLUG_PCI_CLASSES_BLACKLIST. Pour le second
cas, spécifiez un ou plusieurs répertoires dans les variables
HOTPLUG_PCI_DRIVERTYPE_WHITELIST et
HOTPLUG_PCI_DRIVERTYPE_BLACKLIST. Les modules de
ces répertoires exclus ne sont jamais chargés. Dans les deux cas, une liste
blanche (whitelist) totalement vide signifie que toute possibilité, à
l'exception de celles exclues dans la liste noire (blacklist), est
autorisée. Vous pouvez également exclure des modules individuels du chargement.
Indiquez simplement dans le fichier /etc/hotplug/blacklist les
modules qui ne devront
jamais être chargés par un agent. Écrivez chacun des noms de module sur une
ligne séparée.
Si plusieurs modules appropriés sont trouvés dans une table de
correspondance, seul le premier module sera chargé. Si vous souhaitez que
tous les modules soient chargés, déclarez la variable
HOTPLUG_LOAD_MULTIPLE_MODULES=yes. Il est
préférable toutefois d'établir une configuration matérielle
/etc/sysconfig/hardware/hwcfg-* particulière pour ce
périphérique.
Cela ne concerne pas les modules chargés à l'aide de hwup. Le chargement automatique de modules n'a lieu qu'exceptionnellement, et sera encore davantage restreint dans les versions futures de SUSE LINUX. Cependant, si un module adéquat a été trouvé, l'agent crée un fichier de configuration hwup qui sera utilisé la prochaine fois. Cela augmente la vitesse d'initialisation du périphérique.