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

3. La solution Plug-and-Play (PnP)

3.1 Introduction

Le Plug-and_Play (PnP) constitue une méthode d'automatisation de l'attribution des ressources PnP au matériel et au logiciel correspondant. C'est-à-dire mettre en relation les périphériques et leurs pilotes ainsi que spécifier les "canaux" de communication. Avant le Plug-and-Play, les ressources étaient configurées sur le matériel par des cavaliers et les pilotes de périphériques étaient assignés aux ressources par des fichiers de configuration (ou quelque chose du même style) ou par des tests des périphériques (ce qui ne fonctionnait pas toujours bien).

Avec le PnP complet (qui, d'ailleurs, lui aussi, ne fonctionne pas toujours bien), à la fois le BIOS PnP et le système d'exploitation coopèrent. Quand l'ordinateur est mis sous tension, il exécute le programme BIOS pour démarrer. Si le système d'exploitation est stocké sur le disque dur (ce qui est généralement le cas), il faut que le BIOS reconnaisse ce disque dur. Si le disque est PnP, alors, le BIOS peut utiliser les méthodes PnP pour le trouver. De plus, pour configurer le BIOS au démarrage de l'ordinateur, il faut un écran (une carte video) et un clavier pour que le BIOS puisse "PnP-configurer" ces périphériques si besoin est.

Après avoir reconnu le disque dur, la carte vidéo et le clavier, le BIOS est prêt pour "démarrer" ("boot", chargement du système d'exploitation du disque dur). Si vous avez dit au BIOS que le système d'exploitation est PnP, il devrait faire cela et laisser au système d'exploitation le soin de terminer la configuration PnP. Sinon, un BIOS-PnP essaiera de faire le reste de la configuration par lui-même.

3.2 Linux a besoin du PnP

PnP a été inventé par Wintel (Microsoft et Intel). En partie pour cette raison (peut-être partiellement due au syndrome du "pas inventé ici"), et en partie à cause d'une réticence sur la façon dont il a été implémenté, il y a eu quelques préjugés contre le PnP dans la communauté Linux. Mais qu'on l'aime ou non, la plupart du matériel d'aujourd'hui est PnP et Linux n'a pas d'autre choix que de prendre en compte le PnP.

3.3 Les bus

Le PnP est censé fonctionner avec tous les bus tels que ISA et PCI. ISA est le vieux bus des vieux IBM PC alors que PCI est le bus plus récent et plus rapide d'Intel. En fin de compte, le bus ISA devrait disparaître. Le bus PCI a réservé de nombreuses adresses pour la configuration PnP. Linux utilise quelques-unes de ces adresses pour détecter quels sont les périphériques PCI utilisés qui sont PnP (qu'en est-il des périphériques non PnP sur le bus PCI ??) et mettre l'information les concernant dans le "fichier" /proc/pci.

Pour le bus ISA, cela pose un réel problème, à la différence du bus PCI qui a été conçu pour le PnP. Personne n'avait le PnP en tête quand le bus ISA a été conçu et il n'y a pratiquement pas d'adresses disponibles pour leur utilisation pour le PnP. En conséquence, la manière dont le PnP est géré sur le bus ISA est compliquée et nécessite que chaque périphérique PnP se voie attribuer un "numéro" temporaire par le programme PnP de façon à pouvoir l'adresser pour la configuration PnP. L'attribution de ces "numéros" est appelée "isolation". Voir Isolation, dans l'appendice, pour informations détaillées.

3.4 Configuration d'un BIOS PnP

À la mise sous tension de l'ordinateur, le BIOS s'exécute avant que le système d'exploitation ne soit chargé. Les nouveaux BIOS sont PnP et configurent quelques-uns ou la totalité des périphériques PnP. Il n'est pas possible de désactiver la plupart des BIOS PnP, donc il faut faire avec. Voici quelques-uns des choix possibles dans le menu BIOS (quelquefois appelé CMOS) :

Avez-vous un système d'exploitation PnP ?

Si vous répondez oui, alors le BIOS PnP commencera à configurer le disque dur etc., pour donner au système la possibilité de démarrer. Mais il laissera le soin de terminer la configuration au système d'exploitation. Il peut faire une isolation sur le bus ISA en laissant les périphériques prêts à être configurés par le système d'exploitation. Si votre système d'exploitation n'effectue pas cette configuration (quelques versions corrigées de Linux le font), vous devrez probablement ne pas répondre oui à cette question puisque le BIOS risque de laisser vos périphériques ISA en état désactivé ??

Si vous répondez non, alors le BIOS fera la configuration lui-même. Il utilisera la configuration précédente, sauvegardée dans la mémoire non volatile, à moins que vous n'ayez ajouté de nouveaux périphériques PnP. Si votre dernière session d'utilisation de l'ordinateur a été faite sous Linux, il n'y aura pas de modification de configuration. Mais si cette dernière session a été faite sous Windows 95 ou 98 (qui sont PnP), alors Windows peut avoir effectué une configuration différente de celle que vous voulez sous Linux. C'est l'une des manières de faire avec le PnP : accepter simplement la configuration effectuée par Windows 9x. Lorsque vous faites la configuration pour la première fois sous Windows9x, vous pouvez dire au BIOS que vous avez un système d'exploitation PnP et ensuite lui dire que ce n'est pas le cas. Lorsque vous ajoutez un nouveau périphérique, le BIOS doit être capable de le configurer par lui-même sans l'aide de Windows, mais il peut aussi bien ne pas le faire ??

Vous pouvez toujours faire tourner isapnp au démarrage de Linux pour modifier la configuration ISA et adopter celle que vous voulez sous Linux. Cela n'apporte rien pour les cartes PCI, mais vous pouvez toujours voir comment elles ont été configurées en regardant dans /proc/pci. Il faudra alors vous assurer que les pilotes utilisés correspondent à vos fichiers de configuration Linux ("setserial", lilo.conf etc.). Consultez BIOS Configures PnP pour avoir des informations complémentaires.

Comment doivent être contrôlées les ressources ?

cela peut simplement signifier de décider comment allouer les IRQ et les DMA. Sur "auto", le bios se chargera de l'allocation. Sur manuel, vous entrerez dans un autre menu et pourrez réserver certaines IRQ à utiliser pour des cartes anciennes (cartes non-pnp). Maintenant le BIOS peut, ou non, reconnaître vos vieilles cartes. S'il les reconnaît, alors essayez l'option "auto". S'il ne les reconnaît pas, alors réservez manuellement les IRQ nécessaires pour les cartes ISA anciennes et laissez BIOS PnP allouer le reste. Le BIOS ne reconnaîtra vos cartes anciennes que si vous faites tourner ICU (ou quelque chose comme cela) sous Windows pour les faire reconnaître par le BIOS. Celui-ci stockera alors les informations dans sa base de données en mémoire non volatile.

Réinitialiser la configuration ?

Cette opération effacera de la base de données du BIOS la manière dont les périphériques PnP doivent être configurés ainsi que la liste de configuration des périphériques anciens (non-PnP). Ne jamais faire cela à moins d'être convaincu que cette base de données est erronée et doit être refaite. Il a été dit quelque part que vous ne devriez faire cela que dans le cas où votre ordinateur refuserait de démarrer. Si le BIOS perd les données sur les périphériques anciens, alors vous devrez faire tourner à nouveau ICA sous Windows pour retrouver ces données.


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