Hardwareerkennung, Plug&Play


Allgemeine Informationen

Es gibt es zwei Typen von Adapterkarten/Geräten :

  • PnP (Plug&Play) - Karten/Geräte
    Dazu gehören z.B. alle PCI-Adapterkarten, neuere PnP-ISA-Adapterkarten, onboard-PCI-Komponenten, ein PnP-System-BIOS, externe PnP-Geräte (Drucker, SCSI-Geräte usw.) und speziell auch PC-Cards (PCMCIA-Karten).
  • Nicht-PnP - Karten/Geräte
    Dazu gehören alle älteren (nicht-PnP) ISA-Adapterkarten, EISA, MC und VL-Adapterkarten, ein nicht-PnP-System BIOS und externe nicht-PnP-Geräte.

Das PnP-Konzept wurde zeitgleich mit dem PCI-Bus (jetzt Industriestandard) eingeführt und bietet folgende Vorteile:

  • Automatische Konfiguration der Karten/Geräte ohne Jumper, Setup-Programme etc.
    Bei PnP-Geräten übernimmt das System-BIOS oder - wenn dies nicht dazu in der Lage oder fehlerhaft ist - eine Betriebsystem mit PnP-Erkennung (Windows 95) die automatische oder manuelle Konfiguration der Geräte. Es gibt keine speziellen Konfigurationsprogramme und keine, wie bei EISA oder MCA üblichen Konfigurationsdateien. Bietet weder das BIOS noch das Betriebssysten (DOS/Windows 3.11) PnP-Unterstützung, braucht man einen "PnP-Configuration-Manager". Das ist ein Treiber, der das Nicht-PnP-BIOS um die PnP-Leistungen erweitert.
  • Das System "weiß", wann Gerät aktiviert (eingeschaltet, hinzugefügt) oder deaktiviert (ausgeschaltet, entfernt) wird und bietet damit eine Möglichkeit, Treiber automatisch zu installieren, Ressourcen bereitzustellen etc.
    Beispiel: In Windows 95 wird ein PnP-Drucker automatsich erkannt und die erforderlichen Treiber installiert.
  • Keine Probleme mit der Ressourcenzuteilung (port, interrupt, dma, memory).
    Vorausgesetzt, das System-BIOS weist keine Fehler auf, werden alle Ressourcen dynamisch und automatsich vergeben.
    Leider funktioniert dies infolge von BIOS-Fehlern nicht immer, ferner versagt das Verfahren, wenn mehr Ressorcen als vorhanden benötigt werden (z.B. Interrupts).
  • Eindeutige Kennung der Geräte (Hersteller- und Devicecode bei PCI-Karten, PnP-Code bei ISA-Karten/PnP-Geräten). Das EISA-Kommitee vergibt weltweit eindeutige Bezeichnungen, den jeweils 16 bit umfassenden Hersteller- und Device-Code.
    Damit lassen sich unbekannte Geräte (Adapter) leicht identifizieren und Chip-Änderungen sofort feststellen. Das gesamte Hersteller/Device-Verzeichnis ist inzwischen sehr umfangreich und wird natürlich laufend erweitert. Teile davon, insbesondere für die hier vorhandenen Geräte sind verfügbar. Viele große Hersteller benutzen "klingende"-Bezeichnugen, z.B. INTEL den Herstellercode 8086, Adaptec 7880 als Devicecode für den 7880-SCSI-Chip.

Wenn man Windows 95 einsetzt und ein PnP-BIOS vorhanden ist, sollte man dort grundsätzlich die automatische Ressourcenzuteilung einschalten ("AUTO") und dies nur dann auf "MANUAL" umstellen und die Interrupts manuell vergeben, wenn das System-BIOS einen schwerwiegenden Fehler bei der AUTO-Ressourcenvergabe aufweist (Beispiel: Acer V30-Board, BIOS 2.0 R1.09). Mit der AUTO-Einstellung gibt man Windows 95 "freie Hand" die Ressourcen passend einzuteilen. Andernfalls kann es zu Konflikten kommen.

Beim PnP-Mechanismus gibt es derzeit drei Methoden. Den (veralteteten) Mechanismus 0, den aktuellen Mechanismus 2.0 und den ganz neuen 2.1.

Windows 95 beinhaltet den Mechanismus 2.0 und arbeitet deshalb ganz besonders gut mit einem System-BIOS nit gleichem Mechanismus zusammen. In anderen Fällen hat ein Teil (der neuere Mechnismus) Vorrang.

Trotz seiner Annehmlichkeiten bietet das PnP-Konzpt aber auch Tücken: Wegen der automatischen Erkennung ist es nicht einfach, PnP-Geräte stillzulegen. Nache jedem Einschalten des PCs oder Laden von Windows 95 werden PnP-Geräte stets aufs neue erkannt. Im BIOS ist eine Deaktivierung in der Regel nicht möglich, man kann höchstens die Interrupt-Nutzung für einen Steckplatz sperren. Windows 95 bietet aber eine elegante Möglichkeit, PnP-Geräte steillzulegen (zu deaktiverien und die Ressourcen freizugeben): Im Gerätemanager entfernt man dazu einfach das Häkchen "aktviert" bei den Eigenschaften eines Geräts.

Besonderheit bei Windows 95:

  • Was passiert, wenn man für die grundlegende Funktion notwendige Kompontenten (Festplattencontroller, Diskettencontroller, Videocontroller, Tastatur, Maus usw.) im Gerätemanager deaktiviert?
    Es werden dann die Real-Mode Treiber des System-BIOS für die entsprechenden Leistungen verwendet, genauso wie MS-DOS diese benutzt. Wegen der Leistungsverschlechterung und der Abhängigkeit von BIOS-Fehlern sollte man dies im Regelfall vermeiden.
    Die Verwendung von Real-Mode Treibern ist nur dann notwendig, wenn es keinen protected mode 32bit-Treiber für Windows 95 gibt oder dieser Fehler aufweist.
    Beispiel: Ein IDE(ATAPI)-CDROM-Laufwerk ist an den IDE/EID-Controller des Rechners angeschlossen. Windows 95 unterstützt dies durch den Standard-IDE-Treiber ESDI_506.PDR. Will man über dieses Laufwerk eine CD im Format CDI/VideoCD lesen, geht dies nicht, weil die derzeitige Version des ESDI_506.PDR das CDI-Format nicht unterstützt. Zur provisorischen Lösung des Problems deaktivert man den Windows 95 Festplattentreiber und baut einen CDI-verträglichen CDROM-RealMode-Treiber in C:\CONFIG.SYS und C:\WINDOWS\COMMAND\MSCDEX.EXE in C:\AUTOEXEC.BAT ein.

    In Arbeitsplatz-Eigenschaften-Leistungsmerkmale-Dateisystem sieht man, wenn RealMode-Treiber für den Festplatten-/SCSI-Controller benutzt werden. Das System wird dann als "nicht optimal konfiguriert" bezeichnet.
  • Was passiert, wenn man solche (grundlegend wichtige) Komponenten aus dem Gerätemanager entfernt/löscht?
    Beim Start verwendet Windows 95 zunächst die Real-Mode-Treiber (System-BIOS), erkennt die Geräte aufs neue und verwendet im Betrieb dann die 32bit-Treiber.
    Die Entfernung eines Geräts im Gerätemanager ist z.B. nützlich, wenn Konflikte unbekannter Art vorliegen, Ressourcen falsch belegt sind, oder ein falscher Treiber installiert ist. Man erzwingt so eine Neuinstallation des Geräts mitsamt der Treiber.
    Man kann den Eisatz der 32bit-Festplattenteiber allerdings nicht erzwingen, Windows 95 verwendet sie dann nicht, wenn entweder technische Probleme vorliegen oder vor Windows-Start RealMode-Treiber schon geladen sind (Config.Sys).
    Eine Besonderheit tritt bei Maschinen auf, die ein "Bad" System-BIOS aufweisen (Beispiel: AcerPower LC, BIOS 2.0): Hier werden beim Windows-Setup und der dabei durchgführten Erst-Hardwerkennung Korrekturen für IDE-Festplattencontroller eingefügt. Man erkennt dies am Registry-Eintrag "Bad-IDE". Wird ein derartiger IDE-Controller (Treiber) durch Änderungen/Fehler in der Registry später deaktiviert, kann man die 32bit-Treiber weder durch Entfernen des fehlerhaften Geräts im Gerätemanager und anschließender automatischer Neuerkennung noch durch die Hardwareerkennung in der Systemsteuerung wieder aktivieren. Man muß das Windows 95 Setup erneut anwenden.
    Im Gerätemanager sieht man CDROM- und Festplattenlaufwerke nur dann, wenn Sie über den 32bit-Festplatten-/SCSI-Treiber betrieben werden. Fehlen die Einträge, werden RealMode-Treiber benutzt.

Ein Tip in Problemsituationen:

Die PnP-Geräteerkennung erfolgt bei jedem Einschalten des PCs oder Einschalten externer Geräte. Dabei werden bei Maschinen mit PnP System-BIOS alle PnP-Daten in einen nicht-flüchtigen Speicher (EEProm) im PC übertragen und alle PnP-Anfragen aus dem EEProm-Inhalt abgeleitet. Bei undefinierten Verhälnissen sollte man also den PC aus/einschalten, um den Inhalt des EEProms zu aktualisieren.

Wie funktioniert die Geräteerkennung von Windows 95?

Bei der Installation des Systems mit SETUP (oder einer nachträglichen Aktualisierung mit SETUP) läuft gleich beim Start die Erst-Geräteerkennung. Diese Erkennung ist ausführlicher als die Hardwareerkennung in der Systemsteuerung bei laufendem System, er werden z.B. System-BIOS-Eigenheiten (Beispiel: Bad IDE-Controller)berücksichtigt.

Für nicht PnP-Adapter verfügt Windows 95 dazu über eine umfangreiche Liste und "probiert" diese aus. Deshalb kann das System dabei auch abstürzen, weil das Antesten von Adaptern technisch nicht ganz unproblematisch ist. Jedesmal, wenn die Hardwareerkennung "abstürtzt", weiß Windows 95, daß dieser Adpater nicht vorhanden ist und spart ihn aus der Testliste für den nächsten Start aus. So gelangt man nach endlich vielen Neustarts zum Ziel. In der Praxis funktioniert die Hardwareerkennung ziemlich sicher, Abstürze sind eher selten. Man könnte nun fragen, was zu tun ist, wenn ein nicht-PnP-Adapter nicht in der Windows 95 Testliste enthalten ist. In diesem Fall müßte man tatsächlich das Teil manuell zufügen. Diese Situation kommt in der Praxis kaum vor: Ältere (nicht-PnP) Adpater sind sehr wahrscheinlich in der Hardwareliste von Windows 95 enthalten und neue Adapter sind immer PnP.
Baut man in ein System, auf dem Windows 95 installiert ist, nachträglich einen nicht-PnP-Adapter ein, erkennt ihn Windows 95 zunächst nicht. Man muß dann die Hardwareerkennung erneut aktivieren (Systemsteuerung, Hardware).

PnP-Adapter geben sich vom Prinzip her selbst zu erkennen: Wenn das BIOS keine PnP-Unterstützung bietet, übernimmt ein Modul von Windows 95 diese Funktion.
Wenn man PnP-Adapter/Geräte nachträglich in ein System, auf dem Windows 95 installiert ist, einbaut/anschließt, werden diese sofort erkannt und die erforderlichen Treiber installiert. Eine (erneute) Hardwareerkennung ist nicht erforderlich.
Nach diesem Prinzip funktioniert z.B. die automatische Druckertreiberinstallation, wenn man einen PnP-Drucker anschließt oder die Erkennung und Treiberinstallation von PC-Cards.

Eine Besonderheit tritt bei Geräten auf, die indirekt über Schnittstetten erkannt werden sollen. Hierzu zählen z.B. PnP-Drucker (an LPT-Schnittstelle), SCSI-Geräte (an SCSI-Controller). Diese Geräte (sie müssen eingeschaltet sein!) werden normalweise nur beim Starten von Windows 95 erkannt, weil die Schnittstellen nicht dauernd überwacht werden. Will man ein deratiges Gerät ohne Neustart erkennen, muß man im Gerätemanager den Schalter "Aktualiseren" anklicken.
Dies ist z.B. nützlich, um SCSI-Wechselplatten im Betrieb von Windows 95 zu aktivieren.

Wie installiert Windows 95 Gerätetreiber?

Für nicht-PnP-Geräte erfolgt dies bei der Hardwareerkennung (Erstinstallation oder Systemsteuerung Hardware). Windows 95 hält in den Geräte-Informationsdateien (INF-Dateien) zu jedem Gerät die Namen der benötigten Treiberdateien sowie deren Einstellungen und weiß damit, welche Treiber erforderlich sind und stellt dies auch bereit (auf Netzwerkservern ausgepackt, ansonsten in sogenannten Cabinets). Werden die benötigten Treiber auf der Festplatte oder dem von Adminstrator eingestellten Source-Pfad nicht gefunden (unvollständige Installation), wird nach Disketten oder nach einer anderen Bezugsquelle gefragt.
Voraussetzung, daß Windows 95 die benötigen Treiber finden kann, ist ein zur Source-Struktur (Cabinets, ausgepackt am Netz) passendes Layout.Inf. In der Layout.Inf setehen Verweise, welcher Treiber sich in welchem Cabinet befindet oder ob dieser ausgepckt bereitsteht. Die Datei Layout.Inf ist versions- und mediumsabhängig (so, wie die Cabinets gerade gepackt sind). Man kann also nur von derselben Quelle nachinstallieren, von der die Erstinstallation durchgeführt wurde, wenn man Layout.Inf nicht ändert. Änderungen an der Layout.Inf gibt der Systemadmistrator vor.

Für PnP-Geräte hält Windows 95 die Treiberinformationen genauso wie bei nicht-PnP-Geräten in den Informationsdateien (INF-Dateien). Anders als bei den älteren nicht-PnP-Geräten verfügt Windows 95 aber verständlicherweise über keine Treiberinformation für PnP-Geräte, die nach Windows 95 selbst (Mitte 1995) herausgekommen sind. In diesem Fall wird man zur Bereitstellung einer Konfigurationsdiskette des Herstellers aufgefordert. Die benötigten Daten können auch (wie in unserem Fall vorzugsweise) von einem Netzwerkserver bezogen werden. Windows 95 sucht immer nach einer INF-Datei, in der Hersteller und Devicecode zum erkannten Gerät/Adapter passen. Updates von Windows 95 enthalten neuere Geräteinformationen, für die dann keine Diskette mehr erforderlich ist.

Man hüte sich davor, Gerätetreiber für Windows 95 nach der von Windows 3.1 bekannten Methode, also durch Aufruf eines Installationsprogramms des Herstellers zu installieren. Dieses Verfahren, auch wenn es immer noch von manchem Herstellen auch für Windows 95 empfohlen wird (Beispiel: HP-Laserjet 5), ist nicht korrekt und kann zu Problemen führen.

Faustregel: Windows 95 erkennt PnP-Geräte immer selbst und fordert ggfls. zur Bereitstellung von Treibern auf (Beispiel: HP-Laserjet 5L). Man muß dann diejenige Diskette des Herstellers einlegen, die die Informationsdatei (Dateityp INF) für Windows 95 enthält.

Wie aktualisiert man Gerätetreiber für Windows 95?

Wie bei jedem anderen Betriebsystem zeigen auch unter Windows 95 die standardmäßig mitgelieferten/installierten Treiber erst nach einiger Zeit (also jetzt) Probleme/Schwächen bei bestimmten Anwendungen. Man braucht dann aktualiserte Treiber, bei denen die Fehler beseitgt sind. Dieser Fall kommt auch bei neuer Hardware vor, wo der Original-Windows 95-Treiber nicht mehr korrekt funktioniert.

Tip: Die Installation von Windows 95 über die Original-CD Version 4.950 oder Disketten installiert immer die heute teilweise veralteten Original-Treiber. Updates muß man selbst nachinstallieren. Bei einer Hersteller-Preinstallation von Windows 95 bekommt man dagegen aktueller Treiber vorinstalliert. Bei der Installation über das Netzwerk (in unserem Fall) kann der Systemadministrator aktualisierte Treiber ebenfalls (mühsam) vorinstallieren.

Wenn man selbst Treiber aktualisieren muß, geht man folgendermaßen vor:

  • Bildschirmtreiber:
    Über Desktop-Eigenschaften-Einstellungen-Konfiguration ändern-Grafikkarte.
  • Druckertreiber:
    Am einfachsten löscht man den bisherigen Drucker und installiert ihn erneut mit Start-Einstellungen-Drucker-Neuer Drucker
  • SCSI-Treiber:
    Über Gerätemanager (Arbeitsplatz-Eigenschaften), SCSI-Controller-Eigenschaften-Treiber.
  • Festplattentreiber (IDE):
    Dies sollte nur von Fachleuten (Sytemadministrator) vorgenommen werden. Man startet Windows 95 im Save-Modus, entfernt den Festplattencontroller im Gerätemanager und kopiert den aktualisierten Treiber (ESDI_506.MPD) nach IOSUBSYS. Die INF-Datei dazu kommt in das INF-Verzsichnis. Nach dem Neustart von Windows 95 muß man zweimal eine Anfrage (Ausawahl des neuen Festplattentreibers) abbrechen (ESC) und den empfohlenen Neustart jeweils nicht durchführen.
  • CDROM-Treiber:
    Hier handelt es sich nur um Zusätze, weil der Festplattentreiber/SCSI-Treiber das CDROM-Laufwerks bereits elementar mitversorgt. Die Zusätze (vxd-Datei) werden direkt nach IOSUBSYS kopiert und das System neu gestartet. Derartige Zusätze braucht man z.B. zum Betrieb von CD-Writern, damit Windows 95 sie als CDROM-Laufwerk "sieht".
  • Netzwerkkartentreiber:
    Dies sollte nur von Fachleuten (Sytemadministrator) vorgenommen werden. Man kopiert (besser überschreibt) die aktualisierten Treiber (die INF-Datei muß denselben Namen aufweisen!) direkt in die entsprechenden Verzeichnisse (INF, WINDOWS, SYSTEM). INF-Dateien mit neuem Namen können nur vom Systemadministartor vorinstalliert werden.
  • Andere Treiber:
    Über Gerätemanager (Arbeitsplatz-Eigenschaften), Eigenschaften-Treiber für das jeweilige Teil.

Beispiele finden Sie in "Geräte/Treiber installieren".


W.Oestreicher, 22.5.1996