Un pilote moderne trouvera pour un périphérique la configuration des ressources bus sans que vous ayez besoin de lui dire quoi que ce soit. Il pourrait même enregistrer les ressources bus au niveau matériel en utilisant des méthodes PnP. Certains périphériques ont plus d'une façon pour trouver comment leur périphérique physique est configuré. Dans le pire des cas, vous devez coder en dur les ressources bus dans le noyau (ou un module) et recompiler.
En un juste milieu, il existe des cas tels que le lancement d'un programme pour donner les informations des ressources bus au pilote ou pour mettre les informations dans un fichier de configuration. Dans certains cas, le pilote peut chercher le périphérique aux adresses où il suppose qu'il réside (mais il ne trouvera jamais un périphérique PnP s'il n'a pas été activé par des méthodes PnP). Il peut même essayer de tester différentes IRQ pour voir laquelle fonctionne. Il peut, ou non, le faire automatiquement.
Dans d'autres cas, le pilote peut utiliser des méthodes
PnP pour trouver le périphérique et la façon dont les
ressources bus ont été configurées par le BIOS, et cætera
mais ne les modifiera pas. Il peut aussi regarder dans certains des
« fichiers » du répertoire /proc
.
Il peut aussi dire « manuellement » au pilote les ressources
bus qu'il doit utiliser. Vous donnez ces ressources bus en tant que
paramètre au noyau ou à un module. Si le pilote est intégré au noyau,
vous passez les paramètres au noyau via l'invite du démarrage. Voir le
Guide pratique sur l'invite de
démarrage (BootPrompt-HOWTO) pour
la description de quelques ressources bus et autres paramètres. Une fois
que vous savez quels paramètres donner au noyau, vous pouvez les
enregistrer dans un fichier de configuration du chargeur. Par exemple,
mettez append="…"
dans le fichier
lilo.conf
puis lancez lilo pour qu'il mette à jour
les informations de lancement.
Si le pilote est chargé comme module, dans plusieurs cas, le module
trouvera les ressources bus nécessaires et les enregistrera dans le
périphérique. Dans les autres cas (généralement pour les anciens PC),
vous pouvez avoir besoin de donner les ressources bus comme paramètres
du module. Les paramètres d'un module peuvent être spécifiés dans
/etc/modules.conf
. Ce sont généralement des outils
utilisé pour modifier ce fichier et qui sont dépendant de la
distribution. Les commentaires inclus dans ce fichier devraient vous
aider sur la façon de le modifier. De même, tout module que vous placez
dans /etc/modules
se verra charger avec ses
paramètres.
Bien qu'il ait une grande hétérogénéité sur la façon dont les pilotes trouvent leur ressources bus, le but final est le même. Si vous avez des problèmes avec un pilote, vous pouvez avoir besoin de regarder la documentation du pilote (vérifier la documentation du noyau). Quelques exemples brefs de pilotes sont présentés dans les sections suivantes :
Pour les ports séries PCI (et pour les ports série ISA PnP après le noyau 2.4), le pilote série détecte le type de port série et le configure via PnP. Malheureusement, quelques ports série PCI ne sont pas encore gérés.
Pour le pilote du port série ISA standard avec les anciennes versions du noyau et pour le pilote série (ne faisant pas partie des cartes multiports), le pilote travaille sur deux adresses standards pour les ports série. Il ne cherche pas d'IRQ mais il affecte l'IRQ « standard » aux deux premiers ports séries. Ceci peut être mauvais.
Pour tout autre chose dans le fichier de configuration, le programme
setserial doit être modifié manuellement. Voir le Guide pratique sur la programmation
des ports série pour plus de détails. Vous utilisez
setserial pour informer le pilote de l'adresse
d'entrée/sortie et setserial est souvent exécuté à partir
d'un fichier de démarrage. Dans les versions récentes, il existe un fichier
/etc/serial.conf
(ou
/var/lib/setserial/autoconfig
) que vous « éditez »
en lançant simplement la commande setserial
de façon
ordinaire et ce que vous configurez avec setserial est
sauvegardé dans le fichier de configuration serial.conf
.
Le fichier serial.conf
devrait être consulté lorsque la
commande setserial est lancée à partir d'un fichier de
démarrage. Votre distribution peut, ou non, avoir configuré ceci pour
vous.
Il existe deux façons d'utiliser setserial suivant les options que vous lui donnez. Une possibilité est de dire manuellement au pilote la configuration. L'autre méthode est de tester une adresse donnée et d'indiquer si un port série existe à cet endroit. Il peut aussi tester cette adresse et essayer de détecter l'IRQ utilisée par ce port.
Même avec des noyaux modernes, setserial est quelque fois nécessaire si le pilote échoue lors de la détection du port série ou si vous avez un très ancien matériel.