La manière exacte dont cela s'effectue dépend du pilote. Certains pilotes disposent de plus d'une méthode pour détecter la configuration du périphérique physique. À l'extrême, on trouve le cas où il faut paramétrer "en dur" les ressources du bus dans le noyau et recompiler celui-ci. À l'autre extrême, le pilote fait tout automatiquement et vous n'avez rien à faire. Il peut même paramétrer les ressources du bus dans le matériel en utilisant les méthodes PnP.
Entre les deux, on trouve les cas où il faut faire tourner un programme pour faire passer les infos au pilote ou mettre ces infos dans un fichier. Dans certains cas, le pilote peut tester le périphériques à des adresses ou il pense trouver le périphérique. Il peut alors essayer de tester différentes IRQ pour voir laquelle fonctionne (IRQ = Interrupt ReQuest / ReQuête d'Interruption). Ce qu'il peut faire automatiquement ou non. Dans d'autres cas, le pilote utilise des méthodes PnP pour trouver le périphérique et la façon dont les ressources du bus ont été affectées, mais ne pas les paramétrer lui-même. Il peut aussi regarder certains fichiers du répertoire /proc.
On peut avoir besoin d'indiquer les ressources du bus comme paramètre au noyau pour un module chargeable. Voir /usr/lib/modules_help/descr.gz pour avoir une liste des paramètres possibles. Le modules à charger est indiqué dans /etc/modules avec ses paramètres. Dans certains autres cas les ressources du bus peuvent être indiquées au noyau par des paramètres. Ceux-ci sont mis dans le fichier lilo.conf sous la forme append="...". Dans ce cas le programme lilo doit être exécuté pour enregistrer ces données dans le code de démarrage du noyau.
Alors qu'il y a une grande diversité dans la manière dont les pilotes peuvent trouver les ressources du bus, le but final est le même. Il y a tellement de périphériques différents et de pilotes de périphériques pour les gérer que vous pouvez avoir besoin de consulter la documentation de votre pilote particulier pour trouver comment celui-ci gère les ressources du bus et ce que vous avez besoin de faire pour vous assurer qu'il trouve les infos dont il a besoin. Quelques brèves indications sur un petit nombre de pilotes de périphériques sont données dans les paragraphes suivants.
Pour le pilote de port série standard (et non pas pour les cartes
multi-ports) vous utilisez setserial pour en configurer le pilote. Ce
programme est souvent lancé à partir d'un fichier de démarrage. Dans les
versions les plus récentes, on trouve un fichier /etc/serial.conf que
vous pouvez "éditer" en utilisant simplement la commande setserial de la
manière habituelle et ce que vous paramétrez en utilisant setserial
est sauvegardé dans le fichier serial.conf
. Le fichier
serial.conf
devrait être consulté lors de l'exécution de la commande
setserial
lancée par un fichier de démarrage. Votre distribution peut
le faire ou ne pas le faire pour vous.
Il y a deux manières différentes d'utiliser setserial
selon les options
que vous choisissez. Une méthode consiste à indiquer la configuration
manuellement au pilote. L'autre méthode consiste à tester une adresse
donnée et à voir s'il y a un port série à cette adresse. On peut aussi tester
cette adresses et essayer de détecter si une interruption est utilisée pour
ce port. Le pilote exécute quelque chose comme
setserial
au démarrage, mais ne teste pas les interruptions, il
affecte simplement l'interruption "standard" ce qui peut ne pas correspondre à la réalité. Il teste uniquement l'existence d'un port. Consulter le
Serial-HOWTO pour avoir des détails complémentaires.
Vous devez passer IO, IRQ, et DMA en tant que paramètres à un module ou les compiler dans le noyau. Mais quelques cartes PCI seront détectées automatiquement (par exemple en prenant les infos dans /proc/pci ou quelque chose d'équivalent). RedHat fournit un programme "sndconfig" qui détecte les cartes ISA PnP et paramètre automatiquement les modules pour les charger avec les ressources de bus trouvées.
Ils détecteront les cartes par les méthodes PnP puis choisiront le pilote approprié et le chargeront. Ils paramètreront également les ressources du bus sur une carte ISA-PnP. Vous pouvez avoir à intervenir manuellement pour résoudre les problèmes de conflits. Pour le pilote ALSA, la prise en charge de l'ISA-PnP est optionnelle et vous pouvez utiliser isapnp si vous le voulez.