X Terminal

Dieses Dokument beschreibt die Installation des X-Window Systems auf Debian GNU/Linux Arbeitsrechnern sowie die Konfiguration von festplattenlosen (dummen) X-Terminals.

Gnome Display Manager

apt-get install xorg gnome kde xfce wmaker evilwm fvwm blackbox

Damit auch andere Rechner im Netz, wie zum Beispiel X-Terminals, eine Sitzung auf der Workstation eröffnen können, muß man das XDMCP aktivieren. Dies kann man entweder über die grafische Oberfläche des Anmeldungsmanagers erledigen oder die Konfigurationsdatei /etc/gdm/gdm.conf von Hand editieren:

# /etc/gdm/gdm.conf
...
[xdmcp]
Enable=true
Willing=/etc/gdm/Xwilling

Terminal Server

Das LTSP ermöglicht den Betrieb festplattenloser X-Terminals. Beim Starten von Diskette oder Boot-ROM holt sich das Terminal zunächst per DHCP eine IP-Adresse, dann per TFTP einen Kernel inclusive initialer RAM-Disk und montiert schließlich das Wurzeldateisystem per NFS.

apt-get install tftpd ltsp-doc ltsp-core-i386 ltsp-kernel-i386 ltsp-x-core-i386 ltsp-x-fonts-i386

Boot-ROMs für die verschiedenen Netzwerkkarten kann man bei Rom-o-matic.net herunterladen und anschließend per cat(1) auf Diskette befördern oder, falls die nötige Hardware vorhanden ist, auf ein ROM brennen. Mehr ist auf der Seite des Terminals nicht zu tun.

Serverseitig konfiguriert man zuerst den DHCP-Dienst, für jedes Terminal muß man die Hardware-Ethernet-Adresse eintragen, diese bekommt man beispielsweise bei einem ersten Startversuch des Terminals mitgeteilt.

# /etc/dhcp3/dhcpd.conf
    ...
    # LTSP
    use-host-decl-names     on;
    option root-path        "192.168.23.2:/opt/ltsp/i386";
    host ws001 {
        hardware ethernet   00:80:C8:FB:C5:EB;
        fixed-address       192.168.23.11;
        filename            "/tftpboot/lts/vmlinuz-2.4.22-ltsp-1";
    }
    ...

Damit der Kernel im Verzeichnis /tftpboot/ gefunden wird, muß die Datei /etc/inetd.conf korrigiert werden.

# /etc/inetd.conf
tftp   dgram   udp  wait  nobody  /usr/sbin/tcpd  /usr/sbin/in.tftpd

Das per NFS freizugebende Wurzeldateisystem sowie ein optionaler Auslagerungsbereich wird in /etc/exports eingetragen.

# /etc/exports
/opt/ltsp/i386            192.168.23.0/24(ro,no_root_squash,async)
/var/opt/ltsp/swapfiles   192.168.23.0/24(rw,no_root_squash,async)

Die Hardware des Terminals wird in der Regel automatisch erkannt und der X-Server automatisch konfiguriert, individuelle Anpassungen kann man in der Datei /etc/ltsp/lts.conf vornehmen.

# /etc/ltsp/lts.conf -> /opt/ltsp/i386/etc/lts.conf
[Default]
	SERVER             = 192.168.23.1
	XSERVER            = auto
	X_MOUSE_PROTOCOL   = "PS/2"
	X_MOUSE_DEVICE     = "/dev/psaux"
	X_MOUSE_RESOLUTION = 400
	X_MOUSE_BUTTONS    = 3
	XkbModel           = pc104
	XkbLayout          = de
	USE_XFS            = N
	LOCAL_APPS         = N  
	RUNLEVEL           = 5

Synergy

Mit Synergy kann man dieselbe Tastatur und Maus über Rechnergrenzen hinweg nutzen, indem man den Mauszeiger einfach über die Bildschirmgrenzen hinweg verschiebt. Dies funktioniert unter Unix, Windows und MacOS X, inclusive Copy & Paste. Auf dem Rechner, an den die Tastatur und Maus angeschlossen ist, läuft der Synergy Server, der über die Eingaben über das Netzwerk an den gerade aktiven Synergy Client sendet.

Server

Die Konfigurationsdatei des Synergy-Servers listet zuerst die Hostnamen der beteiligten Rechner auf und legt dann die Anordnung der Bildschirme fest. Im folgenden Beispiel ist rechner-1 der Server, rechts von dessen Monitor steht der Monitor von rechner-2.

# /etc/synergy.conf

section: screens
  rechner-1:
  rechner-2:
end

section: links
  rechner-1:
    right = rechner-2
  rechner-2:
    left  = rechner-1
end

Solange kein Init-Skript existiert wird der Synergy-Server über /etc/gdm/Init/Default gestartet:

# /etc/gdm/Init/Default

synergys

Client

Auf allen Rechnern muss der Synergy-Client laufen. Damit die Übertragung bereits im Display-Manager funktioniert, wird der Client sowohl für die Anmeldung in /etc/gdm/Init/Default als auch die Sitzung in /etc/gdm/PreSession/Default gestartet. Als Parameter genügt der Hostname des Synergy-Servers.

# /etc/gdm/Init/Default
# /etc/gdm/PreSession/Default

synergyc rechner-1

Die Clients lesen die Konfiguration zentral vom Server.

Literatur