Ubuntu Česko Xgl a compiz

  • Edit
  • Diskuze
  • Info
  • Attachments

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í.

IconsPage/stop.png 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.

IconsPage/link.png Aktuální náhrada: Akcelerované prostředí

Uvod

IconsPage/iconCircle.png 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"
EndSection

a 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 Wink ;-) ). 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. Smile :)

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
fi

Kdyz je vsetko jak ma byt, tak mate wobbly okna Awesome B-) 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 Smile :)

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

Odkazy

ubuntu-cz: Xgl a compiz (last edited 2008-03-20 13:18:08 by localhost)