Migrations-HOWTO zu modularem X
1.
Einleitung
Warum modular?
Sie fragen sich vielleicht, warum aus einem einfachen xorg-x11-Paket beinahe
300 einzelne geworden sind. Das wäre auch ein ganz berechtigte Frage. =)
Es handelt sich dabei nicht um etwas, was Gentoo unabhängig von X.Orgs
Entwicklung macht; sie spalten die ganzen Pakete in separate Versionen und wir
folgen diesem Beispiel nur.
Für dieses Aufteilen und ändern des Build-Systems gibt es mindestens drei
Gründe:
-
Für neue Entwickler ist es zu schwierig sich in X einzuarbeiten. Deswegen der
Wechsel zu automatischen Tools, an welche mehr Leute gewöhnt sind.
-
Dementsprechend ist es auch möglich, den Quelltext mit autotools aufzuteilen,
was es gleichzeitig entwicklerfreundlicher macht.
-
Dinge sind unnötigerweise zusammengelegt worden, was dazu führte, dass
Bugfixes oft nicht veröffentlicht werden konnten. Wenn die Fixes
veröffentlicht wurden, war es nötig, XOrg vollständig neu zu übersetzen. Zum
Beispiel müsste ein Bug im ATI-Treiber entweder 6 Monate bis zur nächsten
Version warten, oder man müsste unnötigerweise seine Schriftarten erneut
erstellen.
2.
Migration zum modularem X
Einleitung
Um zu verhinden, dass ein altes Paket im Weg ist, werden wir all den
überflüssigen Müll vor der Installation von modularem X beseitigen. Dies ist
nicht unbedingt entscheidend, aber es wird helfen einen sanften Übergang zu
garantieren.
Erster Schritt: Das alte X bereinigen
Erstellen Sie sich eine Sicherungskopie Ihres monolithischen xorg-x11 für den
Fall, dass das modulare X nicht zufriedenstellend funktioniert und Sie zu 6.x
zurückkehren möchten. Vielleicht wollen Sie einen textbasierten Browser wie
links oder lynx installieren, um dieses Howto lesen zu können, falls X nicht
verfügbar ist.
Befehlsauflistung 2.1: Sichern des alten xorg-x11 |
# emerge gentoolkit
# quickpkg xorg-x11
|
Werden Sie die monolithische Installation los. Um die Möglichkeit von Abstürzen
oder das Einfrieren Ihres Systems zu verhindern, raten wir Ihnen, alle laufenden
X-Sitzungen zu beenden, bevor Sie X.org deinstallieren.
Befehlsauflistung 2.2: Die monolithische Installation unmergen |
# emerge -Ca xorg-x11 virtual/x11
|
Wenn Ihr /usr/X11R6 kein symbolischer Link auf /usr
ist, löschen Sie diesen und beginnen Sie ganz von vorne. Sichern Sie aber
zunächst eine Liste aller Pakete, die dort installiert sind. Das
gentoolkit Paket stellt equery zur Verfügung.
Befehlsauflistung 2.3: Eine Paketliste anfertigen |
# if [[ ! -L /usr/X11R6 ]]; \
then equery belongs /usr/X11R6 > ~/usr-x11r6-packages \
&& rm -rf /usr/X11R6; fi
|
Schließlich sollte, wenn es vorhanden ist, /usr/lib/X11/xkb
(bei 64-Bit Benutzern /usr/lib64/X11/xkb) entfernt werden. Dies
ist eine Voraussetzung für die Installation des xkeyboard-config Pakets.
Zweiter Schritt: Modulares X installieren
Für Direct Rendering setzen Sie bitte das dri USE-Flag. Es sollte
standardmäßig gesetzt sein.
Als nächstes entscheiden Sie, welche Treiber Sie installieren müssen. Dies
variiert basierend auf Ihrer Eingabe- und Video-Hardware. Wenn Sie bereits eine
funktionierende /etc/X11/xorg.conf haben, führen Sie folgenden
Befehl aus, um eine Vorstellung über die benötigten Treiber zu erhalten:
Befehlsauflistung 2.4: Herausfinden, welche Treiber gebraucht werden |
# grep Driver /etc/X11/xorg.conf
Driver "kbd"
Driver "mouse"
Driver "radeon"
|
Befehlsauflistung 2.5: Verfügbare Treiber kontrollieren |
# emerge --verbose --pretend xorg-x11
[ebuild R ] x11-base/xorg-x11-7.0-r1 USE="-xprint" INPUT_DEVICES="keyboard
mouse -acecad -aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300
-elographics -evdev -fpit -hyperpen -jamstudio -joystick -magellan -magictouch
-microtouch -mutouch -palmax -penmount -spaceorb -summa -synaptics% -tek4957
-ur98 -vmmouse -void" VIDEO_CARDS="i128 mga radeon savage -apm -ark -chips
-cirrus -cyrix -dummy -fbdev -fglrx% -glint -i740 -i810 -imstt -mach64 -neomagic
-newport -nsc -nv -nvidia% -r128 -rendition -s3 -s3virge -siliconmotion -sis
-sisusb -sunbw2 -suncg14 -suncg3 -suncg6 -sunffb -sunleo -suntcx -tdfx -tga
-trident -tseng -v4l -vesa -vga -via -vmware -voodoo" 0 kB
|
Setzen Sie INPUT_DEVICES und VIDEO_CARDS Ihren Bedürfnissen entsprechend in
/etc/make.conf. Das Minimum der obigen Einstellungen wäre
INPUT_DEVICES="keyboard mouse" VIDEO_CARDS="radeon". Wenn Sie
keine der Variablen setzen, wird xorg-x11 alle möglichen Treiber diesen Typs
einbauen. Als Backup-Treiber sollten Sie vielleicht außerdem vesa und
fbdev zu VIDEO_CARDS hinzufügen.
Jetzt installieren Sie das Metabuild. Dies wird den Server und beliebte
Anwendungen installieren und Ihnen eine funktionierende Desktop-Implementierung
von X zur Verfügung stellen.
Befehlsauflistung 2.6: Installieren des modularen Metabuilds |
# emerge xorg-x11
# etc-update
# revdep-rebuild
# [[ -e ~/usr-x11r6-packages ]] && emerge
$(<~/usr-x11r6-packages)
|
Notiz:
Wenn Sie wirklich eine minimale Installation wollen, installieren Sie nur
xorg-server. Dies wird nur das einbauen, was zum Starten des X-Servers
notwendig ist.
|
Diese Installation versucht möglichst klein zu sein, so dass Dinge wie
xcursor-themes standardmäßig nicht installiert werden. In diesem spezifischen
Beispiel werden Sie xcursor-themes wollen, falls Sie Ihre Cursor-Einstellung
auf whiteglass, redglass, oder handhelds geändert haben. Wenn Sie die gentoo,
gentoo-blue, oder gentoo-silver Cursorthemes benutzen, installieren Sie
gentoo-xcursors.
Notiz:
Bei modularer Installation kann es sein, dass externe Treiber wie nvidia-glx,
wacom und auch einige vnc-Applikationen nicht arbeiten, wenn diese ihr Zeug
nach /usr/lib/modules anstelle von
/usr/lib/xorg/modules installieren. Viele werden eine Erkennung
für modulares X in die Installationsroutinen eingebaut haben, wodurch sie nach
der Installation von modularem X erneut emerged werden müssen. Außerdem werden
Sie bei vielen externen Treibern das dlloader USE-Flag setzen und dann
die Treiber neu erstellen müssen.
|
3.
Vorbehalte/Gängige Probleme
'emerge -u world' will xorg-x11 6.x, oder virtual/x11 installieren
Das kommt daher, dass der Portagetree bisher nicht an die modularen
Abhängigkeiten angepasst wurde. Sie können der Portierung helfen, indem Sie das
HOWTO zur
Portierung zum modularem X lesen und Bugs mit Patches für das jeweilige
Paket bei den Entwicklern einreichen. Die Entwickler werden in der Datei
metadata.xml aufgeführt sein, welche sich im selben Verzeichnis
wie das Paket befindet, und das herdstat Paket wird die Suche nach ihnen
beschleunigen.
Vor allem, wenn Sie modulares X auf einem ansonsten stabilen System betreiben,
werden Sie mit dieser Angelegenheit konfrontiert werden. Viele Pakete arbeiten
nur in der ~arch-Version mit modularem X, also werden Sie womöglich zusätzliche
Pakete der Datei /etc/portage/package.keywords hinzufügen müssen.
Was ist mit den ganzen USE-Flags passiert?
Viele der USE-Flags in xorg-x11-6.8-Serie verschwanden oder verschoben sich in
7.0. Es erschienen neue USE-Flags. Hier kommt der Grund dafür:
| USE-Flag |
Was passiert in 7.0? |
| 3dfx |
In 7.0 beinhaltet das xorg-x11 Metabuild glide-v3 |
| 3dnow, mmx, sse |
Standardmäßig beim Erstellen aktiviert, weil es Laufzeit-Checks gibt |
| bitmap-fonts, truetype-fonts, type1-fonts |
Das xorg-x11 Metabuild beinhaltet eine geringe Auswahl der am meisten
benutzten oder benötigten Schriften. Sie können zusätzlich alle weiteren
vorhandenen in media-fonts/ installieren.
|
| cjk |
Verwenden Sie USE=nls bei font-misc-misc und font-sony-misc, um japanische
JISX0201 Schriften zu erhalten. Weitere befinden sich in font-jis-misc.
Chinesische Schriften sind in font-isas-misc. Koreanische Schriften sind in
font-daewoo-misc.
|
| dlloader |
7.0 verwendet dlloader standardmäßig, und der elfloader funktioniert nicht.
|
| doc |
Verschoben nach app-doc/xorg-docs |
| dmx |
In xorg-server eingebaut, sofern nicht USE=minimal. |
| font-server |
Sie können xfs manuell installieren. |
| ipv6 |
Verschoben in individuelle Pakete, welche dies verwenden. Setzen Sie es
global, wenn Sie es wünschen.
|
| minimal |
Um den selben Effekt zu erzielen, installieren Sie einfach xorg-server
anstelle von xorg-x11. USE=minimal beim xorg-server verhindert das
Erstellen von Xdmx, Xvfb und Xnest. Wenn Sie etwas minimaleres wünschen,
sehen Sie sich x11-base/kdrive an.
|
| nls |
In 7.0 installiert USE=nls alle nicht-ISO8859-1 Versionen der Schriften.
|
| nocxx |
Bisher nichts äquivalentes in 7.0 |
| opengl |
Hat den Namen zu "dri" gewechselt, welches Direct Rendering in xorg-server
und vielen Treibern aktiviert. Ob USE=dri gesetzt ist oder nicht, Sie
sollten dennoch Software-3D mittels Mesa bekommen.
|
| pam |
Verschoben in individuelle Pakete, die dies verwenden, wie zum Beispiel
xorg-server und xdm.
|
| sdk |
7.0 muss SDK als Folge der Modularisierung installieren. |
| static |
Normalerweise macht es nicht allzu viel Sinn, einen statischen Server in
einer modularen Umgebung zu erstellen, da der Treiber nicht eingebaut
werden kann.
|
| xprint |
Beim Metabuild in libXp eingebaut. Bei anderen Applikationen wird
xprint-Support eingebaut. Die meisten werden dies nicht aktivieren wollen.
|
| xv |
Nicht länger optional, da es nicht viel Platz spart und in Verbindung
mit anderen Paketen, die es voraussetzen, Probleme verursacht.
|
Was ist mit all den Konfigurationsdateien passiert?
In Gentoos X.Org 6.8 Paket wurden alle Konfigurationsdateien unter
/etc/X11 gespeichert. Im modularen X wurden die Speicherorte für
diese Dateien geändert -- das bedeutet, dass die Konfigurationsdateien noch
immer in /etc/X11 liegen, dass aber Skripte und
Standardkonfigurationen nun unter /usr/lib/X11 (oder
/usr/lib64/X11) und /usr/share/X11 zu finden sind.
Wegen des Schutzes der Konfigurationsdateien (CONFIG_PROTECT) werden Sie
wahrscheinlich alle Ihre alten Konfigurationsdateien von X.Org 6.8 noch unter
/etc/X11 haben, die dort nur Platz belegen und nützlich aussehen.
Da diese neuen Verzeichnisse nicht unter dem Schutz von CONFIG_PROTECT stehen,
ist es wichtig, dass alle Änderungen an den Standardkonfigurationen so
durchgeführt werden, dass die relevanten Dateien nach /etc/X11
kopiert und dort aktualisiert werden. Es folgen einige Beispiele:
Befehlsauflistung 3.1: Anpassen der Initialisierung von XDM |
# cp -a /usr/lib/X11/xdm/Xsetup_0 /etc/X11/xdm/
# nano /etc/X11/xdm/xdm-config
! The following three resources set up display :0 as the console.
DisplayManager._0.setup: /usr/lib/X11/xdm/Xsetup_0
DisplayManager._0.startup: /usr/lib/X11/xdm/GiveConsole
DisplayManager._0.reset: /usr/lib/X11/xdm/TakeConsole
! The following three resources set up display :0 as the console.
DisplayManager._0.setup: /etc/X11/xdm/Xsetup_0
DisplayManager._0.startup: /usr/lib/X11/xdm/GiveConsole
DisplayManager._0.reset: /usr/lib/X11/xdm/TakeConsole
|
Notiz:
Auf 64Bit multilib Systemen mit dem no-symlink Profil müssen Sie lib in lib64
ändern.
|
In diesem von Joe Womack eingeschickten Beispiel werden wir einige xterm
Einstellungen anpassen. Dies kann entweder global oder benutzerspezifisch
gemacht werden.
Befehlsauflistung 3.2: Globales Anpassen von app-defaults/XTermn-color |
# cp -a /usr/share/X11/app-defaults/XTerm-color /etc/X11/app-defaults/
# echo '# Dies betrifft systemweite Anpassungen.' >> /etc/env.d/10xpaths
# echo 'XFILESEARCHPATH=/etc/X11/%T/%N:/usr/share/X11/%T/%N' >> /etc/env.d/10xpaths
|
Befehlsauflistung 3.3: Lokales Anpassen von app-defaults/XTerm-color |
# echo '# Dies betrifft Anpassungen durch den Benutzer in $HOME/app-defaults.' >> /etc/env.d/10xpaths
# echo 'XUSERFILESEARCHPATH=$HOME/%T/%N' >> /etc/env.d/10xpaths
# echo '! Xterm defaults' >> .Xresources
# echo 'XTerm*CursorColor: orange' >> .Xresources
# echo 'XTerm*loginShell: true' >> .Xresources
# echo 'XTerm*scrollBar: true' >> .Xresources
# echo 'XTerm*saveLines: 1000' >> .Xresources
# xrdb -merge $HOME/.Xresources
|
Notiz:
Schauen Sie sich http://www.faqs.org/faqs/x-faq/part2/section-22.html für
genauere Details zu den Einstellungen XFILESEARCHPATH und XUSERFILESEARCHPATH
an. Werfen Sie einen Blick auf
http://tldp.org/HOWTO/XWindow-User-HOWTO/moreconfig.html#XRESOURCES für
Details zu .Xresources.
|
Treiberprobleme
Ich habe Berichte erhalten, dass:
- vesa den Rechner bei Matrox-Karten einfriert
- vga einen eigenartigen Bildschirm produziert, der geviertelt ist
3D-Beschleunigung wieder zum Laufen bekommen
Um einige Debug-Informationen zu bekommen, die dabei helfen Direct Rendering
ans Laufen zu bekommen:
Befehlsauflistung 3.4: Einige Debug-Informationen erhalten |
# grep -e EE -e WW /var/log/Xorg.0.log
# LIBGL_DEBUG=verbose glxinfo
|
Automatische Erkennung des Maus-Protokolls
Wenn Sie "Protocol" "auto" in der xorg.conf für Ihre Maus gesetzt haben,
funktioniert sie möglicherweise nicht. Sie müssen eventuell
"Protocol" "ExplorerPS/2" oder "IMPS/2" eintragen, damit Ihr
Mausrad funktioniert.
Ich bekomme Fehlermeldungen, dass libbitmap oder libpcidata nicht
gefunden werden konnten
Stellen Sie sicher, dass kein ModulePath Eintrag in
/etc/X11/xorg.conf existiert.
gdm/kdm funktionieren nicht
Wenn Sie modulares X auf einer frischen Gentoo-Installation eingerichtet haben,
werden Sie womöglich keinen /usr/X11R6 -> /usr
Symlink haben. Das x11-base/xorg-x11 Paket wird sicherstellen, dass der
symbolische Link während des emerge-Prozesses besteht.
Indem Sie die Pakete ausbessern, die sich dorthin installieren, können Sie
dabei helfen, die Dinge aus /usr/X11R6 zu entfernen. Vergessen Sie
außerdem nicht, diese Paket zu re-installieren.
Befehlsauflistung 3.5: Pakete, die nach /usr/X11R6 installieren |
# cat ~/usr-x11r6-packages
# emerge --pretend $(< ~/usr-x11r6-packages )
|
XKB funktioniert nicht, ich kann nicht zwischen virtuellen Konsolen
wechseln, usw.
-
Viele XKB-Layouts sind gewandert, zusammengelegt worden oder verschwunden.
Werfen Sie einen Blick auf /usr/share/X11/xkb/symbols/, um
zu sehen, was mit Ihren alten XKB-Layouteinstellungen in xorg.conf
passiert ist. Um beispielsweise das alte "us_intl"-Layout zu ersetzen,
würden Sie "XkbLayout" "latin",
"XkbOptions" "lv3:ralt_switch" einsetzen. Um das alte
"sk_qwerty"-Layout zu ersetzen, würden Sie "XkbLayout" "sk",
"XkbVariant" "qwerty" einsetzen. Ein detaillierteres Beispiel, Sie
haben eventuell "XkbLayout" "us,sk_qwerty": Um das ans Laufen zu
bekommen, wäre die neue Einstellung "XkbLayout" "us,sk". Der Trick
ist das Komma in diesem Abschnitt hier: "XkbVariant" ",qwerty",
da Sie diese Variante dem zweiten Layout zuordnen.
Befehlsauflistung 3.6: XKB-Änderungen ausfindig machen |
# grep Xkb /etc/X11/xorg.conf
Option "XkbModel" "logibik"
Option "XkbLayout" "dvorak"
Option "XkbOptions" "ctrl:swapcaps"
# cd /usr/share/X11/xkb/symbols/
# ls *dvorak*
# ls *us*
us
# grep xkb_symbols.*dvorak us
xkb_symbols "dvorak" {
# setxkbmap -model logibik -layout us -variant dvorak -option "ctrl:swapcaps"
# cd /usr/share/X11/xkb/rules/
# grep logibik xorg.lst
# grep logi* xorg.lst
logiaccess Logitech Access Keyboard
logicdit Logitech Cordless Desktop iTouch
logicdp Logitech Cordless Desktop Pro
logicdpa Logitech Cordless Desktop Pro (alternate option)
logicdpa2 Logitech Cordless Desktop Pro (alternate option2)
logicdo Logitech Cordless Desktop Optical
logicfn Logitech Cordless Freedom/Desktop Navigator
logicdn Logitech Cordless Desktop Navigator
logidak Logitech Deluxe Access Keyboard
logiitc Logitech iTouch Cordless Keyboard (model Y-RB6)
logiik Logitech Internet Keyboard
logiitc Logitech iTouch Cordless Keyboard (model Y-RB6)
logiik Logitech Internet Keyboard
logiink Logitech Internet Navigator Keyboard
logiultrax Logitech Ultra-X Keyboard
# setxkbmap -model logiik -layout us -variant dvorak -option
"ctrl:swapcaps"
|
Andere Probleme
-
Das x11-base/xorg-x11-Paket filtert nun alle ModulePath- und
RgbPath-Zeilen aus ihrer /etc/X11/xorg.conf, da beide
dieser Pfade sich seit den früheren Versionen geändert haben. Stellen
Sie sicher, dass Sie etc-update ausgeführt haben, um diese
Änderungen abzuschließen. Wenn Sie aus irgendeinem Grund nicht
rausgefiltert wurden, entfernen Sie sie selbst.
Die Inhalte dieses Dokuments sind unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert.
|