Auf dem Weg - learnflakes

Transcrição

Auf dem Weg - learnflakes
Auf dem Weg:
Certified Linux
LPIC-1, Topic 106:
Oberflächen u. Desktops
Inhaltsübersicht:
Allgemeine Übersicht X-Window
1.106.1 X11 installieren und konfigurieren
1.106.2 Einen Display-Manager einrichten
1.106.4 Hilfen für Behinderte
© by Andreas Grupp, 2007-2009, [email protected]. This work is licensed under
the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
http://creativecommons.org/licenses/by-nc-sa/2.0/de/
Auf dem Weg:
Certified Linux
Historie
X.org
XFree86


Abspaltung von X.org
wegen XFree86-Lizenz
Aktuelle Linux-Systeme
verwenden alle X.org
April 2004 auf Basis von XFree86 4.4 RC2
März 2000: XFree86 4.0 Änderung in der
Konfigurationsdatei /etc/X11/XF86config
(damit auch relevant für die X.orgKonfiguration /etc/X11/xorg.conf)
X, MIT 1984
Auf dem Weg:
Certified Linux
Architektur von X

Tastatur
Nach Inst. u. Konfiguration kann XServer mit dem Befehl 'X' gestartet
werden.
Maus
X-Server
Monitor


Ergebnis: Bildschirmoberfläche mit Textur und Mausfunktion,
sonst nichts! :-(
X stellt Programmen die als X-Clients arbeiten nur grundlegende
Grafik-Operationen zur Verfügung – keine Userfunktionalität!
Auf dem Weg:
Certified Linux
Architektur von X
Tastatur
X-Client
Maus
X-Server
Monitor


Client-Bereich kann in
Größe und Position nicht
verändert werden!
Clients überlagern sich
gegebenenfalls!
Start des X-Servers
mit Client z.B. durch
'xinit' (xterm als XClient)
Auf dem Weg:
Certified Linux
Architektur von X
Tastatur
X-Client
Maus
Window-Manager
als X-Client
X-Server

Monitor



Window-Manager stellen neuen XClients einen Fensterbereich zur
Verfügung.
Bsp.: twm, fvwm, ...
Dazu registriert sich der Window-Manager beim X-Server und
erhält die Funktionalität zum Starten von X-Clients übertragen.
Window-Manager gibt es viele verschiedene mit
unterschiedlichsten Funktionen.
Auf dem Weg:
Certified Linux
twm – Tab od. Tom's Window Manager
Auf dem Weg:
Certified Linux
"Scheinbare" Architektur von X
Tastatur
X-Client
Maus
X-Server
Monitor
WindowManager
als
X-Client
X-Client
...
Alternative Darstellung des Verhaltens eines WindowManagers – um die Kontrollhierarchie dazustellen.
(Dies entspricht aber so nicht den realen Gegebenheiten!)
Auf dem Weg:
Certified Linux
"Scheinbare" Architektur von X
Tastatur
Maus
X-Server
Monitor


WindowManager
als
X-Client
Desktop
Environm.
Manager
(KDE,
Gnome)
X-Client
X-Client
...
Verbleibt man bei der hierarchischen Darstellungsform um
"Desktop-Environment-Manager" wie KDE oder Gnome
darzustellen, dann ergibt sich dieses Bild.
Desktop-Environment-Manager stellen ein einheitliches
Aussehen und Verhalten einer grafischen Oberfläche sicher.
Auf dem Weg:
Certified Linux
1.106.1
X – Nun der Reihe nach ...

Tastatur
Maus
X-Server

Monitor




/etc/X11/XF86Config (4.x XFree86)
/etc/X11/xorg.conf (4.x X.org)
/usr/X11R6/lib/X11/XF86Config
(3.x, evtl. auch unter /etc/X11)
Die einzelnen X
Komponenten werden
in den Konfigurationsdateien konfiguriert.
Dort findet auch die
Kombination der
Komponenten zum
Gesamtsystem statt.
Unterscheidung in 3.x
und >4.x Format!!!
Auf dem Weg:
Certified Linux
1.106.1 /etc/X11/xorg.conf
Xorg Konfiguration
Section "InputDevice"
Identifier "Tasta1"
Driver "keyboard"
EndSection
Section "Monitor"
Identifier "Monitor1"
...
EndSection
Section "InputDevice"
Identifier "Maus1"
Driver "mouse"
...
EndSection
Section "ServerLayout"
Identifier "SL1"
Screen 0 "Screen1" 0 0
InputDevice "Maus1" "CorePointer"
InputDevice "Tasta1" "CoreKeyboard"
EndSection
Section "Device"
Identifier "Karte1"
...
EndSection
Section "Screen"
Identifier "Screen1"
Device "Karte1"
Monitor "Monitor1"
...
EndSection
Section "Files"
...
EndSection
Auf dem Weg:
Certified Linux
1.106.1
Unterstützte Hardware bei X-Window

Statt unterschiedlicher Grafikkarten wird bei XWindow nach Chipsätzen der Karten differenziert.



Auf den Webseiten von XFree86 bzw. X.org schauen

Installierte Chipsatztreiber kontrollieren:


3.x: Passender X-Server musste installiert werden
Seit 4.x: Nur noch ein X-Server aber unterschiedliche Treiber
/usr/lib/xorg/modules/drivers/
Monitore werden eigentlich alle unterstützt.
Unter Umständen werden genau Daten, u.a. für AblenkFrequenzen (horiz. & vert.), benötigt.
1.106.1
Beispiel für
Grafikkarte
und Monitor
Referenz auf eine
Modes-Section in
der genaue
Modelines für den
Monitor definiert
werden (vor allem
für ältere Monitore
notwendig)
Auf dem Weg:
Certified Linux
Section "Device"
BoardName
"3D Rage Pro AGP 1X/2X"
BusID
"1:0:0"
Driver
"ati"
Identifier
"Karte1"
Option
"XaaNoPixmapCache" "on"
VendorName
"ATI"
EndSection
Section "Monitor"
DisplaySize 0 0
HorizSync
20-50
Identifier
"Monitor1"
ModelName
"9070S"
Option
"DPMS"
VendorName
"EIZO"
VertRefresh 50-90
UseModes
"MeineModes"
EndSection
1.106.1
Auf dem Weg:
Certified Linux
Beispiel für eine Modes-Section
Section "Modes"
Identifier "Modes[0]"
Modeline
"1024x768" 67.48 1024 1080 1184 1344 768 769 772 797
Modeline
"1024x600" 67.63 1024 1080 1184 1344 600 601 604 629
Modeline
"1024x600" 66.68 1024 1080 1184 1344 600 601 604 628
Modeline
"800x600" 53.14 800 840 928 1056 600 601 604 629
Modeline
"800x600" 52.39 800 840 928 1056 600 601 604 628
EndSection
'xvidtune' ist ein Tool um
Feinanpassungen vorzunehmen. Output von Hand in
Konfig.-Datei einfügen!
http://en.wikipedia.org/wiki/XFree86_Modeline
1.106.1
Auf dem Weg:
Certified Linux
4.x Beispiel für Screen-Section
Section "Screen"
DefaultDepth 16
Default-Farbtiefe
SubSection "Display"
Depth
16
Modes
"1024x768" "1024x600" "800x600"
EndSubSection
1. Eintrag ist
SubSection "Display"
Default-Mode
Depth
24
Modes
"1024x768" "1024x600" "800x600"
EndSubSection
Device
"Karte1"
Identifier
"Screen1"
Monitor
"Monitor1"
EndSection
Mode-Umschaltung im lfd. Betrieb durch Tastenkombination:
"Strg" + "Alt" + "+"/"-" (vom nummerischen Tastenblock)
schalten Auflösungen um.
1.106.1
Auf dem Weg:
Certified Linux
Tools zum Erstellen der Konfiguration (1)



Shellutilities wie 'xf86config' od. 'xorgconfig' (beide gleich)
Weil das "Strafarbeiten" sind, haben die meisten Distribut.
eigene Tools, z.B. sax2, dpkg-reconfigure xserver-xorg, ...
vi & Co. für
manuelle
Anpassungen.
1.106.1
Auf dem Weg:
Certified Linux
Tools zum Erstellen der Konfiguration (1)

Grafische Utilities wie z.B. 'xf86cfg' od. 'xorgcfg'
(beide gleich)
XF86Setup (aus 3.x
Servern, nicht mehr
verfügbar!)
1.106.1
Auf dem Weg:
Certified Linux
Beispiel für Files-Section
Section "Files"
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/local"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/truetype"
EndSection



Font-Pfade normalerweise schon fest in X-Software
compiliert!!!
Neue Fonts bzw. neue Fontverzeichnisse mittels
'mkfontdir' in 'fonts.dir' im Verzeich. aufnehmen.
X-Server liest beim Start die verfügbare Fonts ein.
Auf dem Weg:
Certified Linux
1.106.1
Fonts über Fontserver zentralisieren

'xfs' gängiger Fontserver (für TrueType 'xfstt')

Konfiguration über /etc/X11/fs/config

Stellt Clients Fonts über Unix-Domain-Socket
oder TCP-Socket (kein Default) zur Verfügung.


no-listen = tcp # Für Netz deaktivieren!!!
FontPath für Fontservers in /etc/X11/xorg.conf
bzw. XF86config:
FontPath
FontPath
"unix/:-1"
"tcp/10.2.1.6:7100"
1.106.1
Auf dem Weg:
Certified Linux
X-Window-System Resources





X-Server stellt nur Basisoperationen bereit
Schaltflächen, Auswahlboxen, ... muss/müsste
jeder Client selbst programmieren!!!
Clients verwenden deshalb häufig X-Toolkits
(Bibliotheken die fertige Elemente bereitstellen)
Aussehen der Grafikkomponenten (Clienteigene
od. aus Toolkits) sind anpassbar.
man-Page gibt Auskunft darüber welche
"Resources" im jeweiligen Client verfügbar sind.
1.106.1
Auf dem Weg:
Certified Linux
~/.Xresources
man xterm:
~/.Xresources
Ergebnis:
Systemweite Einstellungen sind ebenfalls üblich (Vorgehen
aber von Distribution abhängig).
1.106.2
Auf dem Weg:
Certified Linux
Display-Manager (xdm, gdm, kdm)


Verwalten X-Sitzungen (Xsessions) lokal und
über das Netzwerk.
Start evtl. direkt via /etc/inittab - Beispiel:
x:5:respawn:/usr/X11R6/bin/xdm -nodaemon


Besser über Runlevel-Skript
Konfiguration via
/etc/X11/xdm/*
/etc/X11/gdm/*
/etc/kde3/kdm/*
1.106.2
Auf dem Weg:
Certified Linux
xdm – altbewährter Display Manager

/etc/X11/xdm/Xservers legt X-Start fest.
Zwei grafische Konsolen z.B. via:
:0 local /usr/bin/X :0 vt7 -dpi 100 -nolisten tcp
:1 local /usr/bin/X :1 vt8 -dpi 100 -nolisten tcp

Wertet /etc/X11/xdm/Xresources aus (mögliche
Resourcen via 'man xdm' einsehbar):
xlogin*borderWidth: 0
xlogin*frameWidth: 0
xlogin*innerFramesWidth: 1
xlogin*background: yellow
xlogin*greeting: Grupp's ...
1.106.2
Auf dem Weg:
Certified Linux
Weitere xdm-Konfiguration

/etc/X11/xdm/Xsetup_0 ist ein Shellskript das
noch im Kontext des Login-Bildschirms
ausgeführt wird => Weitere Anpassungen des
Login-Bildschirms, Uhrzeit anzeigen, ...

/etc/X11/xdm/Xsession ist ein Shellskript das
xdm nach erfolgreichem Login startet.


Führt Kommandos in ~/.xsession aus
Startet obligatorische Programme für die Sitzung
(Session) – z.B. Window-Manager, ...
1.106.2
Auf dem Weg:
Certified Linux
Konfiguration für X-Terminals/-Stations


Schlanke X-Terminals stellen selbst X-Server zur
Verfügung (Terminal-Server-Konzept)
Start der X-Session durch einen xdm der auf dem
eigentlichen Server läuft – Netzzugriff via XDMCP!

Darstellung der Session erfolgt auf X-Terminal

Aktivierung XDMCP in /etc/X11/xdm/xdm-config

xdm-Freigabe => /etc/X11/xdm/Xaccess (PositivNegativliste erlaubter X-Terminals.
1.106.4
Auf dem Weg:
Certified Linux
Startup-Prozess von X (ohne xdm)




Kommando "startx" startet Shellskript von
XFree86 bzw. X.org (evtl. vom Distribut. angep.)
"startx" startet "xinit"
"xinit" startet den eigentlichen X-Server und
ein erstes Client-"Programm". Per Default wird
dafür zuerst "~/.xinitrc" und als Fallback
"/etc/X11/xinit/xinitrc" verwendet.
"xinitrc" startet meist ähnlich wie der "xdm"
ein Skript "Xsession".
1.110.4
Auf dem Weg:
Certified Linux
Startup-Prozess von X (ohne xdm)



z.B. "Xsession" startet dann wieder diverse
Client-Programme (im Background) und zum
Schluß ein Programm im Vordergrund, z.B. ein
Window-Manager
=> xinit wartet nun im Hintegrund
Wird der letzte Client (oben der WindowManager) beendet, killt xinit den X-Server.
1.110.4
Auf dem Weg:
Certified Linux
~/.Xdefaults



Erlaubt analog zu ~/.Xresources für eine Vielzahl
von Programmen die Resourcen einzustellen.
Datei wird nur berücksichtigt wenn der ResourceManager xrdb nicht läuft!
Im Fall des xrdb kann das Laden der Daten aus
der ~/.Xdefaults in die Resourcen-Datenbank
über das xinitrc-Skript erledigt werden.
1.110.4
Auf dem Weg:
Certified Linux
Terminal-Emulationen

Bieten Shell in Form eines X-Window-Clients an

Mehrere Varianten verfügbar





xterm (das bekannteste Terminal)
aterm
rxvt
...
Beschäftigung mit den möglichen Startoptionen
insbesondere für xterm sinnvoll!
(Bsp.: xterm -geometry 90x40)
Auf dem Weg:
Certified Linux
1.110.4
X-Client mit X-Server über Netz
Tastatur
WindowManager
als X-Client
Maus
X-Server
Monitor


X-Client
Die Architektur von X erlaubt es einen
X-Client auch auf einem Rechner zu
starten auf dem es keinen X-Server gibt!
Die Grafikoberfläche des X-Clients wird auf einem
X-Server mittels Netzanbindung dargestellt
X-Server muss dabei mit Netzzugang gestartet werden:
:0 local /usr/bin/X :0 vt7 -dpi 100
# -nolisten tcp
1.110.4
Auf dem Weg:
Certified Linux
Environment-Variable DISPLAY




Legt für X-Clients fest an welchem X-Server die
Darstellung mittels X-Protokoll gesendet wird
Aufbau des Variablenwerts:
hostname:displaynumber.screennumber
Sowohl die Display- als auch Screen-Nr. werden
ab 0 gezählt. 1. Display => 0
Beispiele:
r1.testdom.de:0.0
192.168.34.52:1.0
localhost:0
xterm setzt DISPLAY automatisch
1.110.4
Auf dem Weg:
Certified Linux
X-Client mit X-Server über Netz
X-Display auf XServer freigeben
sarge:~# ping 172.16.0.210
64 bytes from 172.16.0.210: icmp_seq=1 ttl=64
sarge:~# DISPLAY=172.16.0.210:0.0
sarge:~# export DISPLAY
sarge:~# xeyes &
Auf Client-Rechner
Verbindung testen,
DISPLAY setzen und
X-Client starten
GUI des X-Clients
wird auf X-Server
über das Netz
angezeigt.
1.110.4
Auf dem Weg:
Certified Linux
Remote-X-Client über's Netz? GEFAHR!


Ausgaben können mitgeschnitten werden,
Kommandos eingeschleust werden, DOSAngriffe, ...! Das ist also nicht so toll!!!
Freigabe des X-Servers auf 2 Arten möglich:


xhost gibt Hostbezogen frei! 'xhost +r2.xyz.de'
Authentifzierung des Clients mit MIT-MAGIC-COOKIE1. Das 128-Bit Cookie liegt dabei im User-Verzeichnis in
der Datei ~/.Xauthority. Client kann nur mit Wissen
dieses Cookies Verbindung aufbauen (SSH-Tunnel,
VPN, ... zusätzlich notwendig). NICHT LPIC-1 relevant!

Documentos relacionados