                   Egkata%stasy kai xry%sy tou Compiz Fusion

  Manw%ly*s Kiagia%*s

   <manolis@FreeBSD.org>

   Anathew%rysy: 43184

   Pneumatika% Dikaiw%mata (c) 2008 Manw%ly*s Kiagia%*s

   To FreeBSD ei%nai e%na katoxurwme%no emporiko% su%mbolo tou FreeBSD
   Foundation.

   Polle%*s apo% ti*s le%cei*s y% fra%sei*s oi opoi%e*s xrysimopoiou%ntai
   apo% tou*s kataskeuaste%*s y% tou*s pwlyte%*s tou*s gia na diakri%noun ta
   projo%nta tou*s thewrou%ntai emporika% su%mbola. O%pou aute%*s
   emfani%zontai se auto% to kei%meno kai gia o%se*s apo% aute%*s gnwri%zei y
   Oma%da Ana%ptucy*s tou FreeBSD o%ti ei%nai pithano%n na ei%nai emporika%
   su%mbola, tha dei%te e%na apo% ta su%mbola: <<(TM)>> y% <<(R)>>.

   2013-11-13 apo% hrs.
   Peri%lyqy

   Y pio pro%sfaty <<mo%da>> ston ko%smo tou Linux(R) ei%nai anamfi%bola ta
   trisdia%stata efe% sto desktop. An kai y xrysimo%tyta tou*s e%xei
   amfisbytythei%, den pau%oun na entupwsia%zoun kai na parame%noun sune%xeia
   sty dymosio%tyta. Ta efe% auta% ulopoiou%ntai me ty boy%theia dia%forwn
   programma%twn o%pw*s ta Compiz, Beryl, kai to pio pro%sfato Compiz Fusion.
   Den xreia%zetai na sterei%ste auta% ta efe% o%tan xrysimopoiei%te to
   FreeBSD. Oi odygi%e*s pou akolouthou%n tha sa*s boythy%soun na
   egkatasty%sete kai na ruthmi%sete sto su%styma sa*s ta progra%mmata pou
   apaitou%ntai gia na e%xete ta ple%on pro%sfata trisdia%stata efe% pou
   prosfe%rei to Compiz Fusion xrysimopoiw%nta*s (an xreia%zetai) kai tyn
   kata%llyly e%kdosy twn programma%twn ody%gysy*s grafikw%n ty*s nVidia.

   [ HTML se tmy%mata / HTML se e%na tmy%ma ]

     ----------------------------------------------------------------------

   Pi%naka*s Periexome%nwn

   1. Eisagwgy%

   2. Ru%thmisy twn Programma%twn Ody%gysy*s ty*s nVidia Gia To FreeBSD

   3. Ru%thmisy tou xorg.conf gia Trisdia%stata Efe%

   4. Egkata%stasy kai ru%thmisy Compiz Fusion

   5. Antimetw%pisy problyma%twn tou Compiz Fusion

1. Eisagwgy%

   H egkata%stasy tou Compiz Fusion apo% tyn sullogy% twn Ports, ei%nai mia
   sxetika% aply% diadikasi%a. Xreia%zontai, o%mw*s, kai ka%poie*s epiple%on
   ruthmi%sei*s, oi opoi%e*s den perigra%fontai styn tekmyri%wsy tou port. To
   a%rthro auto% tha sa*s boythy%sei na ruthmi%sete ton Xorg server gia
   trisdia%staty leitourgi%a, na ruthmi%sete tyn nVidia ka%rta grafikw%n
   sa*s, kai telika% na egkatasty%sete kai na ektele%sete tyn efarmogy%
   compiz.

   Afou% diaba%sete auto% to a%rthro, tha ce%rete:

     * Pw*s na ruthmi%sete to pio pro%sfato pro%gramma ody%gysy*s ty*s nVidia
       (an apaitei%tai) gia to su%styma sa*s.

     * Pw*s na ruthmi%sete to arxei%o xorg.conf gia na mpore%sete na
       energopoiy%sete ta trisdia%stata efe%.

     * Pw*s na egkatasty%sete kai na ruthmi%sete to Compiz Fusion
       xrysimopoiw%nta*s tyn sullogy% twn Ports.

     * Pw*s na antimetwpi%sete sunythisme%na probly%mata pou aforou%n ta
       trisdia%stata efe%.

2. Ru%thmisy twn Programma%twn Ody%gysy*s ty*s nVidia Gia To FreeBSD

   Ta trisdia%stata efe% apaitou%n arkety% isxu% epecergasi%a*s apo% tyn
   ka%rta grafikw%n sa*s. An xrysimopoiei%te ka%poia ka%rta grafikw%n pou
   basi%zetai se kuklw%mata ty*s nVidia, tha pre%pei na egkatasty%sete kai na
   ruthmi%sete to pro%gramma ody%gysy*s pou pare%xetai apo% tyn etairi%a gia
   to FreeBSD, xrysimopoiw%nta*s tyn e%kdosy pou ei%nai kata%llyly gia to
   su%styma sa*s. An xrysimopoiei%te ka%poia a%lly ka%rta, pou o%mw*s
   gnwri%zete o%ti mporei% na antapokrithei% sti*s apaity%sei*s twn efe%,
   mporei%te na paralei%qete auty% tyn eno%tyta kai na sunexi%sete me tyn
   ru%thmisy tou xorg.conf.

  2.1. Prosdiori%ste to swsto% pro%gramma ody%gysy*s

   Upa%rxoun dia%fore*s ekdo%sei*s twn programma%twn ody%gysy*s ty*s nVidia
   sty sullogy% twn ports. Y epilogy% tou swstou% progra%mmato*s gia to
   su%styma sa*s, ecarta%tai apo% to monte%lo (kai tyn palaio%tyta) ty*s
   ka%rta*s grafikw%n sa*s:

     * Oi teleutai%e*s ekdo%sei*s twn kartw%n nVidia, upostyri%zontai apo% to
       port x11/nvidia-driver.

     * Ka%rte*s ty*s nVidia pou any%koun sti*s seire%*s GeForce 2MX/3/4
       upostyri%zontai apo% ta progra%mmata ody%gysy*s ty*s seira%*s 96 ta
       opoi%a diati%thentai me%sw tou port x11/nvidia-driver-96xx.

     * Ako%ma pio palie%*s ka%rte*s, o%pw*s oi GeForce kai RIVA TNT
       upostyri%zontai apo% ty seira% 71 twn programma%twn ody%gysy*s, ta
       opoi%a diati%thentai me%sw tou port x11/nvidia-driver-71xx.

   Styn pragmatiko%tyta, y nVidia pare%xei leptomerei%*s plyrofori%e*s
   sxetika% me to poia ka%rta upostyri%zetai apo% poio pro%gramma ody%gysy*s.
   Oi plyrofori%e*s aute%*s diati%thentai apeuthei%a*s apo% to diktuako%
   tou*s to%po: http://www.nvidia.com/object/IO_32667.html.

  2.2. Egkata%stasy tou progra%mmato*s ody%gysy*s ty*s nVidia

   Afou% kathori%sete to swsto% pro%gramma ody%gysy*s gia tyn ka%rta sa*s, y
   egkata%stasy ei%nai to i%dio aply% me opoiody%pote a%lly efarmogy% ty*s
   sullogy%*s twn ports.

  Symei%wsy:

   Bebaiwthei%te o%ti e%xete ananew%sei ty sullogy% twn ports,
   xrysimopoiw%nta*s ty me%thodo pou protima%te (p.x. csup, CVSup y%
   portsnap) prin egkatasty%sete opoiady%pote efarmogy% apo% ta ports. Ta
   progra%mmata ody%gysy*s twn kartw%n grafikw%n, kathw%*s kai ta
   progra%mmata trisdia%statwn efe%, ei%nai upo% sunexy% ece%licy kai
   emfani%zontai taktika% ne%e*s ekdo%sei*s.

   Gia para%deigma, gia na egkatasty%sete to teleutai%o pro%gramma
   ody%gysy*s:

 # cd /usr/ports/x11/nvidia-driver
 # make install clean

   To pro%gramma ody%gysy*s tha dymiourgy%sei e%na a%rthrwma (module) gia ton
   pury%na, to opoi%o tha pre%pei na fortwthei% styn ekki%nysy tou
   susty%mato*s. THa xreiastei% na prosthe%sete tyn ako%louthy grammy% sto
   arxei%o /boot/loader.conf:

 nvidia_load="YES"

  Symei%wsy:

   Mporei%te na fortw%sete to a%rthrwma apeuthei%a*s ston pury%na pou
   ektelei%tai ty dedome%ny xroniky% stigmy% xrysimopoiw%nta*s tyn entoly%
   kldload nvidia, alla% e%xei paratyrythei% o%ti oi teleutai%e*s ekdo%sei*s
   tou Xorg den leitourgou%n swsta% an to pro%gramma ody%gysy*s den
   fortwthei% kata% tyn ekki%nysy tou susty%mato*s. Gia to lo%go auto%, sa*s
   sunistou%me na epanekkiny%sete to su%styma sa*s meta% tyn prosthy%ky ty*s
   kataxw%rysy*s sto arxei%o /boot/loader.conf.

   E%xonta*s fortw%sei to a%rthrwma ston pury%na, xreia%zetai mo%no mia
   mikry% allagy% se mia grammy% tou arxei%ou xorg.conf gia na
   energopoiy%sete to pro%gramma ody%gysy*s.

   Brei%te tyn ako%louthy grammy% sto /etc/X11/xorg.conf:

 Driver      "nv"

   kai alla%cte tyn se:

 Driver      "nvidia"

   O%tan cekiny%sete to grafiko% periba%llon me to suny%thy tro%po, tha
   dei%te tyn otho%ny xairetismou% ty*s nVidia. O%la tha pre%pei na
   leitourgou%n kanonika%. Symeiw%ste wsto%so, o%ti sto symei%o auto% den
   e%xei ako%ma ruthmistei% to Xorg gia trisdia%stata efe%. Y ru%thmisy auty%
   perigra%fetai paraka%tw.

  Symei%wsy:

   An kai den ei%nai opwsdy%pote aparai%tyto, mporei%te epi%sy*s na
   egkatasty%sete ta ports x11/nvidia-xconfig kai x11/nvidia-settings. To
   prw%to mporei% na sa*s boythy%sei na ruthmi%sete to /etc/X11/xorg.conf
   me%sw ty*s grammy%*s entolw%n, enw% to deu%tero tha sa*s epitre%qei na
   alla%zete ruthmi%sei*s styn otho%ny me%sa apo% grafiko% periba%llon kai
   enw% ektelei%tai to Xorg.

3. Ru%thmisy tou xorg.conf gia Trisdia%stata Efe%

   Prin egkatasty%sete kai ektele%sete to Compiz Fusion, tha pre%pei na
   prosthe%sete merike%*s ruthmi%sei*s sto /etc/X11/xorg.conf:

   Prosthe%ste ti*s ako%louthe*s gramme%*s gia na energopoiythou%n ta efe%
   tu%pou composite:

 Section "Extensions"
 Option         "Composite" "Enable"
 EndSection

   Entopi%ste to tmy%ma <<Screen>> to opoi%o tha moia%zei me to paraka%tw:

 Section "Screen"
 Identifier     "Screen0"
 Device         "Card0"
 Monitor        "Monitor0"
 ...

   kai prosthe%ste ti*s du%o gramme%*s pou akolouthou%n (mporei%te na ti*s
   ba%lete meta% tyn kataxw%rysy <<Monitor>>):

 DefaultDepth    24
 Option         "AddARGBGLXVisuals" "True"

   Entopi%ste to <<Subsection>> to opoi%o anafe%retai styn epithumyty%
   ana%lusy otho%ny*s. Gia para%deigma, an the%lete na xrysimopoiy%sete
   ana%lusy 1280x1024, brei%te tyn eno%tyta pou fai%netai sto para%deigma. An
   den upa%rxei eno%tyta pou na anafe%retai styn epithumyty% ana%lusy,
   mporei%te na tyn prosthe%sete xeiroki%nyta:

 SubSection     "Display"
 Viewport    0 0
 Modes      "1280x1024"
 EndSubSection

   Gia ty leitourgi%a twn efe%, apaitei%tai ba%tho*s xrw%mato*s 24bits.
   Alla%cte to parapa%nw w%ste na dei%xnei:

 SubSection     "Display"
 Viewport    0 0
 Depth       24
 Modes      "1280x1024"
 EndSubSection

   Te%lo*s, epibebaiw%ste o%ti fortw%nontai ta arthrw%mata <<glx>> kai
   <<extmod>> me%sa apo% to tmy%ma <<Module>>:

 Section "Module"
 Load           "extmod"
 Load           "glx"
 ...

  Symei%wsy:

   An e%xete egkatasty%sei to port x11/nvidia-xconfig, mporei%te na ka%nete
   ti*s perisso%tere*s apo% ti*s parapa%nw ruthmi%sei*s di%nonta*s ti*s
   ako%louthe*s entole%*s (w*s root):

 # nvidia-xconfig --add-argb-glx-visuals
 # nvidia-xconfig --composite
 # nvidia-xconfig --depth=24

   An the%lete na dei%te o%le*s ti*s dunato%tyte*s tou parapa%nw
   progra%mmato*s, dw%ste tyn entoly% nvidia-xconfig -A | more.

4. Egkata%stasy kai ru%thmisy Compiz Fusion

   Y egkata%stasy tou Compiz Fusion ei%nai to i%dio aply% me opoiody%pote
   a%llo pro%gramma:

 # cd /usr/ports/x11-wm/compiz-fusion
 # make install clean

   Bebaiwthei%te o%ti epile%cate ta <<EXTRA>> plugins kai to <<EMERALD>>
   window decorator apo% ty li%sta epilogw%n pou tha emfanistei%. An
   xrysimopoiei%te GNOME, y% e%xete egkatasty%sei sto su%styma sa*s
   uposty%ricy gconf, mporei%te epi%sy*s na epile%cete <<gconf support>>. Me
   ton tro%po auto%, oi ruthmi%sei*s twn efe% tha enswmatwthou%n me ti*s
   a%lle*s ruthmi%sei*s pou e%xete ka%nei sto grafiko% periba%llon sa*s, kai
   tha mporei%te na ti*s dei%te xrysimopoiw%nta*s to gconf-editor. Wsto%so,
   to Compiz Fusion mporei% na apothykeu%sei ti*s ruthmi%sei*s tou kai se
   apla% arxei%a keime%nou, an den epithumei%te te%toiou ei%dou*s
   olokly%rwsy. Styn peri%ptwsy auty%, tha dymiourgythei% o kata%logo*s
   .compizconfig me%sa ston proswpiko% sa*s kata%logo.

   Meta% to te%lo*s ty*s egkata%stasy*s, cekiny%ste to grafiko% periba%llon
   kai se e%na termatiko%, dw%ste (w*s aplo%*s xry%sty*s) ti*s ako%louthe*s
   entole%*s:

 % compiz --replace --sm-disable --ignore-desktop-hints ccp &
 % emerald --replace &

   Y otho%ny sa*s tha tremopai%cei gia li%ga deutero%lepta, kathw%*s tha
   gi%netai antikata%stasy tou tre%xonto*s diaxeiristy% parathu%rwn sa*s
   (p.x. Metacity an xrysimopoiei%te periba%llon GNOME) apo% to
   Compiz Fusion. Y efarmogy% Emerald analamba%nei ti*s diakosmy%sei*s twn
   parathu%rwn (p.x. ta ply%ktra gia klei%simo, megistopoi%ysy,
   elaxistopoi%ysy, ti*s mpa%re*s ti%tlwn k.o.k.).

   Mporei%te na metatre%qete to parapa%nw se e%na aplojko% script to opoi%o
   na ektelei%tai auto%mata kata% tyn ekki%nysy tou periba%llonto*s (p.x.
   prosthe%tonta*s to sto <<Sessions>> sto grafiko% periba%llon GNOME):

 #! /bin/sh
 compiz --replace --sm-disable --ignore-desktop-hints ccp &
 emerald --replace &

   Apothykeu%ste to ston kata%logo sa*s, gia para%deigma me to o%noma
   start-compiz kai dw%ste tou dikaiw%mata ekte%lesy*s:

 % chmod +x ~/start-compiz

   Xrysimopoiy%ste e%peita ta grafika% ergalei%a gia na to prosthe%sete sta
   progra%mmata ekki%nysy*s, Startup Programs (bri%sketai sto System,
   Preferences, Sessions sto periba%llon ergasi%a*s GNOME).

   Gia na ruthmi%sete o%pw*s the%lete ta efe%, ektele%ste (pa%li w*s
   kanoniko%*s xry%sty*s) tyn efarmogy% Compiz Config Settings Manager:

 % ccsm

  Symei%wsy:

   Sto GNOME, mporei%te na brei%te tyn efarmogy% auty% sto menou% System,
   Preferences.

   An epile%cate <<gconf support>> kata% ty metaglw%ttisy, tha mporei%te
   epi%sy*s na dei%te ti*s ruthmi%sei*s sa*s me%sw tou gconf-editor, styn
   eno%tyta apps/compiz.

5. Antimetw%pisy problyma%twn tou Compiz Fusion

   Y ako%louthy eno%tyta kalu%ptei suxne%*s erwty%sei*s pou aforou%n
   probly%mata kata% tyn ekte%lesy tou Compiz Fusion.

   5.1. E%xw egkatasty%sei to Compiz Fusion, kai meta% tyn ekte%lesy twn
   entolw%n pou perigra%fete, ta para%thura mou den e%xoun ple%on mpa%re*s
   ti%tlwn kai ply%ktra ele%gxou. Pou ei%nai to la%tho*s;

   5.2. O%tan ektelw% tyn entoly% gia na cekiny%sei to Compiz Fusion, o X
   server termati%zetai apo%toma kai epistre%fw styn konso%la. Pou ei%nai to
   la%tho*s;

5.1. E%xw egkatasty%sei to Compiz Fusion, kai meta% tyn ekte%lesy twn entolw%n pou   
     perigra%fete, ta para%thura mou den e%xoun ple%on mpa%re*s ti%tlwn kai ply%ktra 
     ele%gxou. Pou ei%nai to la%tho*s;                                               
     To pithano%tero ei%nai o%ti sa*s lei%pei ka%poia ru%thmisy sto                  
     /etc/X11/xorg.conf. Ele%gcte prosektika% to arxei%o, kai eidika% ti*s           
     kataxwry%sei*s DefaultDepth kai AddARGBGLXVisuals.                              
5.2. O%tan ektelw% tyn entoly% gia na cekiny%sei to Compiz Fusion, o X server        
     termati%zetai apo%toma kai epistre%fw styn konso%la. Pou ei%nai to la%tho*s;    
     An ele%gcete to arxei%o /var/log/Xorg.0.log, tha dei%te pithano%n ka%poia       
     sfa%lmata kata% tyn ekki%nysy tou X. To pio koino% sfa%lma ei%nai:              
                                                                                     
     (EE) NVIDIA(0):     Failed to initialize the GLX module; please check in your X 
     (EE) NVIDIA(0):     log file that the GLX module has been loaded in your X      
     (EE) NVIDIA(0):     server, and that the module is the NVIDIA GLX module.  If   
     (EE) NVIDIA(0):     you continue to encounter problems, Please try              
     (EE) NVIDIA(0):     reinstalling the NVIDIA driver.                             
                                                                                     
     Auto% suny%thw*s sumbai%nei meta% apo% ka%poia anaba%thmisy ty*s efarmogy%*s    
     Xorg. THa pre%pei na epanegkatasty%sete to port x11/nvidia-driver w%ste na      
     metaglwttistei% apo% tyn arxy% kai to a%rthrwma glx.                            
