Guide pratique du Plug-and-Play

Adaptation française du Plug-and-Play HOWTO

Guillaume Lelarge

Traduction française

Jean-Philippe Guérard

Préparation de la publication de la v.f.

Version : 1.15.fr.0.9

2006-09-04

Historique des versions
Version 1.15.fr.0.92007-09-04GL, JPG
Version française mise à jour mais non relue.
Version 1.152007-08-??DSL
Version 1.14.fr.0.92006-03-07GL, JPG
Version française mise à jour mais non relue. Prise en compte des corrections suggérées par Jean-Philippe Guérard et par Bernard Adrian.
Version 1.142006-02-??DSL
Version 1.13.fr.0.92005-08-22GL, JPG
Version française non relue. Prise en compte des corrections suggérées par Black Myst.
Version 1.132005-08-??DSL
Version 1.122005-03-??DSL
Version 1.11.fr.0.92004-11-20GL, JPG
Version 1.112004-11-??DSL
Version 1.10.fr.0.92004-09-11GL, JPG
Version 1.102004-08-??DSL
Version 1.092004-08-??DSL
Version 1.08.fr.0.92004-07-22GL
Version 1.082004-06-??DSL
Version 1.07.fr.0.92003-09-27GL
Version 1.072002-08-??DSL
Version 1.06.fr.0.92003-05-08GL
Version 1.062002-09-??DSL

Résumé

Le Plug-and-Play (ou PnP) est un système de détection et de configuration automatique du matériel PC. Ce guide pratique présente en détail les différentes ressources bas niveau gérées par le Plug-and-Play, telles que les adresses, les interruptions, et cætera. Ce guide couvre le bus PCI (qui a été conçu dès le départ pour le Plug-and-Play) et l'utilisation du Plug-and-Play sur l'ancien bus ISA. Si le Plug-and-Play faisait son travail correctement, vous n'auriez pas besoin de ce guide pratique. Dans le cas contraire ou si vous disposez d'un vieux matériel qui n'utilise pas le Plug-and-Play pour toutes les cartes, ce guide pratique vous aidera. Il ne couvre pas le UPnP (Universal Plug and Play).


Table des matières

Introduction
Droits d'utilisation, avertissements et remerciements
Plans futurs : vous pouvez aider
Nouvelles versions de ce guide pratique
Nouveautés des dernières versions
Introduction générale. Avez-vous besoin de ce guide pratique ?
Ce que PnP doit faire : allouer des « ressources bus »
En quoi consiste le Plug-and-Play (PnP) ?
Périphériques matériels et la communication avec ces derniers
Adresses
Adresses d'entrées/sorties (principes relatifs à d'autres ressources)
Plages mémoire
IRQ - un aperçu
DMA (accès direct à la mémoire) ou maîtrise du bus
Canaux DMA (non pas pour le bus PCI)
« Ressources » du périphérique et du pilote
Les ressources sont limitées
Deuxième introduction au Plug-and-Play (PnP)
Introduction à PnP
Comment fonctionne le PnP (explication simplifiée)
Démarrer le PC
Les bus
Comment Linux gère-t-il le PnP
Problèmes avec Linux PnP
Configurer un BIOS PnP
Avez-vous un système d'exploitation PnP ?
Affecter les ressources par le BIOS ?
Réinitialiser la configuration
Gérer les cartes PnP
Introduction à la gestion des périphériques PnP
Configuration du pilote de périphérique, réservation des ressources
/sys : interface de configuration pour l'utilisateur
Configuration du BIOS
ISA seulement : Désactiver PnP ?
Bus ISA : Isapnp (outil faisant partie d'isapnptools)
Les utilitaires PCI
Configuration de Windows
Documents/Logiciels PnP
Indiquer au pilote la configuration ??
Introduction
Exemple de pilote de port série
Comment puis-je trouver les périphériques et comment sont-ils configurés ?
La recherche des périphériques et la découverte de la configuration sont liés
Les périphériques pourraient avoir deux « configurations »
Trouver le matériel
Messages de démarrage
Le répertoire /proc
Le répertoire /sys
Inspection du bus PCI
Introduction au bus ISA
Cartes ISA PnP
Bus LPC
X-bus
Cartes non PnP
Cartes non PnP avec cavaliers
Cartes non PnP et sans cavaliers
Outils pour détecter ou configurer le matériel
Outils pour détecter et configurer un type de matériel
Utilisez MS Windows
Interruptions PCI
Introduction
Historique : des interruptions ISA aux PCI
Contrôleur avancé d'interruptions programmées (APIC, acronyme de Advanced Programmable Interrupt Controller)
Interruptions signalées par message (MSI)
Partage des interruptions PCI
Recherche dans les tables de routage
Pour plus d'informations
Lier les interruptions PCI
PnP pour les périphériques externes et ajoutés
Bus USB
Hot Plug
Hot Swap
PnP détecte les périphériques connectés aux ports séries
Messages d'erreurs
Unexpected Interrupt (Interruption inattendue)
Erreur de configuration Plug and Play (BIOS Dell)
isapnp: Write Data Register 0xa79 already used (à partir des journaux)
Impossible d'allouer la région (PCI)
Partage et conflit d'interruption
Introduction
Vrai conflit d'interruption
Aucune interruption disponible
Annexe
Universal Plug and Play (UPnP)
Détails des adresses
Adresses de configuration du bus ISA (Port de lecture et cætera)
Détails sur les interruptions
Comment le pilote de périphérique récupère son interruption
Isolation ISA
Maîtrise du bus et ressources DMA
Historique et obsolescence
A. Adaptation française
Traduction
Préparation de la publication
[Important]Important

Le texte ci-dessous est la licence de ce document. Ce texte fait foi. Il est composé de la licence (en anglais) du document original, suivi de la licence (en français) de sa traduction.

Copyright © 1998-2005 by David S. Lawyer .

Please freely copy and distribute (sell or give away) this document in any format. Send any corrections and comments to the document maintainer. You may create a derivative work and distribute it provided that you:

  • If it's not a translation: Email a copy of your derivative work (in a format LDP accepts) to the author(s) and maintainer (could be the same person). If you don't get a response then email the LDP (Linux Documentation Project): .

  • License the derivative work in the spirit of this license or use GPL. Include a copyright notice and at least a pointer to the license used.

  • Give due credit to previous authors and major contributors.

If you're considering making a derived work other than a translation, it's requested that you discuss your plans with the current maintainer.

Copyright © 1998-2005 par David S. Lawyer .

Copyright © 2003-2005 par Guillaume Lelarge & ? .

Vous pouvez copier et distribuer librement (vendre ou donner) ce document quel que soit son format. Envoyez toute correction ou tout commentaire à l'auteur du document. Vous pouvez créer et distribuer une version dérivée à condition que :

  • vous envoyez au gestionnaire et à l'auteur (s'il ne s'agit pas de la même personne) une copie de votre travail par courrier électronique (s'il ne s'agit pas d'une traduction) dans un format que le LDP accepte. Si vous n'obtenez pas de réponse, alors envoyez votre message au LDP (Linux Documentation Project) :  ;

  • la licence utilisée pour votre travail soit dans le même esprit que cette licence ou utilise la licence GPL. Incluez les informations de droit d'utilisation ou au moins un pointeur vers la licence utilisée ;

  • vous donnez crédit aux auteurs précédents et aux contributeurs majeurs.

Si vous pensez faire un travail dérivé autre qu'une traduction, vous devez en discuter avec le gestionnaire actuel.

Pour un historique complet des révisions, voir le fichier source (dans son format DocBook SGML) sur http://cvsview.tldp.org/index.cgi/LDP/howto/linuxdoc/Plug-and-Play-HOWTO.sgml..

  • v1.15, Août 2007 : Révision de la section sur les interruptions. Suppression de deux paragraphes redondants et confus portant sur une mystérieuse fonction « h() ».

  • v1.14, Février 2006 : Révision de « Comment Linux gère-t'il le PnP » ; LPC devait être configuré par le BIOS. Balance des IRQ. Linux peut trouver des pilotes pour les périphériques détectés.

  • v1.13, Juillet 2005 : Conflit d'IRQ. Plus grande clarté dans les descriptions des ressources. /proc/bus. Espace de configuration PCI accédé via l'espace d'adressage des entrées/sorties. Plus d'outils de détection de matériel. Message d'erreur Can't allocate region.

  • v1.12, Mars 2005 : /dev/eth0 n'existe plus. Informations modifiées dans /sys et /proc depuis le noyau 2.6. L'espace d'adressage de la configuration PCI est « géographique ». scanpci pourrait trouver un périphérique que lspci ne voit pas. Le noyau peut affecter des adresses au démarrage.

Le Plug-and-Play (PnP) est un système détectant automatiquement les périphériques tels que les disques, les cartes son, les cartes réseau, les modems, et cætera. Il trouve tous les périphériques du bus PCI et tous les périphériques supportant PnP sur l'ancien bus ISA. Avant PnP, beaucoup de périphériques étaient automatiquement recherchés en utilisant des méthodes non PnP mais n'étaient pas trouvés quelque fois. PnP fournit un moyen de trouver tous les périphériques supportant PnP. Il réalise aussi une configuration de bas niveau de ces périphériques. Les périphériques non PnP (et les périphériques PnP ayant été correctement configurés avec PnP) peuvent souvent être détectés par des méthodes n'utilisant pas PnP. Le bus PCI a été conçu pour le PnP alors que le vieux bus ISA ne l'a pas été à ses origines mais son support lui a été ajouté plus tard. Donc, souvent, PnP est utilisé pour signifier uniquement PnP pour l'ancien bus ISA. Par exemple, lorsque vous apercevez au démarrage des messages d'isapnp du style : « Plug & Play device », cela signifie seulement qu'il y a un périphérique ISA PnP. Dans ce guide pratique, nous traitons à la fois le PnP du bus ISA et du bus PCI.

Avec le temps, le noyau Linux améliore son support de PnP. À la fin du 20è siècle, on pouvait dire que Linux n'était pas un système d'exploitation PnP. Mais il est dit qu'avec la version 2.6 du noyau, Linux est maintenant totalement compatible avec PnP (en supposant que le noyau est construit avec le support de PnP). Bien que le système PnP n'est pas centralisé comme cela peut l'être avec MS Windows (et son registre), le PnP Linux décentralisé semble fonctionner correctement.

Linux conserve la trace des affectations de ressources demandées par les pilotes de périphériques et refuse toute requête s'il estime que cela causerait un conflit. Le noyau fournit aussi des programmes que les pilotes de périphériques peuvent appeler pour effectuer leurs opérations de plug-and-play. Le noyau lit aussi tous les registres de configuration de tous les périphériques PnP et maintient leur tables que les pilotes de périphériques peuvent consulter. Cette table aide les pilotes à trouver leur matériel. Le noyau 2.6 fournit aussi un meilleur support pour le « hot-plug ».

Le BIOS de votre PC travaillera certainement un peu pour le plug-and-play. Donc, si tout fonctionne en harmonie avec PnP, vous pouvez utiliser votre ordinateur sans avoir besoin de tout connaître sur le plug-and-play. Mais, si certains périphériques supportés par Linux ne fonctionnent pas (parce qu'ils n'ont pas été repérés par Linux ou parce qu'ils ont été mal configurés), vous aurez besoin de lire au moins une partie de ce guide pratique. Vous en apprendrez sur le PnP mais aussi sur la façon dont la communication prend place dans un ordinateur. Si vous avez un ordinateur moderne avec un bus PCI mais sans bus ISA, vous pouvez passer les parties sur le bus ISA.

Si vous avez des problèmes avec un périphérique, regardez les messages affichés lors du démarrage (remontez la liste avec Shift+PageUp). Si cela n'affiche pas aussi les messages du lancement, à partir du BIOS, utilisez la touche Pause (voir la section intitulée « Messages de démarrage »).

Vérifiez que vous utilisez le bon pilote pour un périphérique et que ce pilote est trouvé et utilisé. Si le pilote est un module, tapez insmod (en tant qu'utilisateur privilégié) pour voir s'il est chargé (et utilisé). Si ce n'est pas un module, alors il doit être intégré au noyau.

Ce guide pratique ne couvre pas le problème de la recherche et de l'installation de pilotes de périphériques. Peut-être qu'il devrait. Un des problèmes possibles est qu'une carte (ou un autre périphérique physique) peut ne pas dire le type de composants qu'elle utilise. Le nom du pilote correspond souvent au nom de la puce et non pas au nom de la marque. Une façon de commencer la vérification du pilote est de regarder s'il en est question dans la documentation du noyau, dans un autre guide pratique ou plus généralement sur Internet. Attention : de telles documentations peuvent ne plus être à jour.

Les ordinateurs disposant de bus PCI (et sans bus ISA) ont significativement réduit le nombre de points posant problèmes. Concernant le bus ISA et le manque de support au niveau noyau pour l'ISA PnP (avant le noyau 2.4), beaucoup de choses posaient problèmes. Rappelez-vous que, parfois les problèmes semblant être relatifs à PnP sont dûs en réalité à un matériel défectueux ou à un matériel non conforme aux spécifications PnP.