Austrian Linux Forum

X.org 6.8 für echt Transparenz installieren

Kategorien: Linux How-Tos
2 Antworten
theEdge
theEdge am Freitag, 10. Dezember 2004 um 03:56
Das Ganze ist ein schwieriges und wahrscheinlich nicht auf Anhieb funktionierendes Unterfangen, prinzipiell kann nichts schiefgehen, wenn man seine alte XConfig sichert.... Eingangs sei erwähnt, dass es mehrere Verfahren gibt, X.org zu installieren: - Sourcen herunterladen und selbst kompilieren - apt die Arbeit machen lassen (ja, es gibt bereits apt-quellen) - CVS [b]APT-GET[/b] apt-get hat bei mir absolut _nicht_ funktioniert und in Betracht der XServer-Sourcen (~50MB) sind die heruntergeladenen 5MB bei apt-get auch nicht wirklich vielversprechend. Interessierte seien daher auf andere Seiten [url=http://www.linuxforum.com/forums/index.php?showtopic=115516]verwiesen[/url] [b]CVS[/b] CVS ist eine interessant und wahrscheinlich auch funktionierende Methode ;) [code] cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg login cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg co -P xc cd xc make World make install [/code] Die nachfolgenden Schritte sind mit diesem Tutorial ident... CVS wurde von mir _nicht_ ausprobiert, Kommentare und Details zu obigem Code finden sich allerdings im [url=http://www.neowin.net/forum/index.php?showtopic=204593]Netz[/url] [b]selbst kompilieren[/b] Dieses Tutorial setzt voraus, dass bereits eine funktionierende nVidia XFree86-Konfiguration vorhanden ist!
Start
Zum kompilieren werden folgende Pakete benötigt: - flex - bison - libpam-dev - libpng-dev - libfontconfig-dev - libxft-dev - automake1.9 [b]Troubleshooting[/b] Bei mir gab es Probleme, einige der oben stehenden Pakete via synaptic (debian) zu installieren. Deshalb hab ich alle Pakete via Kommandozeile mittels apt-get install manuell installiert. Ausnahmen waren hier libpng-dev und libfontconfig-dev. Diese Pakete wurden mittels Synaptic installiert, bzw alle Pakete die so ähnlich hießen, wurden auch installiert...
Sourcen
Die Sourcen sollte man unter http://www.x.org bekommen. Links findet sich ein verweis auf die aktuelle Version. ("Latest Release" > "Source Tar Files" > Mirror wählen und Change drücken > "src single" > Downloaden) Nicht vergessen die md5 Summe zu überprüfen! Die sourcen können irgendwohin gespeichert werden. Der Ablageplatz ist irrelevant. [code] mkdir xc-build cd xc-build lndir ../xc [/code] Nach dem Download (50MB) wird das Archiv entpackt, und ein Verzeichnis "xc" sollte entstehen. Danach folgen wir dem obigen Code, indem wir einen neuen Ordner erstellen und uns darin breitmachen...
Setup konfigurieren
[code]cd config/cf cp xorgsite.def host.def[/code] Die xorgsite.def wird auf host.def kopiert, die host.def wird anschließend geöffnet, darin sollte sich eine Menge Text befinden, der interessanterweise ausnahmslos auskommentiert ist O_o Wir fügen dem Ganzen folgende Zeilen hinzu (NICHT in Kommentar setzen) [code] #define ProjectRoot /usr/local/X11R6.8 #define NothingOutsideProjectRoot YES #define HasFreetype2 YES #define HasFontconfig YES [/code]
Kompilieren
Spätestens ab hier wird in der Konsole gearbeitet! Jegliche kdm oder gdm oder X-Sessions müssen beendet sein! (zb. durch eingabe von init 3, oder welcher runlevel auch immer der passende ist) [code] cd ../.. # zb. ins xc-build Verzeichnis make World # Achtung case sensitive make install [/code] Nachdem host.def geschlossen und gespeichert wurde, geht's ans kompilieren. make World benötigt sehr viel Zeit, dauert auf meinem Rechner (3.15GHz P4, 1024MB RAM) beinahe eine dreiviertel Stunde, also länger als einen Kernel zu kompilieren! Wurde make World erfolgreich abgeschlossen, folgt sofort make install. Ist auch dies erfolgreich abgeschlossen, liegt der Zeitintensivste Teil hinter uns. [b]Troubleshooting[/b] - Benutzt du die richtige gcc Version? - Hast du deine Hardware übertaktet? - Wie sehen die CFLAGS aus? - Funktionierts immer noch nicht? Häng folgendes noch zusätzlich in die host.def von vorher: [code]#define DefaultGcc2i386Opt -O0 -g[/code] - make World benötigt auch das lncurses package (zumindest sind in manchen Foren Probleme damit aufgetaucht) - sollte make install nicht funktionieren, dann hat make World nicht richtig funktioniert, check nochmal make World! Zu diesem Zwecke wärs sinnvoll, die Ausgabe in eine Datei umzuleiten um nachsehen zu können, wobei der Error ohnehin ganz zum Schluss stehen müsste. Wenn jemandem der ewige Output nicht gefällt, der möge die Ausgabe von make World irgendwohinpipen ;)
Grafiktreiber neu installieren
Nachdem X erfolgreich kompiliert und installiert wurde, muss der Grafikkartentreiber (nVidia) neu installiert werden. Zu diesem Zwecke einfach in das entsprechende Verzeichnis wechseln und zb. [code] sh NVIDIA-Linux-x86-1.0-6111-pkg1.run[/code] ausführen. [b]Troubleshooting[/b] Kompiliert das Kernelinterface nicht, probiers mal als root (der du ohnehin von Beginn dieses Tutorials an sein solltest) oder versuche folgenden Befehl: [code] sh NVIDIA-Linux-x86-1.0-6111-pkg1.run -a -n --x-prefix /usr/local/X11R6.8[/code]
x.org konfigurieren
[code] cd /etc/X11 cp XF86Config-4 xorg.conf[/code] die alte XConfig für die neue xorg kopieren... In der keyboard-Section (relativ weit oben) muss der alte Treiber "keyboard" durch "kbd" ersetzt werden, der alte funktioniert beim neuen X nicht mehr. Jene Zeile, die "XkbRules" auf "xfree86" setzt, mus entfernt, respektive auskommentiert werden. Dort, wo der nvidia-Treiber steht, folgende Option hinzufügen: Option "RenderAccel" "true" und folgende Section hinzufügen: Section "Extensions" Option "Composite" "Enable" EndSection Auszug aus meiner xorg.conf: [code] [...] Section "InputDevice" Identifier "Keyboard0" #Driver "keyboard" ### Die alte Zeile vorsichtshalber noch drinnen lassen Driver "kbd" ### Die neue Zeile Option "CoreKeyboard" #Option "XkbRules" "xfree86" ### Diese Zeile auskommentieren oder entfernen Option "XkbModel" "pc105" Option "XkbLayout" "de" Option "XkbVariant" "nodeadkeys" EndSection [...] Section "Device" [...] Driver "nvidia" Option "RenderAccel" "true" ### Das ist die neue Zeile [...] EndSection [...] Section "Extensions" ### Das ist Option "Composite" "Enable" ### die neue EndSection ### Section [/code] Nun bringen wir das System dazu, die Neuerungen zu verwenden. Zu diesem Zweck als normaler User einloggen (root abmelden, aber wenn möglich immer noch ohne grafische Oberfläche arbeiten) [code] export LD_LIBRARY_PATH=/usr/local/X11R6.8/lib export PATH=/usr/local/X11R6.8/bin:$PATH [/code] Optional können wir hier nun X starten: [code]startx[/code]
Effekte aktivieren
Entgegen meiner ursprünglichen Annahmen sind die Transparenzeffekt nicht von Anfang an aktiviert, oder finden sich in den Fenstereigenschaften zum editieren, nein, um die Effekte nun darzustellen, bedarf es zweier Programme. Derzeit haben wir eine normale X11-Session under X.org laufen, es wird also Zeit, x.org auszureizen. Das erste Programm ist xcompmgr, welches die Effekte steuert (Schatten hinzufügt und das später folgende transset steuert) [code] cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xapps login (press return at the password prompt) cvs -d :pserver:anoncvs@pdx.freedesktop.org:/cvs/xapps co xcompmgr cd xcompmgr export PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig ./autogen.sh ./configure --prefix=/usr make make install [/code] Obige Befehle installieren xcompmgr, damit tut sich ausser Schatten nicht viel. Der nächste codeabschnitt installiert uns nun transset, jenes Programm, wegen dem wir die Ganze Arbeit auf uns genommen haben. Die CVS-Verbindung sollte noch bestehen, deshalb der Verbindungsbefehl hier nicht mehr aufgelistet: [code] cd .. cvs -d:pserver:anoncvs@freedesktop.org:/cvs/xapps co transset cd transset make [/code] [b]Troubleshooting[/b] xcompmgr: error while loading shared libraries: libXcomposite.so.1: cannot open shared object file: No such file or directory Stelle sicher, dass du als User Leserechte in diesem directory hast, bzw. installiere transset und xcompmgr am Besten als root. Checke auch manuell, ob diese Datei WIRKLICH vorhanden ist. ist sie NICHT vorhanden, wurde bereits beim Entpacken der Sourcen geschlampt: Du darfst wieder von vorne anfangen. Als nächstes solltest du sicherstellen, dass /usr/X11R6/lib (bzw. /usr/local/X11R6.8/lib) in /etc/ld.so.conf gelistet ist. Danach "ldconfig" ausführen. Sollte dass nicht helfen, den gesamten Part "Effekte aktivieren" mal als root durchgehen.
Finale
Geschafft! Spätestens jetzt x starten (startx) und mal enttäuscht sein ;) Die Effekte zeigen sich nicht. Zu diesem Zweck in den entsprechenden Ordner wechseln (in einer Konsole) in der du xcompmgr installiert hast (oder irgendwo in einen $PATH-Ordner ablegen, zb. /usr/bin) und erstmal xcompmgr starten [code] xcompmgr -c # Weiche Schatten xcompmgr -s # Harte Schatten xcompmgr --help # Hilge [/code] Während xcompmgr läuft, eine zweite Konsole öffnen und transset starten. Transset benötigt einen Parameter und zwar den Grad der undurchsichtigkeit: .9 bedeutet, das Fenster ist zu 90% undurchsicht und so weiter. [code] transset .7 # Danach ändert sich der Mauszeiger auf ein Fadenkreuz. Das entsprechende Fenster anklicken und es sollte transparent werden! [/code] Um dem Spuk ein Ende zu bereiten, einfach xcompmgr beenden! [b]Troubleshooting[/b] Wenn das System zu langsam wird, dann hilft eine Neuinstallation des Grafiktreibers, bzw. "RenderAccell" muss unbedingt in der xorg.conf stehen! Werden die Effekte nicht korrekt angezeigt, hilft ein Neustart von xcompmgr. Viel Spass! Ich übernehme natürlich keine Haftung für eventuelle Schäden und so weiter. Sollte gar nix mehr funktionieren, dann die gesetzten Umgebungsvariablen löschen und den vorher gesicherten X11-Ordner wieder an seinen ursprünglichen Platz kopieren. Quellen: http://incubator.vislab.usyd.edu.au/roller/page/Steve/20040909 (the one and only tut) http://www.neowin.net/forum/index.php?showtopic=204593&st=0 (troubleshooting)

Kommentare

shevegen
shevegen am Freitag, 10. Dezember 2004 um 03:56

Geil
und
Geil!