ATI (AMD) Radeon Grafikkarte unter Linux

Tja, die Schule geht los und ich hab viel gewurstelt an meinem Laptop… Morgen früh, extrem viel geschlafen, ich starte die Präsi, beginne Weisheiten abzusondern und sehe dass ich die Präsentation am Beamer genau nicht sehe. Es folgt ein wildes Gewurstel an Kabeln, Tastern und Schaltern bis ich kleinlaut ein Windowslaptop holen gehen muss, unter dem spottenden Spalier der Pinguinjäger…

Diagnose

Die AMD-Treiber sind ein proprietäres Modul von ATI selbst. Es treibt das Xorg an und ist wie alle proprietären Module (vmware, gna!, aber das ist ein anderes Thema) abhängig von der Kernelversion und reagiert empfindlich auf Updates. Ob alles ok ist sieht man am Besten mittels fglrxinfo:

$ fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.5 Mesa 6.5.1)

Hab ichs doch geahnt, Mesa werkelt und nicht ATI. lsmod zeigte mir, dass kein Modul fglrx seine Arbeit tat. Nun, wahrscheinlich wurde wieder der Kernel hinter meinem Rücken upgedated…

Die unrühmliche Ausprobierphase

Nun folgte die obligatorische, eigentlich-weiss-man-es-besser Treiber neuinstallations-, X-reboots- und Restartphase 🙂 . Sie gipfelte immer irgendwie in:

FATAL: Module fglrx not found.

Die Lösung

Zuerst aufräumen als Root:

rm -Rf /usr/lib/fglrx
rm -Rf /lib/modules/fglrx
dpkg -P fglrx-amdcccle fglrx-driver fglrx-driver-dev fglrx-kernel-src

Dann das Ganze wie in diesem kleinen HOWTO beschrieben installieren:

Folgende Dinge braucht man:

apt-get install module-assistant build-essential dh-make debhelper debconf libstdc++5 linux-headers-$(uname -r)

Dann den Treiber downloaden und die Pakete erstellen:

ati-driver-installer-8.39.4-x86.x86_64.run --buildpkg Debian/etch

Diese installieren:

dpkg -i *.deb

Und das Kernelmodul machen:

cd /usr/src
m-a prepare
m-a a-i fglrx

Ein modprobe fglrx sollte nun klappen. Ev muss man es noch in /etc/modules einbauen.

Ich habe noch eine neue xorg.conf erstellt:

dpkg-reconfigure xserver-xorg
aticonfig --initial

Der Rest wird vom Tool amdcccle erledigt (auch als Root starten)…

Laptop spezialtasten in Xorg nutzen (Debian)

Was hab ich nicht alles gelesen wie das gehen soll… Dateien und X-Startskripts und hastdunichtgesehn. Aber eigentlich ist es ganz einfach unter Debian die Spezialtasten (Lauter, Leiser, etc) in Betrieb zu nehmen:

  1. xev | grep -i keycode starten, zum erscheinenden Fenster fahren und die entsprechenden Tasten drücken. Keycodes notieren.
  2. Datei /etc/X11/Xsession.d/40xorg-custom_load-xmodmap ansehen. Die ersten beiden Zeilen beinhalten die Dateien, wo man die Codes hineinschreiben kann.
  3. Mein /etc/X11/Xmodmap für den Compaq nx8220:
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 160 = XF86AudioMute
keycode 205 = XF86ScreenSaver
keycode 245 = XF86AudioPause

X über ssh

Man kann nicht sagen, dass ich mir das Leben zu einfach mache :). Ich wollte Croquet auf einem Server installieren (siehe unten) und da dieser kein X (X11) hat das Squeak-Fenster über ssh sehen. Nun, damit nicht genug, ha, das wäre ja für Noobs! Nein, dieser Server läuft auch noch in einem virtuellen Vserver !

Nun, zuerst habe ich über ssh mit der Option -X connected, nicht ohne vorher sicherzugehen dass in /etc/ssh/sshd_config
X11Forwarding yes
stand. Doch der Server schmetterte mir kaltschnäuzig:
xterm Xt error: Can't open display: %s
xterm: DISPLAY is not set

entegegen. Nun, da ebenso in der sshd_config steht X11DisplayOffset 10 habe ich es mit

export DISPLAY="localhost:10.0"

versucht, wieder ohne Erfolg:
X11 connection rejected because of wrong authentication
Was half? Ein beherztes Löschen der ~/.Xauthority (nachdem ich gecheckt habe, dass xauth installiert ist). Erneutes Connecten brachte den Server zum Schnurren:
/usr/bin/X11/xauth: creating new authority file /home/skaldrom/.Xauthority
Juhuu, siehe da, ein Xterm konnte ich auftun. Die Freude währte nur kurz, den root konnte das nach einem „su -“ ncht :(… Googeln und lautes Wehklagen ergab die Lösung:

xauth merge ~skaldrom/.Xauthority

und schon liefs wie am Schnürchen! Verblüffend, dieses X!