Problemsuche Grafik (Darstellung, Treiber, Auflösung …)
Die Grafikkarteneinrichtung ist häufiger leider nicht ganz trivial, da sich immer mal wieder die Konstellation aus Distribution, Kernel, Xorg-Revision und evtl. notwendigen non-gpl Treibern ändert. Für die Fehlersuche ist es deshalb sinnvoll das fehlschlagende Setup möglichst vollständig an die Liste (z.B. openslx-users-de) zu posten.
Im Stage3 liefert hwinfo --gfxcard die Daten der Grafikkarte, z.B.
24: PCI 02.0: 0300 VGA compatible controller (VGA)
[Created at pci.310]
UDI: /org/freedesktop/Hal/devices/pci_8086_2772
Unique ID: _Znp.kw4rvyJqLZ2
SysFS ID: /devices/pci0000:00/0000:00:02.0
SysFS BusID: 0000:00:02.0
Hardware Class: graphics card
Model: "Intel 945G"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x2772 "945G"
SubVendor: pci 0x1028 "Dell"
SubDevice: pci 0x01ad
Revision: 0x02
Memory Range: 0xfeb00000-0xfeb7ffff (rw,non-prefetchable)
I/O Ports: 0xe898-0xe89f (rw)
Memory Range: 0xe0000000-0xefffffff (rw,prefetchable)
Memory Range: 0xfeac0000-0xfeafffff (rw,non-prefetchable)
IRQ: 16 (42777197 events)
I/O Ports: 0x3c0-0x3e7 (rw)
Module Alias: "pci:v00008086d00002772sv00001028sd000001ADbc03sc00i00"
Driver Info #0:
XFree86 v4 Server Module: intel
Driver Info #1:
XFree86 v4 Server Module: intel
3D Support: yes
Extensions: dri
Config Status: cfg=new, avail=yes, need=no, active=unknown
Primary display adapter: #24
Hierbei wird ein bestimmtes Xorg-Modul ermittelt (im Beispiel “intel”). Das hier gefundene Modul kann aber “überstimmt” werden, siehe dazu den Eintrag im Wiki. Wenn man das versucht hat zu ändern, sollte man im nächsten Schritt herauskriegen, ob das geklappt hat. Dabei sollte man nicht vergessen, die Änderungen zu installieren und den Demuxer laufen zu lassen.
Generell ist es sinnvoll zu ermitteln, um was für eine Hardware insgesamt
es sich bei einer Kiste handelt lspci, z.B.:
00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub (rev 02)
00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)
00:02.1 Display controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1e.2 Multimedia audio controller: Intel Corporation 82801G (ICH7 Family) AC'97 Audio Controller (rev 01)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
01:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 01)
Hier gibts z.B. neben dem Namen der Grafikkarte (hier sieht man auch, ob mehr
als eine eingebaut ist), an welchem Bus diese hängt – im Beispiel: 0:02.0 Die
Bus-ID merkt man sich, um im nächsten Schritt mit lspci -n die PCI und VendorID des Devices herauszubekommen:
00:00.0 0600: 8086:2770 (rev 02)
00:02.0 0300: 8086:2772 (rev 02)
00:02.1 0380: 8086:2776 (rev 02)
00:1c.0 0604: 8086:27d0 (rev 01)
00:1c.1 0604: 8086:27d2 (rev 01)
00:1d.0 0c03: 8086:27c8 (rev 01)
00:1d.1 0c03: 8086:27c9 (rev 01)
00:1d.2 0c03: 8086:27ca (rev 01)
00:1d.3 0c03: 8086:27cb (rev 01)
00:1d.7 0c03: 8086:27cc (rev 01)
00:1e.0 0604: 8086:244e (rev e1)
00:1e.2 0401: 8086:27de (rev 01)
00:1f.0 0601: 8086:27b8 (rev 01)
00:1f.1 0101: 8086:27df (rev 01)
00:1f.2 0101: 8086:27c0 (rev 01)
00:1f.3 0c05: 8086:27da (rev 01)
01:00.0 0200: 14e4:1677 (rev 01)
Hier ist also die VendorID 8086 (Intel, das war zu erwarten) und die PCI-ID 2772.
Beide sind wichtig, da anhand dieser einmal hwinfo seine Zuordnungen vornimmt und zum anderen weil danach die Xorg-Treiber suchen. Die Infos zu den non-gpl Treibern geben diese Nummern für die unterstützten Karten an.
Für weitere Fehlersuchen sind die “(/mnt)/etc/X11/xorg.conf” und die Ausgaben des Logfiles des X-Servers “/var/log/Xorg.0.log” sinnvoll. Die meisten Informationen kann man im Stage4 beschaffen, hwinfo steht da jedoch unter Umständen nicht zur Verfügung.
Pool Video Switch (Alpha verfügbar)
Es gibt ein neues Tool in testfähigem Zustand am Start, den Pool Video Switch. Das ist ein Open Source Projekt als freie Alternative zu kommerziellen Hardware- und Softwareprodukten. Einige Hintergrundinfo zu Ideen oder auch von einem gehaltenen Vortrag.
Herunterladen kann man sich das Projekt derzeit lediglich mittels SVN, erst wenn eine gewisse Stabilität zur Verfügung steht, wird es auch Pakete geben:
svn co http://svn.openslx.org/svn/pvs
Benötigt werden die VNC-Libraries und einige Gnome/Gtk-Entwicklungspakete. Anschließend ruft man das übliche
configure
und
make
auf. Hier sieht man dann auch, welche Pakete noch fehlen; die man dann nachinstallieren sollte.
Installiert sein sollte auch das x11vnc Paket. Darauf basiert derzeit die VNC-Verbindung für das Monitoring der Clients. Es ist aber geplant, hier auch Alternativen zuzulassen.
Der poolVSClient läuft auf jedem Teilnehmerrechner und braucht eine Kon-
fig im Homeverzeichnis des Users:
- Konfigverzeichnis .pvs anlegen
- Darin eine Datei clientfile anlegen, die so aussieht:
start:name-konsolen-rechner client-name end:name-konsolen-rechner
- Datei .allow anlegen mit einer “1″ drin
- Das Skript irgendwo hinlegen und dem poolVSClient dieses beim Aufruf mitgeben
Der poolVS ist die Steuerkonsole. Diese sollte auf einer separaten Maschine laufen oder in einem zweiten X-Server auf der Dozentenmaschine. Die Clients melden sich automatisch bei korrekter Konfig (name-konsolen-rechner ist die Maschine auf der poolVS läuft) an der Steuerkonsole an und können von dort aus bedient werden. Wenn alles glatt geht, schafft man es, auf die Clients per VNC zuzugreifen, sie zu sperren und Botschaften abzusetzen
Feedback ist willkommen!
QEMU-KVM Virtualisierungs-Plugin
Nun gibts auch die Möglichkeit via VMchooser den alternativen Emulator QEMU bzw. den darauf basierenden KVM in einer OpenSLX-Umgebung zu starten.
Unterstützt ist dabei das automatische Setup des jeweiligen Netzes (via TAP-Interface). Konfiguriert wird eine virtuelle Maschine wie gewohnt durch die entsprechende XML-Datei wobei das Attribut virtualmachine param=”qemukvm” gesetzt sein sollte. Es werden bisher jedoch nicht alle der angegebenen Attribute ausgewertet.
Virtualisierung auf OpenSLX-Clients
Virtualisierung auf X86 ist inzwischen ein weit fortgeschrittenes Konzept. Sie erlaubt es verschiedene Betriebssysteme gleichzeitig auf einem SLX-Client ablaufen zu lassen. Einerseits lässt sich so ein Windows-Desktop als alternative grafische Oberfläche anbieten oder andererseits voneinander abgeschottet im Hintergrund Cluster-Rechnen zur Nutzung freier CPU-Ressourcen betreiben.
Die Desktop- und Hintergrundsvirtualisierung auf OpenSLX ist seit einiger Zeit genereller angelegt: Die Steuerung wird über ein eigenes Plugin “vmchooser” realisiert. Dieses bietet einerseits eine via Skript nach UserID, Uhrzeit, Datum steuerbare Session-Auswahl und andererseits ein abstraktes Start-Interface für verschiedene Desktop-VM-Sessions (Windows- und Linux in versch. Virtualisierern). Weitere Erklärungen finden sich im Wiki.
Die generelle Konfiguration der Sessions (Art der virtuellen Maschine, Netzwerk, Fenstertitel, Kurz- und Langbeschreibungen, …) erfolgt über eine XML-Datei.
Diese wird in einem nächsten Schritt via virtueller Diskette in das startende Gastsystem modifiziert (z.B. angereichert mit UserID) übertragen.
OpenSLX Vortrag
Wie schon geschrieben gab es an dem ersten Konferenztag des Linuxtages 2009 einen Vortrag zur aktuellen Entwicklung von OpenSLX: “Network Linux Anywhere“.
Nun sind auch die Texte zum herunterladen online:

