Page suivante Page précédente Table des matières

4. Comment agir avec les cartes PnP

4.1 Introduction

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 :

4.2 Désactiver le PnP ?

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 :

  1. Si vous avez MS Windows sur la même machine, vous voulez permettre au PnP sous MS Windows de configurer les périphériques différemment.
  2. Le champ des possibilités de choix des numéros d'IRQ (ou des adresses de ports) etc. peut être particulièrement restreint si l'on n'utilise pas le PnP.
  3. S'il est nécessaire d'utiliser un logiciel sous Dos/Windows pour configurer une configuration non PnP et qu'un jour, n'ayant pas Dos/Windows sous la main, vous ayez des difficultés à changer de configuration.
  4. Vous avez (ou vous aurez) d'autres périphériques PnP qui auront besoin d'être configurés et donc, il faudra utiliser le PnP de toute façon.
Une fois qu'ils sont configurés comme des périphériques non-PnP, ils ne peuvent plus être configurés par un logiciel PnP ou par le BIOS (à moins que vous ne déplaciez les cavaliers et utilisiez à nouveau le logiciel de configuration pour rétablir le PnP).

4.3 Le BIOS configure le PnP

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.

4.4 Isapnp

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.

4.5 Corriger le noyau pour rendre Linux compatible PnP

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

4.6 Logiciels PnP et documents


Page suivante Page précédente Table des matières