# 1.101.1

# Konfiguration grundlegender BIOS-Einstellungen

Beschreibung: Prüfungskandidaten sollten in der Lage sein, grundlegende Systemhardware durch korrekte Einstellungen im System-BIOS zu konfigurieren. Dieses Lernziel beinhaltet das richtige Verständnis von BIOS-Konfigurations-Fragen wie der Verwendung von LBA bei IDE-Festplatten mit mehr als 1024 Zylindern, das Aktivieren und Deaktivieren von integrierten Peripheriegeräten, sowie die Konfiguration von Systemen mit bzw. ohne externen Peripheriegeräten wie z.B. Tastaturen. Ebenfalls enthalten ist das korrekte Setzen von Interrupts, DMA- und I/O-Adressen für alle vom BIOS verwalteten Ports und Einstellungen für Fehlerbehandlung.

Die wichtigsten Dateien, Bezeichnungen und Anwendungen

- `/proc/ioports`
- `/proc/interrupts`
- `/proc/dma`
- `/proc/pci`

Die hier geforderten Fähigkeiten sind eigentlich nicht Linux-spezifisch, haben jedoch eine Bedeutung für die Installation und die fehlerfreie Ausführung von Linux auf einem PC. Ein Systemverwalter sollte eigentlich keinerlei Probleme damit haben. Trotzdem gehe ich hier der Vollständigkeit halber die einzelnen Punkte noch einmal durch.

### Die Funktion des Computer-BIOS

Das Basic Input Output System (BIOS) eines PC ist eine kleine Softwareschicht, die sich zwischen die Hardware und das Betriebssystem legt, um eine einheitliche Schnittstelle gegenüber der Hardware zur Verfügung zu stellen. Bei der Vielfältigkeit der Mainboards wäre ansonsten jedes Betriebssystem gezwungen, die verschiedensten Architekturen der Boards alle genau zu kennen.

Vereinfacht kann man sagen, daß das BIOS die wesentliche Funktionalität des Mainboards für das Betriebssystem zugänglich macht. Dazu gehören natürlich auch die verschiedenen Schnittstellen, die heutzutage selbstverständlich auf einem Mainboard integriert sind. Standardmäßig zählen dazu:

- Tastaturschnittstelle
- PS/2 Mausport (psaux)
- Zwei serielle Schnittstellen
- Eine parallele Schnittstelle
- Zwei E-IDE Schnittstellen (für bis zu 4 IDE-Geräte)
- Ein Floppy-Controller (für bis zu zwei Diskettenlaufwerke)

Optional sind womöglich noch andere Schnittstellen enthalten wie

- USB-Ports
- Sound
- SCSI
- Game-Port

Diese optionalen Schnittstellen werden in späteren Kapiteln noch genauer behandelt. In diesem Abschnitt interessieren uns die Standard-Schnittstellen des Boards.

Das BIOS ist also eine Sammlung von Software, die sich physikalisch in einem Speicherbaustein (ROM) auf dem Board selbst befindet. Die Software passt genau zu dem jeweiligen Board und ist entsprechend nicht einfach austauschbar. In der Praxis hat das BIOS ein paar unterschiedliche Aufgaben zu bewältigen, von denen Linux einige aus Geschwindigkeitsgründen umgeht. Von daher sind einige Einstellungen, die wir machen können für den täglichen Gebrauch mit Linux gar nicht wichtig, andere hingegen sind unumgänglich, da sie den Ladevorgang selbst betreffen.

### Das CMOS-Setup Programm

Jedes BIOS hat die Möglichkeit, bestimmte Einstellungen vom User verändern zu lassen. Dazu stellt es ein kleines Setup-Programm zur Verfügung, das beim Systemstart geladen werden kann. Verschiedene BIOS-Hersteller gehen dabei unterschiedliche Wege, meist wird durch eine bestimmte Taste(nkombination) während des Startvorganges - vor dem Booten des Betriebssystems - dieses Programm aktiviert. Typische Tasten(kombinationen) sind

- DEL (Entf)
- F2
- Strg-Alt-Esc

In der Regel erscheint daraufhin ein Menü, das verschiedene Auswahlmöglichkeiten bietet. Die optische Aufmachung dieses Menüs variiert von Hersteller zu Hersteller und von Version zu Version. Gemeinsam sind diesen Menüs die Einstellmöglichkeiten für die verschiedenen Peripheriegeräte, die auf dem Mainboard liegen. Alle weiteren Peripheriegeräte, die etwa über Erweiterungskarten hinzugefügt werden, können nicht mit diesem Programm eingestellt werden!

### Das Standard-Setup

Klassische Einstellmöglichkeiten finden wir meist in einem Untermenü mit Namen Standard-Setup. Dieses Menü war bei den ersten AT-Computern schon vorhanden und trägt daher diesen Namen. Hier können folgende Einstellungen vorgenommen werden:

- Einstellung des Datums und der Uhrzeit
- Einstellung, welche Diskettenlaufwerke angeschlossen sind.
- Einstellungen welche Festplatten angeschlossen sind. (Diese Einstellung bezieht sich wiederum nur auf die Platten, die an die Schnittstellen angeschlossen sind, die auf dem Mainboard integriert sind, nicht die an zusätzlichen Controllern.)
- Primäre Graphikkarte. Stammt aus einer Zeit, als es noch Graphikkarten mit unterschiedlichen Speicheradressen gab (Hercules, MDA). Steht heute praktisch grundsätzlich auf VGA/EGA.
- Fehlerbehandlung beim Booten

Wichtig sind hier die Einstellungen der Festplatten und die Fehlerbehandlung.

#### Festplatteneinstellungen

Die üblichen Mainboards haben zwei IDE Kanäle onboard, können also bis zu vier IDE Platten (oder CDROMS/DVD/Brenner) anschließen. Die Einstellungen für die Platten sind für Linux eigentlich unerheblich, da der Kernel die Controller direkt anspricht und nicht über das BIOS. Trotzdem sind ein paar Einstellungen hier von großer Bedeutung.

Festplatten werden traditionell über drei Größen klassifiziert. Die Anzahl der Zylinder (übereinanderliegende Spuren auf den Plattenoberflächen), die Anzahl der Sektoren pro Spur (die jeweils 512 Byte Speicher enthalten) und die Anzahl der Köpfe (und damit auch die Anzahl der beschreibbaren Oberflächen). Daraus errechnet sich die Kapazität einer Festplatte folgendermaßen:

> Zylinder * Köpfe * Sektoren_pro_Spur * 512 Byte

Physikalisch sind die Platten zwar heute intern etwas anders aufgebaut (so haben etwa die inneren Spuren weniger Sektoren als die äußeren), aber logisch werden sie immer noch so verwaltet. Das Problem liegt jetzt darin, daß das BIOS sich schwertut, Betriebssysteme von Platten zu booten, die mehr als 1024 Zylinder besitzen. Aus diesem Grund bieten moderne BIOSe die Möglichkeit einer alternativen Rechnung an. Wenn wir etwa die Anzahl der Zylinder halbieren, aber dafür die Anzahl der Köpfe verdoppeln (rechnerisch, nicht physikalisch), dann bekommen wir das exakt gleiche Ergebnis der obigen Rechnung. Als Nebeneffekt haben wir aber jetzt weniger als 1024 Zylinder und können problemlos booten. Dieser Modus heißt Large Block Architecture oder einfach LBA-Modus.

Trotzdem Linux das BIOS bei Plattenzugriffen umgeht, sollten wir diesen Modus für Platten mit mehr als 1024 Zylindern wählen, weil wir sonst Probleme bekommen können mit

- Partitionierungssoftware (fdisk), die immer noch auf den BIOS-Einstellungen fusst
- Bootmanagern (Lilo, Grub), die vom BIOS geladen werden müssen.

Grundsätzlich ist also für Festplatten mit mehr als 1024 Zylindern der LBA-Modus einzustellen. Wir haben dadurch keinerlei Nachteile, jedoch auch keine Probleme mehr.

#### Fehlerbehandlung

Die Einstellungen für die Fehlerbehandlung sind relativ trivial. Hier kann eigentlich nur festgehalten werden, bei welchen Fehlern das System gar nicht erst bootet. In der Regel bietet ein Setup-Programm folgende Alternativen:

- Halt on all errors
- Halt on all errors but disk
- Halt on all errors but keyboard
- Halt on all errors but disk and keyboard

Normalerweise könnten wir davon ausgehen, daß eine Einstellung Halt on all errors eine gute Idee ist, aber bei Linux ist das womöglich anders. In vielen Fällen arbeiten Linux-Server ohne eigene Tastatur. Das kann daran liegen, daß diese Server in einem Rack hängen und softwaremäßig über eine Konsole verwaltet werden, oder daß der Server sich zusammen mit anderen eine Tastatur (und einen Monitor) über eine Umschaltbox teilt. In jedem Fall kann es vorkommen, daß ein solcher Rechner bootet und dabei keine Tastatur vorfindet. Es wäre aber ärgerlich, wenn dadurch der Bootvorgang abgebrochen werden würde. Für solche Rechner empfielt es sich also, die Einstellung Halt on all errors but keyboard vorzunehmen.

### Peripheriegeräte einstellen

An einer anderen Stelle im CMOS-Setup-Programm können die Einstellungen für die weiteren Geräte vorgenommen werden, die auf dem Mainboard integriert sind. Dieser Menüpunkt heißt oft integrated peripherals. Hier können die integrierten Schnittstellen aktiviert bzw. deaktiviert werden und ihre Hardwareparameter können eingestellt werden.

Hierbei kann es naturgemäß zu Überschneidungen mit Hardwareparametern externer Erweiterungskarten kommen. Sollte eine Erweiterungskarte einen Adressbereich, einen IRQ oder DMA-Kanal benutzen wollen, der hier schon vergeben ist, so muß dafür gesorgt werden, daß alle Geräte eigene Werte bekommen. Um zu überprüfen, welche Geräte mit welchen Hardwareparametern arbeiten, stehen uns dafür unter Linux die Dateien im /proc-Verzeichnis zur Verfügung.

In manchen Fällen kann es auch sinnvoll sein, bestimmte Peripheriegeräte auf dem Mainboard ganz abzuschalten, wenn sie etwa nicht benutzt werden. Ein Rechner, der nur mit SCSI-Geräten arbeitet, muß keine IDE-Kanäle aktiviert haben. So sparen wir uns schon zwei IRQs (14 und 15). Oder ein Rechner mit integrierter Soundkarte kann diese bedenkenlos deaktivieren, wenn er als Webserver oder Internet-Router in einem 19 Zoll Schrank arbeitet und gar keine Boxen angeschlossen hat...

Auch wenn statt der integrierten Soundkarte eine andere (bessere) verwendet werden soll, bietet es sich an, die integrierte Soundkarte einfach zu deaktivieren.

### PnP und PCI Setup

Auf der Hardwareparameter-Seite wurden bereits die unterschiedlichen Zuweisungen von IO-Adressen und IRQs bei den verschiedenen Bussystemen angesprochen. Unter diesem Menüpunkt sind in Systemen, die sowohl alte (nicht Plug and Play) ISA-Karten, als auch moderne Plug and Play oder PCI Karten benutzen, ein paar Einstellungen nötig.

Wie schon erwähnt, können Plug and Play Karten (und PCI-Karten) sich selbst die passenden Hardware-Parameter aussuchen. Dabei kann es aber zu Konflikten kommen, wenn andere ISA-Karten, die nicht Plug and Play-fähig sind, die selben Parameter fest eingestellt haben. Das BIOS kann diese feste Einstellung nicht überprüfen.

Aus diesem Grund bietet das Setup-Programm die Möglichkeit, bestimmte IRQs für ISA-Karten zu reservieren, und so zu verhindern, daß Plug and Play-Karten sich diese Parameter aneignen. Wenn wir also alte und moderne Karten gleichzeitig in einem Rechner betreiben, sollten die IRQs, die die alten Karten fest eingestellt haben, hier reserviert werden.

### Weitere Einstellmöglichkeiten

Im Setup-Programm existieren noch viele weitere Möglichkeiten, die Hardware einzustellen. Dazu zählen unter anderem die Ansteuerung der Festplatten mit modernen Methoden wie PIO-Modi oder (U)DMA, das korrekte Management des Arbeitsspeichers (Zugriffsmodi, Burst, ...), die Bootreihenfolge oder der Schutz des Setup-Programms durch ein Passwort. Die Beschreibung all dieser Einstellmöglichkeiten würde den Rahmen dieser Darstellung sprengen und ist auch nicht relevant für die LPI 101 Prüfung.