Home |
Artikel | LUGS X Display Manager
LUGS Vortrag vom 1996.12.05 - xdm - X Display Manager
Wozu xdm verwenden?
Damit man unter Linux und X (wie bei einer richtigen Workstation
üblich) direkt beim Booten den X Server starten kann und dann im
graphischen Modus mit einer Dialogbox zum Login aufgefordert wird.
Dies ist erheblich vornehmer als auf einer Console mit /bin/login
einzuloggen und dann von Hand X mit startx/xinit zu starten
(=Steinzeit, so arbeitete man unter DOS 5.0/Windows 3.0).
Wie funktioniert xdm?
Analog zum normalen Unix Login-Vorgang:
/etc/init -> getty, login, bash, ev startx ->
init von vorne
wird hier gemacht:
/usr/X11R6/bin/xdm -> XLogin, session, fvwm ->
xdm von vorne
xdm übernimmt also die Aufgabe von init.
Wie konfiguriert man xdm?
Im xdm Konfigurations-Directory (/var/X11R6/lib/xdm/) sind
mehrere Dateien, die die verschiedenen Aspekte von xdm steuern.
Wichtig davon sind:
- xdm-config :
nennt alle weiteren Dateien, die xdm benutzt
- Xsetup_0 :
baut den X Server Bildschirm auf, bevor Login Dialogbox
- Xresources :
konfiguriert die Login Dialogbox von xdm (XLogin)
- TakeConsole :
nach Login mit root-Privilegien den User vorbereiten
- Xsession :
User Login Prozess, entspricht dem bash (oder fvwm)
- GiveConsole :
räumt mit root-Privilegien TakeConsole wieder auf
Danach wird noch der X Server von xdm geresettet und alles wiederholt.
Damit beim Booten automatisch xdm kommt (anstelle eines Console Logins)
muss man noch in /etc/inittab die Zeile
# Default runlevel.
id:5:initdefault:
von 5 (mehrere gettys starten) in 6 (xdm starten) abgeändert werden.
Was muss der User bei xdm noch machen?
xdm ruft zuerst ein systemweites Xsession auf. Dieses ruft dann
ein userspezifisches .xsession (oder falls keines existiert das
normale .xinit) auf. Darin wird der User seinen Windowmanager
oder etwas ähnliches aufrufen. Dessen Ende signalisiert wie
üblich einen Logout, nur dass danach nicht X beseitigt wird sondern
nur der X Server geresettet wird und wieder die Login Dialogbox erscheint.
Wer sich daran gewöhnt hat, Linux mit Ctrl-Alt-Del in der Console
herunterzufahren wird dies schnell bei xdm vermissen. Aber Rettung ist
schnell zuhanden, einfach in .fvwmrc folgendes addieren
# and the keys that kill everything...
Key Delete A CM Exec "C-A-D" /sbin/shutdown -t3 -rf now
Key KP_Delete A CM Exec "C-A-D" /sbin/shutdown -t3 -rf now
Key KP_Decimal A CM Exec "C-A-D" /sbin/shutdown -t3 -rf now
Was muss bei xdm noch beobachtet werden?
Leider hat xdm (bzw. Xsession) ein Problem: mit login/bash werden
die Dateien /etc/profile und .profile ausgeführt um z.B. Environment
Variablen zu setzen, xdm macht das nicht. Daher hab ich im Xsession
diese Aufrufe hinzugefügt.
# Since xdm doesn't run a bash -login shell (or any other login shell)
# then read the files that it would, to set up the user's environment
profile=/etc/profile
userprofile=~/.profile
if [ -e $profile ]; then
source $profile
fi
if [ -e $userprofile ]; then
source $userprofile
fi
Ein eine kleine Falle gibts in xdm noch: ohne funktionierendes X ist
man am Ende! Wer z.B. in /etc/XF86Config herumfummelt oder in .xinit
oder .fvwnrc herumexperimentiert und dabei eines dieser Dateien so
kaputt macht, dass die entsprechenden Programme nicht mehr
funktionieren hat neu nach dem Booten einen gecrashten X Server vor
sich, keine Console, Ende mit irgendwelchen Login Versuchen!
Um das zu vermeiden sollte man:
- Nachdem man xdm konfiguriert hat zuerst von der Console aus mit
telinit 6 testen. Erst wenn es läuft initdefault auf
6.
- Für "gefährliche" Experimente mit XF86Config etc. wieder mit
starx/xinit arbeiten. Dazu gehören z.B. neue ModeLines, BPPs.
Wer diesen sinnvollen Rat "vergisst" sollte den single-user Boot kennen:
Dazu im LILO den Prompt holen, mit linux single einen single-user
Boot machen, dann inittab von 6 auf 5 frisieren, dann reboot. Wer nach
einem single user Boot nicht auf die Platte schreiben kann (weil read-only
gemountet wurde) kann dies mit mount -w -n -o remount / retten.
Wo find ich mehr zu diesem Thema?
Für die Details der Dateien und des ganzen Prozesses ist die man
Page von xdm sehr zu empfehlen.
Home |
Artikel | LUGS X Display Manager
Diese Seite ist von Neil Franklin, letzte Aenderung 2000.12.30