Aujourd'hui, la plupart des nouvelles cartes internes sont Plug-and-Play (PnP). Certaines d'entre elles possèdent des cavaliers (ou quelque chose de semblable) qui peuvent être déplacés pour désactiver le PnP. Puisque le logiciel existe dans Linux (ainsi que dans Dos/Windows) pour gérer le PnP, la plupart du temps il vaut mieux laisser le PnP activé même si vous avez la possibilité de le désactiver. Si vous corrigez le noyau pour utiliser le Plug-and-Play, il ne configurera pas seulement le matériel en mettant les informations concernant les ressources dans ses registres, mais il essaiera de fournir cette information au logiciel de pilotage de telle sorte que vous n'aurez pas à le configurer. Par exemple, pour un port série, vous n'aurez pas à utiliser "setserial".
Si vous possédez une carte PnP, vous disposerez alors d'une ou de plusieurs des options suivantes pour le configurer :
De nombreux périphériques sont uniquement PnP, sans option pour le désactiver. Même si vous disposez de cette option, vous pouvez ne pas vouloir le faire pour l'une des raisons suivantes :
Votre BIOS doit évidemment supporter le PnP pour le faire. Pour trouver des informations complémentaires sur le BIOS, consultez le Web. Quelques BIOS ont un support PnP minimal et essaient de contourner cette difficulté en se déchargeant des tâches de configuration sur des utilitaires Windows (ce qui n'est pas possible sous Linux). Dans ce cas, si le BIOS entretient une base de données de configuration, vous pouvez essayer de favoriser la mise au point de cette base de données en utilisant ICU sous DOS/Windows ou, si vous possédez l'un des Windows9x (qui sont des systèmes d'exploitation PnP), vous pouvez simplement laisser Windows le faire sans utiliser ICU.
Avant de faire tourner Linux, vous configurez le BIOS pour un "Système d'exploitation ne supportant pas le PnP" (ou quelque chose comme cela). Consultez Configuration d'un BIOS PnP Grâce à cela, le BIOS effectuera la configuration au lieu de laisser le système d'exploitation le faire.
La base de données, non volatile, du BIOS se nomme ESCD (Extended System Configuration Data -- Données de configuration du système étendu). L'ESCD ne stocke pas seulement la configuration des périphériques PnP, mais également les informations concernant les périphériques non PnP pour éviter les conflits. Quand vous installez un périphérique non PnP, l'ESCD du BIOS s'attend à ce que vous l'en informiez en exécutant l'utilitaire Dos/Windows ICU (Intel Configuration Utility -- utilitaire de configuration Intel) avant l'installation. Il faudra également que vous utilisiez cet utilitaire pour informer l'ESCD des périphériques non PnP présents dans le PC (à moins que quelqu'un ne l'ait fait avant vous).
La configuration ESCD, pour être non volatile, est habituellement sauvegardée dans un circuit intégré, mais quelquefois, elle l'est sur le disque dur ?? Chaque fois que le BIOS démarre sous Linux, il doit configurer les choses de cette façon. Vous pouvez prendre des notes sur la façon dont ICU (et le BIOS) ont configuré les choses (ou l'imprimer). Cependant, si vous ajoutez un nouveau périphérique non PnP, vous devrez refaire tourner le programme ICU. S'il est PnP, alors le BIOS le configurera automatiquement et, avec un peu de chance, ne changera pas la configuration de tous les autres périphériques présents sur votre PC. Mais il peut avoir à reconfigurer quelques-uns des périphériques existants pour allouer des ressources au nouveau périphérique.
Comment le BIOS l'a-t-il configuré ? Le découvrir sous Linux peut être
difficile. Mais c'est facile pour le bus PCI : il suffit juste de
regarder dans /proc/pci
. Pour le bus ISA, les choses ne sont pas
aussi faciles. En utilisant pnpdump
on peut trouver des cartes
PnP sur le bus ISA ainsi que la façon dont il aurait fallu les configurer,
mais rien ne garantit qu'elles l'ont été de cette façon. On peut essayer
quelques commandes isapnp en utilisant le mot-clé PEEK pour trouver quelles
sont l'adresse d'E/S et l'IRQ, mais c'est compliqué. Ne confondez pas
l'adresse de lecture du port "qu'essaie" pnpdump
(et où il trouve
quelque chose) avec l'adresse d'E/S du périphérique détecté. Ce ne sont pas
les mêmes.
Notez que sous Dos/Windows la configuration est également sauvegardée dans un fichier sur le disque dur pour que le système d'exploitation sache où sont toutes les informations. Cela n'est pas le cas pour Linux qui effectue une détection automatique des périphériques.
La documentation concernant isapnp est difficile à comprendre si l'on ne
connaît pas les bases du PnP. Cet HOWTO devrait aider à la comprendre.
isapnp
ne concerne que les périphériques PnP sur le bus ISA (non PCI).
En lançant le programme Linux "isapnp" au démarrage, on configure ces
périphériques avec les valeurs indiquées dans /etc/isapnp.conf. Cela
nécessite d'avoir le paquetage isapnptools
, présent dans beaucoup de
distributions de Linux. Tapez "locate pnp" pour voir ce qui est disponible
sur votre système pour isapnp. Si votre distribution Linux installe
automatiquement isapnptools, isapnp peut déjà être lancé au démarrage. Dans
ce cas, tout ce que vous avez besoin de faire est d'éditer /etc/isapnp.conf
selon "man isapnp.conf
". Notez que cela revient à configurer
manuellement PnP puisque vous avez à prendre les décisions sur la manière
de configurer à mesure que vous éditez le fichier de configuration. Si vous
utilisez "isapnp" comme cela et que vous ayez un BIOS PnP, devez-vous dire
au BIOS (quand vous le paramétrez) que vous avez un système d'exploitation
PnP ??
Si vous lancez isapnp une seule fois pour configurer les périphériques ISA-PnP mais que vous ne le faites pas à chaque démarrage de l'ordinateur, alors, si vous avez MS Windows 9x sur le même PC, le problème suivant risque de survenir : quand vous utilisez MS Windows 9x, Windows peut configurer vos cartes PnP de manière différente, de telle sorte qu'elles ne fonctionneront plus correctement (ou plus du tout) sous Linux.
Une telle correction importante pour le faire existe. Le noyau résultant est stable et une documentation est incluse : serial.txt, pour montrer comment faire pour un port série. Elle fournit des "fichiers" dans l'arborescence /proc pour que vous puissiez voir ce qui se passe et des commandes dans l'un de ces fichiers pour une configuration personnalisée. Le problème vient de ce que de nombreux pilotes de périphériques ne le prennent pas en compte et qu'il vous faut encore utiliser les fichiers de configuration traditionnels etc. pour effectuer la configuration. Consultez http://lucifer.hemmet.s-hem.chalmers.se/~dwh