Obsah: |
Návod je na smetišti! Znamená to, že je zastaralý, a může být více ke škodě než k užitku. Pokud máte zájem, můžete se ho ujmout a přepsat ho do aktuální platné podoby. V současnosti se pracuje na Akcelerované prostředí. |
Návod je zastaralý, balíky už se nemusí kompilovat, a celý způsob instalace je tím podstatně jednodušší. Pokud to má někdo vyzkoušené, prosím aktualizujte tento návod. Pomocí může být například článek1, článek2.
Aktuální náhrada: Akcelerované prostředí
Uvod
Tento návod je určen pro Ubuntu 6.10 Edgy Eft.
Kontakt - snop3@seznam.cz
Kdyz se naucite par prikazu git (git je neco jak cvs, ale dost prepacovanejsi), tak budete mit stale aktualni Xgl a compiz. Nejake prikaze pripajam na konec navodu.
Tento navod je pro ATI a Gnome, skousel sem i KDE, ale neslo a vic sem se tim nezabyval lebo i tak radeji pouzivam Gnome. Kdyz se naucite trochu ovladat git, tak budete mit stale aktualnou verzi.
Jako prve si rozsirte repositary o universe a multiverse a to v subore /etc/apt/sources.list.
Puvodne sem z kazdeho modulu alebo kniznice vytvarel pomoci checkinstall deb baliky, ale odteho sem upustil. Duvod je, ze programy se pomoci --prefix=/opt/Xgl instaluji do /opt/Xgl, takze nic se neinstaluje do systemovych adresaru a kazde make install ma i sve make uninstall a kdyby neco tak muzu vymazat cele /opt/Xgl a hotovo.
Priprava na instalaci a kompilaci
Uprava xorg.conf
sudo nano /etc/X11/xorg.conf
V sekcii Section "Module" musi byt dri a glx
Section "Module"
Load "i2c"
Load "bitmap"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx" <------- GLX
Load "int10"
Load "type1"
Load "vbe"
EndSectiona v sekci Section "Device" nastaveny fglrx drive, takze musi byt spravne nainstalovane ATI ovladace
Section "Device"
Identifier "ATI Technologies, Inc. RV350 AS [Radeon 9600]"
Driver "fglrx" <----------- pro aktivaci ovladacu ATI
Option "VideoOverlay" "on"
Option "OpenGLOverlay" "off"
EndSection
Instalce potrebnych baliku
pro download - vsetky potrebne baliky byli presunute na http://gitweb.freedesktop.org
sudo apt-get install cvs git-core
pro kompilaci
sudo apt-get install automake1.9 libtool make build-essential checkinstall flex bison byacc
pro glitz
sudo apt-get install libglitz-glx1-dev
pro Mesa
sudo apt-get install x11proto-gl-dev libexpat1-dev libdrm-dev libxxf86vm-dev libxmu-dev
pro XGL
Neni treba instalova x11proto-dmx-dev a x11proto-fontcache-dev.
sudo apt-get install xtrans-dev xorg-build-macros x11proto* libxfont-dev libxxf86misc-dev libxaw7-dev libxpm-dev libxkbfile-dev libxkbui-dev
pro compiz
sudo apt-get install libxml2-dev libjpeg62-dev libcairo2-dev libglib2.0-dev libxdamage-dev libxrandr-dev libxinerama-dev libdbus-1-dev libstartup-notification0-dev libgconf2-dev
pro compiz GNOME
sudo apt-get install libgnome-desktop-dev gnome-control-center libwnck-dev libmetacity-dev libgnome-window-settings-dev
Download potrebnych balikov z http://gitweb.freedesktop.org
Pro kompilaci i instalaci baliku sem zvolil adresar /opt , ktery je ktomu urcen.
cd /opt && sudo mkdir Xgl && sudo mkdir Xgl/_tmp_ sudo chown -hR <username> Xgl/_tmp_
Prikaz chown zmeni prava, aby ste mohli menit obsah adresare Xgl.
cd /opt/Xgl/_tmp_ git clone git://anongit.freedesktop.org/git/xorg/app/compiz git clone git://anongit.freedesktop.org/git/xorg/xserver git clone git://people.freedesktop.org/~krh/mesa
Nektere baliky mohou mit spatne nastavene prava, takze opet treba chown
sudo chown -hR <username> /opt/Xgl/_tmp_
Kompilace a instalace
Kompilace Mesa
Mesa
cd ../mesa cd configs echo MKLIB_OPTIONS= -static >> linux-indirect cd .. make linux-indirect
Zde je dulezite do souboru configs/linux-indirect doplnit radek MKLIB_OPTIONS= -static, ktery zaisti ze kniznice ktere se skompiluji budou staticke. Toto zaistuje vyse psany prikaz echo MKLIB_OPTIONS= -static >> linux-indirect. Tyto kniznice vyuzijeme neskur pri kompilaci compiz a jsou v adresari mesa/lib - tento adresar musi po kompilaci obsahovat tyto soubore.
libGL.a libGLU.a libglut.a libGLw.a
Kompilace Xgl
kompilace Xgl
Pred samotnu kompilaci je treba vstoupit do adresare xserver a oznacit spravny branch. Urcite to bude matouci pro lidi co nemaj skusenosti z git. Doporucuji si aspon nastudovat zakladne prikaze na http://www.freedesktop.org/wiki/UsingGit , kde je i navod jak aktualizovat z git co je asi nejdulezitejsi.
cd ../xserver git checkout xgl-0-0-1
Takto se muzete podivat ci je xgl branch skutecne oznacen. U polozky xgl-0-0-1 musi byt * hvezdicka.
git branch
PKG_CONFIG_PATH=/opt/Xgl/lib/pkgconfig ./autogen.sh --enable-xgl --enable-glx --enable-dri --enable-xglx --disable-xorg --disable-xprint --disable-dmx --disable-xvfb --disable-xnest --disable-kdriveserver --with-mesa-source=/opt/Xgl/_tmp_/mesa --with-release-snap=1 --prefix=/opt/Xgl make sudo make install
vystup configure (autogen.sh)
checking whether to build Xdmx DDX... checking for DMXMODULES... no <----- nemusi byt yes checking whether to build Xvfb DDX... no checking whether to build Xnest DDX... checking for XNESTMODULES... yes <---- nemusi byt yes no checking whether to build Xorg DDX... no checking whether to build Xgl DDX... checking for XGLMODULES... yes <----- musi byt yes yes checking for dlopen in -ldl... yes checking whether to build Xegl DDX... no checking whether to build Xglx DDX... checking for XGLXMODULES... yes <----- musi byt yes yes checking whether to build Xprint DDX... no checking whether to build XWin DDX... no
Pokud nedosahnete vyse uvedeneho vystupu, ani nemusite pokracovat prikazem make.
Este je potreba link, aby Xgl vedel kde hledat fonty, a to proto, lebo je kompilovany z prikezom (alebo co to je) PKG_CONFIG_PATH.
sudo mkdir /opt/Xgl/lib/X11 sudo ln -s /usr/share/X11/fonts /opt/Xgl/lib/X11
Configure vam muze vypsat, ze potrebuje nejake kniznice alebo kniznice ktere nejsou aktualne. To je uplne normalne, lebo stahujete ze git, kde se software ktery se vyviji aktualizuje neustale. Muze se vam stat ze, configure alebo make neprobehne, teda bude ukonzen chybovym hlasenim error. Mne sa zatim nestalo ze by sem aktualnou verzi neskompiloval, ale cetl sem na nete ze nektere verze nesli skompilovat, kvuli chybe v kode. Kdyz vam configure alebo make vyhodi chybu tak s nejvetsi pravdepodobnosti to bude kvoli chybjejici kniznici, z chyby se da vycist jake (kdyz mate nejake skusenosti
). Po instalaci si nechte vsetky programy a kniznice tak jak jsou, jak ostali po kompilacich, lebo se jednoducho daji upgradovat cez git,takze nemusite napr. Xgl znovu tahat, staci ho jen upgradnout a dalsi duvod je ze muzou poslouzit k odinstalaci make uninstall.
'P.S. !!!! Kdyz chcete upgradnout xserver, tak najprv se musite prepnout na branch master. !!!!
cd /opt/Xgl/_tmp_/xserver git branch git checkout master git branch git pull git checkout xgl-0-0-1
Kdyz chcete nejaky balik upgradnout z git, tak pred upgradem si tento balik zazalohujte napr. do adresara ../xserver.bak, lebo nekdy se stane ze to nejede jak ma a pred instalaci upgradleho programu alebo knihovny udelejte make uninstall z xserver.bak teda z z adresara zalohovaneho programu.
Kompilace compiz
compiz
Uprednostnil sem load mesa kniznice libGL v prikaze configure pred LD_PRELOAD=. Toto napsal David Reveman - cituji.
For compiz I do something like the following as compiz needs to be linked to a version of libGL with protocol support for GLX_EXT_texture_from_pixmap and Mesa is the only GL implementation with that yet. Linking compiz statically to mesa libGL avoids a lot of trouble.
cd ../compiz PKG_CONFIG_PATH=/opt/Xgl/lib/pkgconfig ./autogen.sh --prefix=/opt/Xgl --with-gl-libs="/opt/Xgl/_tmp_/mesa/lib/libGL.a -pthread -ldrm" --enable-librsvg make sudo make install
vystup configure
the following optional plugins will be compiled: gconf: yes place: yes dbus: yes and the following optional features will be compiled: svg: yes gtk: yes metacity: yes gnome: yes kde: no
Ted muzeme zapnout podporu metacity. To nam umozni menit okraje oken.
gconftool-2 -s /apps/gwd/use_metacity_theme -t bool true
A tymto zapneme prusvitnost okraju oken
gconftool-2 -s /apps/gwd/metacity_theme_opacity -t float 0.75 gconftool-2 -s /apps/gwd/metacity_theme_shade_opacity -t bool TRUE gconftool-2 -s /apps/gwd/metacity_theme_active_opacity -t float 0.75 gconftool-2 -s /apps/gwd/metacity_theme_active_shade_opacity -t bool TRUE
Jak spustit Xgl
Jedina metoda ktera zobrazuje spravne fonty je Metoda 3. Metoda 2 v login obrazovke zobrazuje nejake zvecsene fonty alebo session to uz vypada vpoho, kdez to metoda 3 zobrazuje korektne fonty i v login obrazovke.
Rozdil medzi metodu 1 a 2 je, ze metoda 1 vam umozni vyber Xgl session na prihlasovaci obrazovke a metodou 2 se defaultne spousti Xgl. Dost zasadni nevyhoda metody 1 je, ze nemam v logout obrazovke tlacidla shutdown a restart a nekre fonty se nezobrazuji korektne !!! a proto sem od teto metody upustil.
Metoda 1
Tato metoda mi nejak nefacha v edgy, gnomko si nerozumi s displeje :1, tedy neumi zobrazit korektne themy na temto displeji.
vytvorime si startxgl.sh
gksudo gedit /usr/local/bin/startxgl.sh
do ktoreho vlozime
Xgl :1 -fullscreen -ac -br -accel xv:fbo -accel glx:pbuffer -dpi 100 -nolisten tcp & DISPLAY=:1 exec gnome-session
tymto prikazom zabezpecime aby *.sh bolo spustitelne
sudo chmod +x /usr/local/bin/startxgl.sh
teraz treba pridat Xgl session do login screen
gksudo gedit /usr/share/xsessions/xgl.desktop
pridame
[Desktop Entry] Encoding=UTF-8 Name=Xgl Comment=Start an Xgl Session Exec=/usr/local/bin/startxgl.sh Icon= Type=Application
Restarujeme a prihlasime do Xgl session.
Metoda 2
gksudo gedit /etc/gdm/gdm.conf-custom
Pridame novu sekciu server-Xgl a zeditujeme sekciu servers.
[servers] 0=Xgl [server-Xgl] name=Xgl server command=/usr/bin/Xgl -fullscreen -br -accel xv:fbo -accel glx:pbuffer -dpi 100 -nolisten tcp flexible=true
gksudo gedit /etc/gdm/gdm.conf
A polozku GdmXserverTimeout upravime na 40
GdmXserverTimeout=40
Restarujeme a muzeme se prihlasit.
Pokud se nepodari prihlasit, tak sa nam vyhodi okno kde sa da zobrazit log, ktory nas informuje proc sa tak stalo.
Metoda 3
Je podobna metode 2, Xgl bude defaultne. Tato metoda nefungovala v dapperovi a mozno nefunguje i v Egym, treba skusit.
sudo rm /etc/X11/X sudo ln -s /opt/Xgl/bin/Xgl /etc/X11/X
Pomoci tehoto linku spousti gdmko Xorg. Povodny symlink /etc/X11/X ukazuje na /usr/bin/Xorg.
A tady se definuje jak se ma Xgl alebo Xorg spoustet alebo s jakymi parametrami.
sudo cp /etc/X11/xinit/xserverrc /etc/X11/xinit/xserverrc.bak sudo gedit /etc/X11/xinit/xserverrc
Vlozime toto
exec /opt/Xgl/bin/Xgl -br -accel xv:fbo -accel glx:pbuffer -dpi 100 -nolisten tcp
Skratka namisto Xorg spustime Xgl.
Jak spustit compiz
Vytvorime togglecompiz.sh, ktery nam umozni sa prepinat medzi compiz a metacity. Osobne ho mam umisteny hore na panely a v sezeni - programy po prihlaseni - aby bylo zajisteno spusteni pri starte.
gksudo gedit /usr/local/bin/tooglecompiz.sh sudo chmod +x /usr/local/bin/togglecompiz.sh
a vlozime
if ps -A | grep -e "compiz$" > /dev/null; then
killall gtk-window-decorator
metacity --replace &
else
if ps -A | grep -e "Xgl$" > /dev/null; then
/opt/Xgl/bin/gtk-window-decorator &
/opt/Xgl/bin/compiz --replace --use-cow gconf &
xmodmap -e "keycode 22 = BackSpace Delete"
fi
fiKdyz je vsetko jak ma byt, tak mate wobbly okna
atd.
Jak spustit opengl aplikace v Xgl
Vytvrime spusteci skript
sudo gedit /usr/local/bin/nonXgl sudo chmod +x /usr/local/bin/nonXgl
a pridame
DISPLAY=":93"
if [ -z "$1" ]; then
echo "Usage: nonXgl <command>"
exit 1
fi
LD_PRELOAD=/usr/lib/libGL.so.1.2 $@a spoustime nasledovne
nonXgl jmenohry
Par prikazu pro GIT
Pomoci techto prikazu muzete aktualizovat svoje programy ktere su na git stranke. Vzdy kdyz chcete provest nejaky prikaz git pro compiz, tak musite byt v adresari compiz a to plati i pro vsechny ostatne programy.
Na stahnuti programu z git slouzi prikaz
git clone
Nejpr si vybereme co cheme stahnout z http://gitweb.freedesktop.org/ a kdyz klikneme na program mam tam i adresu....takze napr. chceme glproto
git clone git://anongit.freedesktop.org/git/xorg/proto/glproto
ta druha adresa teda git+ssh://git.freedesktop.org/git/xorg/proto/glproto je pro vyvojaru
Update provedete prikazem
git pull
Jedinu vynimkou v mojem navode je xserver a to proto ze ma vice vetev (vetev=branch). Kdyz chcete xserver updatovat musite se nastavit do vetve master, jinak se update nepovede a xserver se prepise nesmyslnym kodem a to znamena ze ho muzete smazat a znovu stahnout.
Prve se musite nastavit do master branch. Na prechod do spravneho branchu slouzi prikaz
git checkout
takze pro prejiti do branchu master
git checkout master
kdyz se chcete podivat ve kterem ste branchi
git branch
ted kdyz sme v branchi master muzeme updatovat xserver
git pull
kdyz vse probehne jak ma tak se opet musime nastavit do branchu xgl-0-0-1
git checkout xgl-0-0-1
a ted muzeme xserver prekompilovat
Toto pro update programu uplne staci
Neco na zaver
Konfigurace compiz a vsetky klavesove skratky na https://help.ubuntu.com/community/CompositeManager/ConfiguringCompiz. Zakladny a jednoduchy navod jak pouzivat prikaz git http://www.freedesktop.org/wiki/UsingGit.
Projekty na http://gitweb.freedesktop.org/.
Thanks to terrax, quinn, tuxfamily, Azriphale, mikalh, Ander Conselvan de Oliveira and Special Thanks to developers Keith Packard, David Reveman, Dave Airlie, Matthias Hopf, Eric Anholt.
Kontakt - snop3@seznam.cz
from sNop