PCI-Karten sind größtenteils selbst-konfigurierend - der
Computer und das Betriebssystem werden den Karten die benötigten
Ressourcen zuweisen.
Interrupts können auf dem PCI-Bus geteilt werden. Nicht nur, dass
sie geteilt werden können, das System wird sogar bessere Leistung haben,
wenn die IRQs geteilt werden - insbesondere auf i386-Systemen.
Es gibt einige verschiedene PCI-Busstandards.
Du wirst ab und zu eine PCI2.2-Spezifikationskarte finden, die einfach
nicht in einem PCI2.1-Spezifikationssystem laufen will. Viele Karten mit
Onboardbrücken (zum Beispiel Multiport-Netzwerkkarten) werden außerdem
in alten Systemen nicht vernünftig laufen.
Der PCI-Bus unterstützt zwei Spannungslevel, 3,3 V und 5 V. Karten,
die mit 3,3 V Spannung funktionieren, haben eine zweite Kerbe in
ihrem PCI-Connector. Die meisten PCI-Karten verwenden 5 V Spannung, die
von den meisten Computern genutzt wird. Die Singleboard-Computer von
Soekris (Net45x1 und Net4801) sind häufig angetroffene Computer, die nur
3,3 V Spannung unterstützen.
12.1.2 - ISA-Karten
ISA-Karten können keine Ressourcen teilen und müssen
normalerweise manuell so eingerichtet werden, dass die Einstellungen
keine Konflikte mit anderen Geräten im System verursachen.
Einige ISA-Karten sind »Plug and Play«
(isapnp(4))
- wenn du dennoch irgendwelche Probleme mit diesen Geräten hast, stelle ihre
Konfiguration in deiner
dmesg(8)
sicher - ISAPnP funktioniert nicht immer so wie gewollt.
Wenn du eine Wahl hast, ist den meisten Leuten generell am besten damit
geraten, ISA-Karten im Vorzug für PCI-Karten zu vermeiden. ISA-Karten
sind schwerer zu konfigurieren und haben einen größeren negativen
Effekt auf die Leistung des Systems.
12.1.3 - Mein Device wird »erkannt«, sagt aber »not
configured« in dmesg
Kurz gesagt bedeutet das, dass dein Device nicht von deinem Kernel
unterstützt wird, den du zurzeit verwendest, sodass du nicht in der Lage
sein wirst, es zu benutzen.
PCI und viele andere Gerätetypen bieten Identifizierungsinformationen an,
sodass das OS Devices korrekt erkennen und unterstützen kann.
Erkennung hinzuzufügen ist einfach - Unterstützung häufig
nicht. Hier ist ein Teil einer dmesg mit zwei Beispielen von »not configured«
Devices:
...
vendor "Intel", unknown product 0x5201 (class network subclass ethernet,
rev 0x03) at pci2 dev 9 function 1 not configured
...
"Intel EE Pro 100" rev 0x03 at pci2 dev 10 function 0 not configured
...
Das erste Device (eine Netzwerkkarte) hatte ihren Vendorcode
identifiziert und der generelle Typ der Karte wurde ermittelt - nicht
aber das genaue Modell der Karte. Das zweite Beispiel war eine andere
Netzwerkkarte; diese hat ein Entwickler gesehen und hat sie in die
Identifikationsdatei eingetragen, die genutzt wird, um die Karte zu
identifizieren. In beiden Fällen jedoch werden die Karten nicht
funktionieren, da beide als »not configured« angezeigt
werden, was bedeutet, dass kein Treiber für diese Karten zuständig ist.
Was kann ich mit einem »not configured« Device anfangen?
Wenn das Device oder die Karte, die du siehst, keine ist, die du
benötigst, kannst du die »not configured« Devices einfach
ignorieren, da sie deinem System nicht schaden werden. Einige Devices
für besondere Zwecke sind bewusst unkonfiguriert geblieben, sodass das
BIOS des Systems sie handhaben kann.
In einigen Fällen ist es einfach eine Variation eines bereits
unterstützten Devices, in dessen Fall es relativ einfach für einen
Entwickler ist, Unterstützung für diese neue Karte hinzuzufügen.
In anderen Fällen könnte es ein gar nicht unterstützter Chipsatz oder
eine nicht unterstützte Implementation sein (wie in dem Beispiel oben).
In diesem Fall muss ein neuer Treiber geschrieben werden, was
vielleicht nicht einmal möglich ist, wenn das Device nicht vollständig
dokumentiert wurde. Du kannst natürlich gerne selbst einen Treiber für
das Device schreiben.
Wenn du einen Installationskernel verwendest, könnte das Device
von dem Installationsmedium aus, das du verwendest, nicht unterstützt
werden, eventuell aber durchaus von einer anderen Bootdisk.
Dies ist häufig bei Anwendern mit einigen weit verbreiteten SCSI-Karten
der Fall, die die Fußnoten der
i386-Plattformseite falsch lesen und
alle Bootdisketten ausprobieren, auf denen ihre SCSI-Karte nicht
unterstützt wird, statt die eine zu verwenden, mit der sie laufen würde.
Wenn du einen modifizierten Kernel verwendest, könntest du
eventuell die Unterstützung für ein Device entfernt haben, das du
nun brauchst. Devices von einem Kernel zu entfernen ist normalerweise
eine schlechte Idee. Dies ist der Grund
warum.
Bevor du ein »not configured« Device meldest, stelle
sicher, dass du zuerst den aktuellsten
Snapshot ausprobiert hast, da die
Unterstützung vielleicht bereits hinzugefügt worden ist und überprüfe
die Mailinglistenarchive, um zu sehen,
ob dieses Thema bereits besprochen wurde. Denke jedoch daran, dass wenn
du ein älteres OpenBSD-Release verwendest, du normalerweise ein Upgrade
ausführen musst, um die Vorzüge eines neu geschriebenen Treibers
nutzen zu können.
12.1.4 - Ich habe eine Karte, die als »unterstützt« aufgelistet ist
aber nicht funktioniert!
Unglücklicherweise verwenden viele Hersteller eine Produktmodellnummer,
um auf eine Marktposition zu deuten, statt auf die technische Natur
eines Produkts. Aus diesem Grund kann es sein, dass du ein Produkt mit
dem gleichen Namen oder der gleichen Modellnummer eines Produktes
kaufst, die auf den Plattformseiten
aufgelistet wird, aber am Ende mit einem völlig anderen Produkt da
stehst, das eventuell nicht mit OpenBSD funktioniert.
Zum Beispiel basierten viele frühe Drahtlosnetzwerkkarten auf dem
Prism2-Chipsatz unter Verwendung des
(wi(4))-Treibers.
Als die kostengünstigeren Chips aber später verfügbar wurden, änderten
viele Hersteller ihr Produkt, sodass Chips verwendet wurden, für die
keine Opensource-Treiber existieren, ohne jemals die Modellnummer
geändert zu haben. Drahtlosnetzwerkkarten sind unglücklicherweise weit
davon entfernt, das einzige Beispiel hierfür zu sein.
12.1.5 - Werden WinModems unterstützt?
WinModems sind günstige Modems, die darauf angewiesen sind, dass der
Prozessor einen Großteil der Signalverarbeitung durchführt, die
normalerweise in der Hardware eines echten Modems gemacht werden.
Aus der Tatsache heraus, dass es eine große Anzahl inkompatibler
und typischerweise nicht dokumentierter WinModemchips gibt, existiert
keine Unterstützung für WinModems in OpenBSD und es ist
unwahrscheinlich, dass sich das ändern wird.
12.1.6 - Was ist mit der Unterstützung für Adaptec-RAID (aac)
geschehen?
Adaptec hat es abgelehnt, uns nützliche und detaillierte Dokumentationen
über ihre FSA-basierten
(aac(4))
RAID-Controller zu geben.
Da diese RAID-Controller anscheinend sehr fehlerbehaftet sind, ist diese
Dokumentation für einen einsatzfähigen Treiber zwingend erforderlich.
Jedoch war dieser Treiber so unzuverlässig, dass wir ihn aus dem
GENERIC-Kernel entfernt haben.
Ich kann aber meinen eigenen Kernel mit aac(4)-Unterstützung
kompilieren, oder nicht?
Sicher.
Aber welchen Teil von »unzuverlässig« hast du nicht verstanden?
Dies ist keine »experimentelle« Funktionalität, dies ist ein
Treiber, von dem bekannt ist, dass er Fehler verursacht. Vielleicht
funktioniert er mit ein paar Varianten dieser Hardware so weit, dass
er verwendet werden kann, aber wir empfehlen nicht, Daten auf ihm
abzulegen.
12.1.7 - Meine ami(4)-Karte unterstützt nur eine logische
Platte!
Es gibt einen uns bekannten Fehler mit
ami(4),
der Datenverfälschung hervorruft, wenn mehr als nur ein Volume mit
einigen der Controller verwendet werden.
Controller, die dieses Problem aufweisen, wurden von OpenBSD auf
maximal eine logische Platte begrenzt, was zu einer Nachricht in deiner
dmesg führt, die wie folgt aussieht:
ami0: FW A.04.03, BIOS vA.04.03, 4MB RAM
ami0: 3 channels, 16 targets, 2 logical drives
ami0: firmware buggy, limiting access to first logical disk
scsibus0 at ami0: 1 targets
12.2 - DEC Alpha
[bisher nichts]
12.3 - AMD 64
12.3.1 - Kann ich OpenBSD/amd64 mit meinem Intel P4 einsetzen?
Für viele neuere Prozessoren lautet die Antwort »Ja«.
Leider ist es schwer herauszufinden, welcher Intel-Prozessor den
amd64-Befehlssatz versteht und welcher nicht. Meist ist es einfacher,
es auszuprobieren und zu sehen, ob es läuft oder nicht.
12.3.2 - Kann ich meine i386-Programme unter OpenBSD/amd64
aufrufen?
Nein.
OpenBSD/amd64 ist vollständig von OpenBSD/i386-Plattform getrennt und
zum aktuellen Zeitpunkt besteht keine Binärkompatibilität. Da OpenBSD
den Einsatz von freier Software fördert, besteht auch kein großes
Interesse an Binärkompatibilität zwischen den Plattformen seitens der
Entwickler.
Beachte, dass die OpenBSD/amd64- und OpenBSD/i386-Bootloader
(in OpenBSD 4.2) den jeweils anderen Kernel
laden kann, so dass es einfacher ist, das System mit der »anderen«
Plattform neuzustarten. Das System muss jedoch zuvor vollständig
gelöscht und neu eingerichtet werden - übrig gebliebene Programme von
der »vorherigen« Installation werden dein Leben sehr wahrscheinlich
unnötig schwer machen.
12.3.3 - Ist es immer vorteilhaft, OpenBSD/amd64 zu verwenden, wenn
der Prozessor dazu in der Lage ist?
Nicht immer.
Es gibt einige Gründe, warum jemand lieber OpenBSD/i386 statt
OpenBSD/amd64 einsetzen möchte, selbst wenn die Hardware den amd64-Code
unterstützt:
i386-Binärkompatibilität (mit anderen Betriebssystemen) wird
benötigt.
Es werden Applikationen eingesetzt, die noch nicht »64 bit clean«
sind.
Das Festplattensystem soll auch in anderen Maschinen betrieben
werden können.
Bei der Verwendung bestimmter Applikationen und Hardware kann
OpenBSD/i386 schneller sein als OpenBSD/amd64. Nur sehr wenige
Anwender werden das feststellen können. Es wird bereits daran
gearbeitet, so viele derartige Situationen wie möglich zu eliminieren.
12.4 - ARM-basierte Maschinen
[bisher nichts]
12.5 - HP300
[bisher nichts]
12.6 - HPPA
[bisher nichts]
12.7 - i386
12.7.1 - ISA NICs
Da OpenBSD auch auf älterer Hardware gut läuft, verwenden Benutzer
häufig ISA-NICs mit OpenBSD-Systemen. ISA-Hardware benötigt sehr viel
mehr Konfiguration und Verständnis als es mit PCI-Hardware der Fall ist.
Du kannst normalerweise nicht einfach die Karte in den Computer stecken
und erwarten, dass sie auf magische Weise funktioniert. In vielen
Maschinen musst du die Ressourcen, die die Karte verwendet, im BIOS des
Systems reservieren, wenn deine ISA-Karte sich nicht in einem
»Plug 'n' Play«- (PNP-)Modus befindet.
3Com 3C509B ep(4)
Dies ist eine exzellent funktionierende ISA-NIC, die vom
ep(4)-Treiber
unterstützt wird. Die B-Version kann von der Nicht-B-Version anhand der
Beschriftung auf der Karte und anhand des größeren Hauptchips auf der
Karte (ungefähr 2,5 cm auf einer Seite für die B-Version gegenüber
2 cm auf einer Seite für die ältere Version) unterschieden werden
und wird bessere Leistung auf einem Loaded- oder
Dualnetzwerkkartensystem liefern. Der 3C509B wird in einem PNP-Modus
konfiguriert ausgeliefert, der unglücklicherweise nicht mit Standards
konform ist und Probleme in OpenBSDs
isapnp(4)-Unterstützung hervorruft.
Die Karte wird zuerst als ein Nicht-PNP-Device aufgefasst und dann, wenn
später die PNP-Unterstützung wieder on-line kommt, in einer extra NIC
resultieren, die in der dmesg angezeigt wird. Dies mag gut
funktionieren, könnte aber auch zu anderen Problemen führen. Es wird
dringend empfohlen, dass der PNP-Modus der 3C509B-Karten ausgeschaltet
und manuell auf nicht konfliktverursachende Einstellungen verändert
wird, die unter Verwendung der DOS-basierten
3com-Konfigurationsanwendungen vor der Konfiguration eingerichtet
werden können.
Der ep(4)-Treiber wird die Karten mit irgendeiner Hardwarekombination
aufnehmen, die keinen Konflikt mit anderen Devices im System verursacht.
Wenn du mehrere 3C509-Karten in deinem System hast, wird empfohlen, dass
du die Rückseite der Karte mit der MAC-Adresse kennzeichnest und die
dmesg verwendest, um zu ermitteln, welche welche ist.
Bedenke, dass die 3C509, die 3C905 und die 3C590 sehr oft verwechselt
werden. Die 3C509 ist eine 10-Mbps-ISA-Karte, die 3C905 und 3C590 sind
PCI-Karten.
NE2000
Die originale NE2000-NIC wurde in der Mitte der 1980er von Novell
entwickelt. Seitdem haben viele Hersteller Karten produziert, die sehr
ähnlich sind, die normalerweise NE2000-kompatible oder Klone genannt
wurden. Die Leistungen dieser Klonkarten variieren stark. Während einige
ältere NE2000-kompatible Karten sehr gut liefen, liefen viele der zur
Zeit erhältlichen schlecht. NE2000-kompatible sind durch den
ne(4)-Treiber
unter OpenBSD unterstützt.
OpenBSD wird einige ISAPNP-fähige NE2000-kompatible Karten gut
handhaben, wenn der ISAPNP-Modus eingeschaltet ist. Andere Karten müssen
entweder mit Jumpern oder DOS-basierten Konfigurationsanwendungen
eingerichtet werden. Da die originalen NE2000-Karten unglücklicherweise
weder eine Softwarekonfiguration noch ISAPNP-Unterstützung hatten,
existieren keine Standards hierfür - du benötigst die Anwendung, die
ursprünglich mit der spezifischen Netzwerkkarte mit ausgeliefert worden
ist.
Diese kann oft schwer zu erhalten sein.
Der ne(4)-Treiber unterstützt drei Konfigurationen der
ISA-NE2000-Karte im GENERIC-OpenBSD-Kernel:
ne0: port 0x240 irq 9
ne1: port 0x300 irq 10
ne2: port 0x280 irq 9
Wenn diese Einstellungen nicht hinnehmbar sind, kannst du sie mit Hilfe
der User Kernel Configuration (UKC) oder
anhand des Kompilieren eines angepassten Kernels
einstellen.
Bedenke, dass die ne(4)-Treiber recht plump sind - nur der E/A-Port
wird untersucht und wenn einer der oben angegeben E/A-Adressen entdeckt
wird, wird der dazugehörige IRQ angenommen.
Der tatsächliche IRQ der Karte im Fall der ISA-ne(4)-Treiber wird von
dmesg(8)
wiedergeben. Wenn dies nicht der aktuelle IRQ ist, auf den deine Karte
eingestellt wurde, wird es nicht funktionieren.
Bedenke, dass es Nicht-ISA-Karten gibt, die den ne(4)-Treiber verwenden
- PCI- und PCMCIA-ne(4)-Karten existieren. Diese Hinweise treffen nicht
auf diese zu; diese Devices werden automatisch konfiguriert.
12.7.2 - OpenBSD will nicht auf meinem 80386/80386SX/80486SX-System
laufen
80386SX/DX
Unterstützung für die 80386DX- und 80386sx-Prozessoren wurde mit dem
OpenBSD-Release 4.2 eingestellt. Abgesehen von den Einschränkungen des
80386-Chips waren die Systeme einfach zu langsam und hatten nur selten
genug RAM und die benötigte FPU, um mit OpenBSD funktionieren zu
können.
80486SX
Der 80486SX-Chip war eine billige Version des 80486, dem die
Unterstützung für Hardwarefließkommazahlen (wie dem 80386) fehlte, die
OpenBSD benötigt. Zum Glück sind volle 80486DX-Chips recht
häufig verfügbar und für die meisten Systeme ein einfaches Upgrade.
80486DX und neuere Chips funktionieren mit OpenBSD einwandfrei.
12.7.3 - Meine dmesg zeigt mehrere Devices, die sich den gleichen
Interrupt (IRQ) teilen!
Dies ist völlig hinnehmbar und in der Tat für PCI-Karten sogar
erwünscht. Dies ist ein Designfeature des PCI-Busses. Einige Leute
werden sagen, dass das Teilen der Interrupt Requests (IRQs)
schlecht ist, wobei sie die Situation entweder mit dem ISA-Bus (bei dem
das Teilen der IRQs nicht erlaubt ist) oder es mit früherer Erfahrung
mit kaputter Hardware oder Software verwechseln.
ISA-Karten können keine IRQs teilen. Wenn du ISA-Karten findest,
die IRQs teilen, musst du das Problem beheben.
12.7.4 - Meine Tastatur/Maus hängt sich ständig auf (oder
spielt verrückt)!
Dies wird meistens beobachtet, wenn man eine Switchbox (oft auch
KVM-Switch genannt) verwendet, um mehrere Computer an eine Tastatur,
einen Monitor und eine Maus anzuschließen. Du kannst mit
unterschiedlichen Marken- und Designswitchboxen experimentieren, aber
OpenBSD scheint sensibler auf das Wechseln der Maus zu reagieren als
andere Betriebssysteme. Das Problem ist normalerweise nur das
Wechseln der Maus. Wenn du keine Maus verwendest, ist die Lösung
einfach: Schließe kein Mauskabel an den Computer an. Wenn du eine Maus
verwendest, wäre eine Lösung, eine Maus pro Computer zu verwenden und
nur die Tastatur und den Monitor zu wechseln. Vielleicht hilft es
bereits, wenn du einen PS/2-zu-USB-Mausadapter verwendest (sodass
OpenBSD eine USB-Maus erkennt). Wenn du nur Konsolenzugriff auf die
Maschine haben möchtest, solltest du stattdessen eine
serielle Konsole in Betracht ziehen.
12.8 - Landisk
[bisher nichts]
12.9 - Luna88k
[bisher nichts]
12.10 - Mac68k
[bisher nichts]
12.11 - MacPPC
12.11.1 - Wieso ist mein bm(4)-Treiber so langsam?
Die
bm
Treiber, die den BMAC-Chip unterstützen, der auf einigen MacPPC-Systemen
verwendet wird (dazu zählen auch frühe iMacs), haben ein Problem, wenn
sie bei 100 Mbps laufen. Es wird dringend empfohlen, dass du die Treiber
auf 10 Mbps setzt, indem du eine "media 10baseT"-Option in
deiner /etc/hostname.bm0-Datei verwendest oder sie auf andere
Weise auf 10 Mbps bei deinem Hub oder Switch zwingst.
12.12 - MVME68k
[bisher nichts]
12.13 - MVME88k
[bisher nichts]
12.14 - SGI
[bisher nichts]
12.15 - SPARC
[bisher nichts]
12.16 - UltraSPARC (sparc64)
12.16.1 - Meine UltraSPARC will nicht vom Floppy Image booten
Nur die Ultra 1/1e und Ultra 2 können irgendein OS von
Diskette booten. Verwende stattdessen CD-ROM, Miniroot oder
Netzwerkboot, um deine Installation durchzuführen.
12.16.2 - Ich bekomme in disklabel die Meldung "partition extends
past of unit"
Auf sparc- und sparc64-Systemen kann das BSD-Disklabel keine
Plattengeometrie verwalten, die größer als 8 GB ist - individuelle
Disklabeleinträge können aber größer sein.
Jedes Mal, wenn du disklabel(8) ausführst, werden die Disklabeleinträge
überprüft, ob sie gültig sein können oder nicht. Disklabel beruft sich
dabei auf die Plattengeometrie, von der ausgegangen werden muss, dass
sie richtig ist. Das kannst du mit dem »g«-Kommando des
konsolengeführten Editors von
disklabel(8) machen und sagen, dass
die »[d]isk geometry« verwendet werden soll:
# disklabel -E wd0
# Inside MBR partition 3: type A6 start 63 size 17912412
[...]
Initial label editor (enter '?' for help at any prompt)
> g
[d]isk, [b]ios, or [u]ser geometry: [d] d
> w
> q
Du wirst zwar weiterhin die Warnungen sehen, doch wie gewünscht die
Platte konfigurieren. Eine ordentliche Lösung müsste kompatibel zu
bestehenden Betriebssystemen sein und zusätzlich mit Solaris
verträglich sein, das auf größeren Platten läuft; eine solche Lösung
wurde bisher aber noch nicht ausgearbeitet.
12.17 - DEC VAX
12.17.1 - Kann ich den SIMH-VAX-Simulator verwenden?
Ja!
Der SIMH-VAX-Simulator
kann verwendet werden, um eine echte VAX gewissermaßen zu emulieren.
Anweisungen können hier nachgelesen
werden.
12.18 - Sharp Zaurus
12.18.1 - USB-Geräte funktionieren nicht ordnungsgemäß
Der Zaurus hat nur sehr wenig Spannung am USB-Port anliegen, so dass
viele USB-Geräte nicht funktionieren, wenn sie direkt am Zaurus
angeschlossen werden. Du musst einen USB-Hub mit Stromversorgung
benutzen, um diese Geräte zu betreiben.