claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 02/2005   »   Ausgabe bestellen

3D-Hardwarebeschleunigung unter Kernel 2.6

Flotte Kartenspiele

von Mirko Dölle


Hardware-beschleunigte 3D-Unterstützung ist für anspruchsvolle Spiele unerlässlich, die Einrichtung aufgrund proprietärer Treiber der Karten-Hersteller jedoch sehr umständlich. Dieser Artikel erklärt die Einrichtung der aktuellen ATI-Radeon-Treiber unter Kernel 2.6.

So lange es nur darum geht, ein buntes Bild auf dem Monitor anzuzeigen, kommen heutige Distributionen mit fast jeder Grafikkarte zurecht. Dafür sorgen nicht zuletzt die Standards der VESA (Video Electronics Standards Association), die praktisch alle Grafikkarten und Monitore unterstützen.

Problematisch wird es jedoch, wenn es um Spezialfunktionen der jeweiligen Grafikkarte geht. Allem voran die 3D-Hardwarebeschleunigung ist ein chronisches Problem: Das liegt daran, dass die großen Chip-Hersteller Nvidia und ATI die Ansteuerung der Chips nicht offen legen, sondern als Betriebsgeheimnis ansehen. Ohne exakte Informationen zu Timing und Ansteuerung können jedoch keine freien Treiber entstehen. Bis vor etwa einem Jahr war ATI noch die große Ausnahme, Grafikkarten bis einschließlich der 8500er-Serie waren öffentlich dokumentiert und wurden von einem Open-Source-Treiber problemlos unterstützt.

Betriebsgeheimnisse

Mit den aktuellen 9000er-Chipsätzen von ATI ist man jedoch genauso auf Treiber des Herstellers angewiesen wie bei Nvidia-Grafikkarten. Aufgrund der großen Unterschiede zwischen den Distributionen ist es für die Grafikkarten-Hersteller jedoch schwer, alle Distributionen zu bedienen. Nvidia gelingt dies im Moment noch am besten.

ATI hatte längere Zeit Probleme mit Treibern für den aktuellen Kernel 2.6, bis Redaktionsschluss gab es direkt vom Hersteller keine passenden Treiberpakete für die aktuellen Versionen, sondern nur welche für den älteren Kernel 2.4.

Die Lücke schließen SuSE und freie Programmierer des Fedora-Teams mit speziellen Paketen, die Sie bei Bedarf nachinstallieren müssen. Benutzer von Mandrake Linux 10.1 sind fein raus, Mandrake liefert einen relativ aktuellen ATI-Treiber standardmäßig mit aus und aktiviert bei der Installation automatisch die 3D-Unterstützung.

ATI Radeon unter Fedora Core 2

ATI-Grafikkarten mit älteren Chipsätzen wie dem Radeon 9200 unterstützt Fedora Core 2 ohne weitere Anpassungen. Ob Ihre Grafikkarte bereits mit Hardwarebeschleunigung läuft, verrät Ihnen der Kasten Nagelprobe für 3D.

Funktioniert die 3D-Hardwarebeschleunigung nicht, benötigen Sie den proprietären Treiber von ATI. Die Installation des Original-ATI-Treibers scheitert daran, dass das ATI-Installationsprogramm Kernel 2.6 nicht unterstützt, weshalb einige Entwickler von rpm.livna.org spezielle Pakete für Fedora Core 2 zusammengestellt haben.

Bei diesen Paketen handelt es sich um so genannte Third Party Software, die aus Lizenz- oder Patentgründen nicht vom Fedora-Projekt selbst angeboten werden kann. Die ATI-Treiber sind derzeit noch als "testing" eingestuft, funktionieren also auf einigen Systemen, sind jedoch noch nicht vollständig erprobt.

Neuer Kernel

Ein großes Problem ist, dass es den ATI-Treiber nicht für den Original-Kernel 2.6.5 von Fedora Core 2 gibt, sondern nur für Kernel 2.6.9. Beim Kernel handelt es sich jedoch um das Herz von Linux -- ein Update ist daher extrem riskant, wenn der Linux-Kernel nicht startet oder mit Ihrem Rechner Probleme hat, läuft das in aller Regel eine Neuinstallation von Fedora Core heraus.

Der erste Meilenstein ist das Kernel-Update. Nur wenn Sie dies erfolgreich abschließen, können Sie anschließend die Treiber und Zusatzprogramme installieren:

  1. Laden Sie mit Mozilla von [1] das RPM-Paket von Kernel 2.6.9 herunter und speichern Sie es im Verzeichnis /tmp. Anschließend beenden Sie Mozilla.
  1. Rufen Sie mit der Tastenkombination [Alt+F2] den Ausführen-Dialog auf und geben Sie als Befehlszeile "kdesu konsole" ein. Nach Abfrage des Root-Passworts öffnet sich eine Textkonsole, in der Sie die Berechtigungen des Administrators haben.
  1. Geben Sie an der Kommandozeile den Befehl "rpm -Uhv /tmp/kernel-2.6.9*.rpm" ein. Damit installieren Sie den neuen Kernel.
  1. Schließen Sie die Konsole und starten Sie den Rechner neu.

Der heikle Moment ist der nächste Systemstart. Entscheidend ist, dass Ihr Fedora-System wieder bis zur grafischen Oberfläche startet und Sie sich anmelden können. Hat dies nicht funktioniert, bleibt Ihnen nur, sich an einen erfahrenen Anwender mit fundierten Linux-Kenntnissen oder einen Administrator zu wenden. Eine gute Anlaufstelle ist Ihre lokale Linux User Group. Sind Sie auf sich allein gestellt, bleibt ihnen nur eine Neuinstallation.

Hat der Neustart geklappt, sollten Sie kurz kontrollieren, ob tatsächlich der neue Kernel läuft. Dazu schalten Sie kurz mit [Strg+Alt+F1] auf die Textkonsole um, in der zweiten Zeile muss die Kernel-Version 2.6.9-1.6_FC2 genannt sein. Zurück auf die grafische Oberfläche gelangen Sie mit [Strg+Alt+F7].

Treiberinstallation

Die abschließende Installation der zusätzlichen Kernel-Module für Ihre ATI-Grafikkarte und der Treiber für das grafische System nehmen Sie wieder auf der grafischen Oberfläche vor. Melden Sie sich dazu wie üblich als Benutzer an.

  1. Laden Sie mit Mozilla von [2] und [3] die RPM-Pakete mit den Kernel-Modulen für Kernel 2.6.9 sowie die ATI-Treiber für das grafische System herunter und speichern Sie beides im Verzeichnis /tmp. Anschließend beenden Sie Mozilla.
  1. Rufen Sie mit der Tastenkombination [Alt+F2] den Ausführen-Dialog auf und geben Sie als Befehlszeile "kdesu konsole" ein. Nach Abfrage des Root-Passworts öffnet sich eine Textkonsole, in der Sie die Berechtigungen des Administrators haben.
  1. Geben Sie an der Kommandozeile den Befehl "rpm -Uhv /tmp/kernel-module*.rpm /tmp/ati-fglrx*.rpm" ein. Damit installieren Sie beide Pakete.
  1. Schließen Sie die Konsole und starten Sie den Rechner neu.

Erkennt der Treiber Ihre Karte korrekt, startet erneut die grafische Oberfläche und fordert Sie zum Einloggen auf. Dann prüfen Sie, wie im Kasten "Nagelprobe für 3D" beschrieben, ob die Hardware-Beschleunigung wirklich funktioniert.

Rückwärtsgang

In einigen Fällen wird das grafische System jedoch den Dienst verweigern. Das tritt immer dann auf, wenn Ihr jeweiliger Grafikchip vom ATI-Treiber nicht oder noch nicht unterstützt. Fedora versucht noch einige male, in den grafischen Modus umzuschalten, gibt aber schließlich auf und fragt Sie mit einer verstümmelte Meldung auf dem Bildschirm, ob Sie die Logs einsehen möchten. Dies verneinen Sie. Die nächste Meldung, dass Sie GDM von Hand neu starten müssen, ignorieren Sie und bestätigen mit OK.

Sie befinden sich nun auf der Textkonsole. Das ist kein Grund zur Panik, die Textkonsole entspricht genau dem, was Sie von der KDE-Konsole kennen. Der einzige Unterschied ist, dass Sie sich auf der Textkonsole erst einloggen müssen. Melden Sie sich als "root" an und geben Sie dann das Root-Passwort ein. Bei der Passworteingabe erscheinen keine Sternchen auf dem Bildschirm und der Cursor bewegt sich ebenfalls nicht -- dies soll verhindern, dass jemand auch nur die Länge Ihres Passworts ausspähen kann. Haben Sie Ihr Root-Passwort eingegeben, drücken Sie [Enter].

Nun müssen Sie das grafische System wieder auf den Radeon-Treiber umstellen. Dazu geben Sie folgenden Befehl ein:

system-config-display --set-driver=radeon

Nach wenigen Sekunden startet nun die grafische Oberfläche und Sie können sich wie gewohnt anmelden. Die Treibereinstellung wird übrigens automatisch gespeichert, so dass Sie beim nächsten Rechnerstart wie gewohnt gleich zur grafischen Anmeldung gelangen.

Radeon unter SuSE Linux

Die ATI-Treiber für SuSE Linux packt der Nürnberger Hersteller selbst und stellt sie bei [4] zum Download. Bei Redaktionsschluss gab es jedoch noch keine RPM-Pakete für SuSE Linux 9.2, so dass sich die Anleitung auf die Installation unter SuSE Linux 9.1 beschränken muss. Es ist aber davon auszugehen, dass sich am Installationsprozess nichts gravierendes verändert, so dass Sie in der Lage sein sollten, bei Erscheinen der Pakete für SuSE Linux 9.2 diese Anleitung auf Ihrem System nachzuvollziehen.

  1. Öffnen Sie den Konqueror durch einen Klick auf das Browser-Symbol in der KDE-Leiste. Geben Sie die Adresse aus [4] ein.
  1. Konqueror zeigt Ihnen nun den Inhalt des Verzeichnisses auf dem FTP-Server von SuSE an. Dort finden Sie drei Dateien, zwei RPM-Pakete und eine (englische) Beschreibung. Klicken Sie auf das Paket mit dem Namen fglrx. Konqueror lädt diese Datei im Hintergrund herunter und zeigt ihnen eine kurze Inhaltsbeschreibung an. Oberhalb der Beschreibung klicken Sie auf die Schaltfläche Install package with YaST.

  1. Sie werden nach dem Root-Passwort gefragt, anschließend startet YaST und installiert das Treiberpaket. Nach der Installation beendet sich YaST selbst.
  1. Gehen Sie im Konqueror eine Seite zurück, bis Sie wieder den Inhalt des FTP-Verzeichnisses sehen. Dann klicken Sie auf das RPM-Paket mit dem Namen km_fglrx.
  1. Konqueror lädt das Paket mit den Kernel-Modulen im Hintergrund herunter und bietet Ihnen an, es mit YaST zu installieren. Klicken Sie wieder auf die Schaltfläche Install package with YaST.

  1. Sie werden nach dem Root-Passwort gefragt, anschließend startet YaST und installiert die Kernel-Module. Nach der Installation beendet sich YaST selbst.

Damit ist die Installation der Pakete abgeschlossen, weiter geht es mit der Konfiguration der grafischen Oberfläche:

  1. Öffnen Sie mit [Alt+F2] das Ausführen-Fenster und geben Sie als Befehl ein: kdesu "sax2 -r -m 0=fglrx -b /usr/X11R6/lib/sax/profile/firegl"
  1. Nach Abfrage des Root-Passworts startet das Einrichtungsprogramm SaX2. Durch die Parameter auf der Kommandozeile wurde der ATI-Treiber bereits für Ihre Karte ausgewählt. Klicken Sie, ohne irgend welche Änderungen zu machen, auf Abschließen.
  1. SaX2 bietet Ihnen nun an, die Einstellungen zu testen. Klicken Sie auf die entsprechende Schaltfläche. Ist das Testbild nicht zu sehen oder meldet SaX2 einen Fehler, funktioniert der ATI-Treiber nicht mit Ihrer Grafikkarte und Sie müssen SaX2 abbrechen, um nicht die vorhandenen funktionierenden Einstellungen zu gefährden.
  1. Die 3D-Unterstützung ist während des Tests noch nicht aktiv, was SaX2 mit dem durchgestrichenen 3D-Schild symbolisiert. Dies ist normal, die 3D-Unterstützung aktivieren Sie später.
  1. Speichern Sie die Einstellungen, dann beenden Sie SaX2 und starten den Rechner neu.

Nachdem der Rechner neu gestartet ist, rufen Sie SaX2 erneut wie oben beschrieben über das Ausführen-Fenster auf:

  1. In der Rubrik Anzeige in Abbildung 1 sollten Sie die Einstellungen für den Unterpunkt Grafikkarte noch einmal überprüfen, rechts neben der Typenbezeichnung Ihrer Grafikkarte muss "fglrx" genannt sein. Steht dort "radeon", müssen Sie die vorangegangenen Schritte wiederholen.
  1. Klicken Sie nun unter Anzeige (Abbildung 2) auf den Eintrag 3D-Beschleunigung und anschließend auf Konfiguration ändern.
  1. Aktivieren Sie im folgenden Dialog die 3D-Unterstützung. SaX2 warnt Sie dass, dies zu Instabilitäten führen kann, aktivieren Sie die 3D-Unterstützung aber trotzdem. Klicken Sie dann auf Fertig, damit kehren Sie zum SaX2-Eingangsschirm zurück.
  1. Klicken Sie auf Abschließen. SaX2 möchte nun die Einstellungen testen. Übergehen Sie diesen Test, indem Sie direkt auf Speichern klicken. Anschließend beendet sich SaX2 selbst.

Abbildung 1: Im rechten Teil des Fensters, neben der Bezeichnung der Grafikkarte, zeigt SaX2 unter SuSE Linux den eingestellten Grafiktreiber an. Der Treiber fglrx ist der beschleunigte von ATI, radeon wäre der unbeschleunigte.

Abbildung 2: Die 3D-Beschleunigung ist standardmäßig deaktiviert, weil SuSE Linux den Treiber nicht als stabil einstuft. Nachdem sie die 3D-Unterstützung aktiviert haben, dürfen Sie die Einstellungen nicht erst testen, sondern müssen die Konfiguration direkt speichern.

Nach dem nächsten Neustart der grafischen Oberfläche oder des Rechners steht Ihnen die 3D-Hardware-Beschleunigung zur Verfügung, wie Sie das überprüfen können, finden Sie im Kasten "Nagelprobe für 3D".

Rückabwicklung

Es ist zwar unwahrscheinlich, dass die Konfiguration derart schief läuft, dass die grafische Oberfläche nicht mehr startet, es ist jedoch möglich. In dem Fall schalten Sie einfach mit [Strg+Alt+F2] auf die Textkonsole. Diese unterscheidet sich kaum von dem, was Sie unter KDE als Konsole kennen, mit Ausnahme der Anmeldung. Geben Sie als Login "root" an und bei Aufforderung Ihr Root-Passwort, wobei das Passwort komplett verdeckt eingegeben wird -- auf dem Bildschirm erscheinen keine Sternchen oder sonstige Zeichen, damit niemand die Länge Ihres Passworts ablesen kann.

Sind Sie angemeldet, rufen Sie yast auf. Das Programm startet mit einer Art Textmenü, das Sie mit den Cursor-Tasten, [Tab] und [Enter] bedienen. In der Rubrik Hardware finden Sie Grafikkarte und Monitor, womit Sie das grafische System erneut konfigurieren.

Mehr Speed für alle?

Die Hardware-Beschleunigung ist nach wie vor für alle Spiele obligatorisch -- im Alltagsbetrieb ist die jedoch überflüssig. Problematisch wird es dann, wenn die Treiber nicht stabil genug für den Dauerbetrieb sind: ATIs aktueller Treiber stürzt zum Beispiel nach einer Stunde Quake 3 spielen reproduzierbar ab. Im Alltagsbetrieb sind solch häufige Abstürze nicht zu tolerieren, weshalb Sie in diesem Fall die 3D-Unterstützung nur dann aktivieren sollten, wenn Sie sie wirklich benötigen.

Bei Nvidia-Grafikkarten, die Einrichtung wurde in [5] detailliert beschrieben, ist die Lage derzeit besser, der Treiber ist stabil und leicht einzurichten, so dass die momentane Kaufempfehlung eher in Richtung Nvidia als ATI geht.

Doch das kann sich jederzeit ändern, so lange die Programmierschnittstellen und Timings verheimlicht werden, sind Sie von den Linux-Künsten der Hersteller und ihrem Engagement in diesem Bereich abhängig. (mdö)

Infos
[1] Kernel 2.6.9 für Fedora Core 2: http://download.fedora.redhat.com/pub/fedora/linux/core/updates/2/i386/kernel-2.6.9-1.6_FC2.i686.rpm
[2] ATI-Kernel-Module für Kernel 2.6.9 von Fedora Core 2: http://rpm.livna.org/fedora/2/i386/RPMS.testing/kernel-module-fglrx-2.6.9-1.6_FC2-3.14.6-0.lvn.2.2.i686.rpm
[3] ATI-Treiberpaket für Fedora Core 2: http://rpm.livna.org/fedora/2/i386/RPMS.testing/ati-fglrx-3.14.6-0.lvn.2.2.i386.rpm
[4] ATI-Treiberpaket und Kernel-Module für SuSE Linux 9.1: ftp://ftp.suse.com/pub/suse/i386/supplementary/X/ATI/suse91/fglrx/3.14.6/
[5] Mirko Dölle: "Drei mal drei", EasyLinux 12/2004, Seite 76

Nagelprobe für 3D

Nach der Installation eines Hardware-beschleunigten 3D-Treibers für Ihre Grafikkarte stellt sich stets die Frage, ob die Installation wirklich erfolgreich war oder ob das grafische System nach wie vor unbeschleunigt läuft.

Ein erstes Indiz liefert Ihnen der Aufruf von glxinfo|head. Steht hinter der Zeile "direct rendering" in Abbildung 3 ein "No", brauchen Sie keine weitern Versuche zu starten -- Ihre Grafikkarte läuft unbeschleunigt. Ein "Yes" hingegen bedeutet nicht automatisch, dass Spiele auch wirklich beschleunigt laufen.

Abbildung 3: Das Kommando glxinfo gibt in der Zeile "direct rendering" einen ersten Hinweis, ob das grafische System Hardware-beschleunigt läuft. Es ist jedoch nicht das einzige Kriterium.

Als zweites sollten Sie das Programm glxgears, das Bestandteil aller Distributionen ist, über eine KDE-Konsole oder ein Terminal-Fenster aufrufen. Das zeigt drei schnell rotierende Zahnräder an und gibt im Abstand von fünf Sekunden die gemessene Frame-Rate, also die Zahl der neu berechneten Bilder pro Sekunde, auf dem Terminal aus. Auf unbeschleunigten Systemen liegt die Frame-Rate unter 1000 fps (frames per second), funktioniert die Beschleunigung, erreichen Sie je nach Grafikkarte 1500 bis 5000 fps. Sie beenden glxgears mit einem Klich auf den Schließen-Button des Fensterrahmens.

Auf modernen Prozessoren jenseits der 3-GHz-Marke reicht die Rechenleistung nach wie vor nicht aus, um ohne Hardware-Beschleunigung selbst wenig anspruchsvolle Spiele wie tuxracer ruckelfrei laufen zu lassen. Die echte Nagelprobe und das beste Testkriterium, ob die Hardwarebeschleunigung funktioniert, ist daher Tuxracer. Benutzer von Mandrake 10.1 finden dieses Programm leider nicht auf den CDs Distribution, sondern müssen es aus dem Internet herunterladen -- etwa bei http://rpm.pbone.net.

Tuxracer als Härtetest

Starten Sie Tuxracer von einer KDE-Konsole oder einem Terminal aus, damit Sie etwaige Ausgaben sehen. Funktioniert die Hardware-Beschleunigung, startet tuxracer im Vollbild und der Schnee fällt langsam und gleichmäßig. Ruckeln die Schneeflocken oder fallen sie abgehackt, funktioniert die Hardware-Beschleunigung nicht.

Wenn die 3D-Hardware-Beschleunigung trotz installierter Treiber nicht funktioniert, ist guter Rat teuer. Möglicherweise fehlen Kernel-Module, passen nicht zum installierten Kernel oder werden einfach nicht geladen. Bei brandaktuellen Modellen kommt hinzu, dass die Treiber in den vorgestellten Zusatzpaketen meist ein paar Monate alt sind, also möglicherweise Ihr Modell noch nicht unterstützen. Insgesamt ist es ratsam, in solchen Fällen die nächste Treiberversion abzuwarten, vielleicht funktioniert Ihre Karte damit besser.


Wenn die Monitorerkennung versagt

Praktisch alle aktuellen Distributionen erkennen den an die Grafikkarte angeschlossenen Monitor mittels DDC (Display Data Channel). Dazu tauschen Monitor und Grafikkarte über die Pins 12 des VGA-Anschlusses Daten aus.

Bei DDC 1, dem ältesten Verfahren, sendet der Monitor Informationen über die unterstützten Frequenzen und Auflösungen an die Grafikkarte. Daraus wählt die Grafikkarte einen Modus aus, mit dem sie arbeiten kann -- der Monitor muss das Signal dann selbst erkennen und sich darauf einstellen.

Bei DDC 2A und dem neuen DDC 2B läuft die Kommunikation in beide Richtungen, die Grafikkarte informiert den Monitor, welche Frequenz und Auflösung das gerade anliegende Bild hat, so dass der Monitor nicht erst fehlerträchtig das Signal analysieren muss. Zudem kann der Monitor sich abschalten, wenn die Grafikkarte ein Bild weit außerhalb des zulässigen Betriebsbereichs sendet.

Kleinster Nenner VESA

Ältere Monitore beherrschen DDC 2 nur unvollständig oder haben sogar Fehler in der Implementation, so dass die Grafikkarte den Monitor nicht erkennt oder nicht ausreizen kann. In diesem Fall helfen die VESA-Modi (Video Electronics Standards Association) weiter: Hier sind einige Standardauflösungen und Standardfrequenzen festgelegt, die jeder VESA-kompatible Monitor und jede VESA-kompatible Grafikkarte beherrschen. Die VESA-Modi stellen sozusagen den kleinsten gemeinsamen Nenner der Video-Hardware insgesamt dar.

Ein weiterer Fall, bei dem Sie die VESA-Modi benötigen, ist, wenn die jeweilige Distribution keine speziellen Treiber für Ihre Grafikkarte oder Daten über Ihren Monitor hat. Dann sind Sie mit den VESA-Modi immer auf der sicheren Seite.

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2017 COMPUTEC MEDIA GmbH | Last modified: 2007-04-05 11:10

Nutzungsbasierte Onlinewerbung

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]