Beryl su openSuse 10.2

Sab, 13/01/2007 - 12:21

Beryl su openSuse 10.2

Inviato da JJ_Kame_R 48 commenti

Come installare e configurare beryl su openSuSE 10.2 e schede video nVidia o Intel.

ATTENZIONE! Non rispondo di eventuali danni.



Comincio la guida con una piccola premessa.

Premessa:

Questa guida vi permette di utilizzare Beryl con supporto AiGLX su schede nVIdia o Intel.
I possessori di schede ATi, al momento, non godendo del supporto AiGLX possono fruire di Beryl solo tramite XGL.
Per la natura di XGL le prestazioni su queste schede non sono tali da permettere un uso "quotidiano" di beryl, inoltre l'attivazione di XGL porta a perdere l'utilizzo da parte di Xorg dei driver di accelerazione 3d.
Il risultato è che qualsiasi applicazione 3d dirà che l'accelerazione 3d nn è presente.
Esistono dei modi per ovviare questo problema (lanciare 2 server X o creasi un file che disabilita XGL per una data applicazione), ma poiché i risultati non sono soddisfacenti per ora ho deciso di nn trattare l'istallazione e l'utilizzo di Beryl su schede ATi.
Spero di poter presto aggiornare la guida con la bella notizia di supporto AiGLX anche per Amd/Ati.

Esiste una guida ufficiale di SuSE 10.2 per beryl che trovate a questo indirizzo:
http://en.opensuse.org/Beryl

Vi permette di installare e usare Beryl.

Personalmente preferisco però una strada differente.


Installazione drivers VGA:


Per prima cosa scarichiamo i drivers per la nostra scheda video ed installiamoli assicurandoci di avere i pacchetti relativi agli Header del Kernel(kernel-source gcc gcc++ make).

Una volta completata la procedura e configurato Sax2 possiamo partire.

Dobbiamo aggiungere varie righe al file /etc/X11/xorg.conf

Il file è composto in varie sezioni. Aprendolo con mc o altro dobbiamo aggiungere:

Alla sezione "ServerLayout"
Option "AIGLX" "true"


Alla sezione "Extensions"
Option "Composite" "Enable"


Alla sezione "DRI"
Group VIDEO
Mode 0666


Alla sezione "Device"
Option "XAANoOffscreenPixmaps" "true"
Option "DRI" "true"



I possessori di nVidia possono poi ispirarsi al mio file xorg e aggiungere alcune ottimizzazioni. Quelle evidenziate sono obbligatorie per il corretto funzionamento di beryl.

Section "Device"
BoardName "NVIDIA GeForce 7600GT XXX"
BusID "2:0:0"
Driver "nvidia"
Identifier "Device[0]"
Option "NvAGP" "1"
Option "AGPMode" "8"
Option "AGPFastWrite" "True"
Option "RenderAccel" "true"
Option "AllowGLXWithComposite" "true"

Option "EnablePageFlip" "true"
VendorName "VESA"
Option "XAANoOffscreenPixmaps" "true"
Option "DRI" "true"
Option "AddARGBGLXVisuals" "true"

Option "TripleBuffer" "true"
EndSection


Section "ServerLayout"
Identifier "Layout[all]"
InputDevice "Keyboard[0]" "CoreKeyboard"
InputDevice "Mouse[1]" "CorePointer"
Option "Clone" "off"
Option "Xinerama" "off"
Screen "Screen[0]"
Option "AIGLX" "true"
EndSection


Section "DRI"
Group "video"
Mode 0666
EndSection

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




Ora tutto è configurato a puntino... si tratta di installare beryl.


Istallare Beryl - pacchetti devel:


Ci sono due modi basilari.
Quello illustrato dalle faqs di suse ci permette di installare la versione stable di beryl 0.1.4.
Personalmente non mi ha soddisfatto, è lenta e con poche opzioni.

Vi consiglio vivamente di installare la versione svn.

La procedura è banale ma richiede un minimo di dimestichezza con le dipendenze.
Se come me siete compilatori folli avrete già tutti i pacchetti necessari.
Se durante la compilazione si bloccherà per mancanza di dipendenze dovrete ricercare il pacchetto mancante in Yast/Smart e sopperire alla mancanza.

I pacchetti devel fondamentali che dovete avere installato sono selezionabili da Yast.
Selezionate in gestione pacchetti come "Filtro" "modelli" e nella sezione "Sviluppo" selezionate:


Sviluppo di Base
Sviluppo GNOME
Sviluppo KDE
Sviluppo C/C++


Istallare Beryl - download & compile:


Scaricare la versione svn è decisamente semplice.

Aprite un terminale, passate a root e scrivete:



La seconda parte ("/home/beryl/" rappresenta la cartella nella quale volete scaricare i sorgenti.
Il processo di download vi porterà via qualche minuto al massimo. Fatto questo avrete i sorgenti pronti per la compilazione.

Per compilare digitate:
$ cd /home/beryl
$ ./makeall


E andate a prendervi un bel thè con biscotti mentre compila il tutto.

Una volta andata a buon fine la compilazione, se non avete avuto problemi di dipendenze vi troverete con il compilatore arrabbiato perché non può compilare le dipendenze di "heliodor".
Lasciate perdere, queste dipendenze non esistono ancora. Se siete arrivati a vedere questo messaggio avete completato la parte più difficile della guida.

Ora beryl è installato... funzionerà?


Provare e configurare Beryl:


Assicuratevi di aver disabilitato XGL.
in /etc/sysconfig/displaymanager il WM deve essere Xorg.

Fate ripartire il server x (ctrl+alt+backspace) ed entrate in una console da utente.

Digitate:

$ emerald --replace & beryl


Se tutto va positivamente dovreste vedere scritto:

[1] 5121
XGL Absent, checking for NVIDIA
Nvidia Present
Relaunching beryl with __GL_YIELD="NOTHING"
XGL Absent, checking for NVIDIA
Nvidia Present
Initial splash


Se tutto è andato a buon fine state usando emerald come windows manager e avrete già gli effetti attivi.

Se non dovesse partire, riavviate X e digitate invece:

$ beryl --use-copy


Così dovrebbe proprio andare.

Passiamo alla configurazione.

Avete compilato anche "beryl-manager", utility di gestione per beryl e "beryl-settings" utility di configurazione.

Purtroppo al momento beryl-manager crea conflitti con kpager e altro per cui vi sconsiglio di lanciarlo.

Al contrario digitando in console:

$ beryl-settings


Si aprirà il pannello di gestione plugin e varie.

Nella prima schermata per migliorare le prestazione togliete la spunta a:


Sync to VBlank
Find Refresh Rate


C'è un cursore che vi consente di impostare il refresh rate del monitor, settate il massimo: 200.

Ora potete sbizzarrirvi ad attivare e disattivare effetti.

Non attivate mille plugins, scegliete quelle che più vi piacciono. Molte sono pacchiane e pesanti. Tenete conto che tutto pesa sulla fluidità del vostro server X


Attivare beryl all'avvio:


Personalmente sconsiglio vivamente di attivare beryl all'avvio.
Ho notato che va meglio se caricato a sistema avviato e in "idle".

Comunque se voleste avviarlo con X potete aggiungere in /utente/.kde/autostart (o l'equivalente su gnome) uno script a beryl.


Considerazioni Finali:


Nel complesso trovo beryl decisamente stabile. Non mi ha mai dato problemi ne con applicazioni 3d ne video o altro.
Quello che ancora non è perfettamente soddisfacente è l'altalenarsi delle prestazioni.
Si passa da giornate intere di fluidità assoluta a momenti di reattività unica. Il lavoro di rifinitura del codice è in atto.
Promette molto bene anche per l'utilizzo quotidiano.
Personalmente lo uso sempre.


Per ogni dubbio o consiglio o ulteriore spiegazione non esitate a contattarmi.





Commenti

Ritratto di Alfio
#1

Inviato da Alfio il Dom, 14/01/2007 - 00:04.

Bene ci voleva per voi smanettoni...

Bravo ben fatta.
Ciao Laughing



Ritratto di JJ_Kame_R
#2

Inviato da JJ_Kame_R il Dom, 14/01/2007 - 17:21.

Re: Bene ci voleva per voi smanettoni...

Grazie, mi raccomando fatemi sapere se incontrate problemi. Smile

Intanto ho visto un refuso...

Nel file xorg.conf per nVidia va aggiunto:
Option "AddARGBGLXVisuals" "true"
NON
Option "AddRGBGLXVisuals" "true"

Sorry...

"Do or Do Not. There is No Try." - Master Yoda
Sabayon 3.3 (gentoo 4 president) - xp2400@3400+ - 7600gt XXX - 1,5gb RAM
"Penguin Prevails && Overruns!!!" - JJ_Kame_R



Ritratto di leo72
#3

Inviato da leo72 il Lun, 15/01/2007 - 10:07.

Re: Bene ci voleva per voi smanettoni...

Per esperienza personale, potete usare tranquillamente gli RPM senza compilare nulla. COm'è specificato nella guida originale in inglese, i pacchetti precompilati funzionano.

Leo.
------------------
Scegli software open-source: il mio sistema Suse Linux esegue OpenOffice, Mozilla Firefox e Thunderbird, The Gimp...



Ritratto di JJ_Kame_R
#4

Inviato da JJ_Kame_R il Lun, 15/01/2007 - 11:48.

Re: Bene ci voleva per voi smanettoni...

Funzionano ma le prestazioni e le funzioni nn sono paragonabili all'svn.

Inoltre l'svn sulla mia macchina è decisamente + stabile.

"Do or Do Not. There is No Try." - Master Yoda
Sabayon 3.3 (gentoo 4 president) - xp2400@3400+ - 7600gt XXX - 1,5gb RAM
"Penguin Prevails && Overruns!!!" - JJ_Kame_R



Ritratto di vittorio
#5

Inviato da vittorio il Lun, 15/01/2007 - 16:19.

Re: Bene ci voleva per voi smanettoni...

Un paio di domande su questa (ottima) guida:
1. E' assolutamente necessario il pacchetto kernel-source? Ora ho installato solo il kernel-default. Lo chiedo perchè, non essendo espertissimo, ho paura di incontrare problemi installando una cosa delicata come i sorgenti del kernel.
2. I pacchetti di sviluppo indicati (base, KDE, Gnome, ecc.) servono tutti (sono un bel po') o solamente quelli eventualmente richiesti come dipendenze durante la compilazione?
Grazie!



Ritratto di JJ_Kame_R
#6

Inviato da JJ_Kame_R il Lun, 15/01/2007 - 16:27.

Re: Bene ci voleva per voi smanettoni...

Non bisogna aver paura del Kernel, tanto meno dei sorgenti del kernel.

I sorgenti del kernel sono indispensabili per la compilazione di tutti i drivers.

Non sono qualcosa che influisce in alcuno modo sul funzionamento del sistema, sono qualcosa che permette di far capire ai vari programmi com'è "fatto" il tuo kernel.

Di norma dovrebbero essere istallati SEMPRE.

Per le altre dipendenze puoi aspettare che i vari configure ti richiedano i pacchetti necessari.
Al momento nè sul sito di beryl nè altrove è presente una lista completa delle dipendenze perchè è in continua evoluzione.
I pacchetti devel di gnome, kde, gcc, e kernel dovrebbero cmq bastare. Nel caso istallerai gli ulteriori pacchetti specifici che ti chiederà il compilatore.

"Do or Do Not. There is No Try." - Master Yoda
Sabayon 3.3 (gentoo 4 president) - xp2400@3400+ - 7600gt XXX - 1,5gb RAM
"Penguin Prevails && Overruns!!!" - JJ_Kame_R



Ritratto di Born_To_Burn
#7

Inviato da Born_To_Burn il Mer, 17/01/2007 - 23:52.

Re: Bene ci voleva per voi smanettoni...

Bella guida! Speriamo che tu possa aggiornarla al più presto anche per schede ATI....!!



Ritratto di tommy1986
#8

Inviato da tommy1986 il Ven, 19/01/2007 - 13:51.

Re: Bene ci voleva per voi smanettoni...

Serve anche il pacchetto di python altrimenti non compila il beryl-settings

Asus A8N SLI Amd X2 64 @ 3800 Acquagate 2 4x512 Mb Ram 2x 6600 GT 256Mb 250Gb Sata2 160Gb Sata2



Ritratto di Alfio
#9

Inviato da Alfio il Lun, 22/01/2007 - 19:47.

Re: Bene ci voleva per voi smanettoni...

Errore corretto come indicato dall'autore.
Ciao



Ritratto di dfrincon
#10

Inviato da dfrincon il Mar, 23/01/2007 - 12:12.

Re: Bene ci voleva per voi smanettoni...

O compilato il pacchetto oggi ed e' andato tutto bene
pero' dopo aver dato il seguente comando: emerald --replace & beryl questo il risultato
[1] 10293
**************************************************************
* Beryl system compatiblity check *
**************************************************************

Detected xserver : NVIDIA

Checking Display :0.0 ...

Checking for XComposite extension : passed (v0.3)
Checking for XDamage extension : passed
Checking for RandR extension : passed
Checking for XSync extension : passed

Checking Screen 0 ...

Checking for GLX_SGIX_fbconfig : passed
Checking for GLX_EXT_texture_from_pixmap : passed
Checking for non power of two texture support : passed
Checking maximum texture size : passed (4096x4096)

Relaunching beryl with __GL_YIELD="NOTHING"
**************************************************************
* Beryl system compatiblity check *
**************************************************************

Detected xserver : NVIDIA

Checking Display :0.0 ...

Checking for XComposite extension : passed (v0.3)
Checking for XDamage extension : passed
Checking for RandR extension : passed
Checking for XSync extension : passed

Checking Screen 0 ...

Checking for GLX_SGIX_fbconfig : passed
Checking for GLX_EXT_texture_from_pixmap : passed
Checking for non power of two texture support : passed
Checking maximum texture size : passed (4096x4096)

libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libswitcher.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libscale.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libsnow.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libcrashhandler.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libsvg.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libopacify.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libdecoration.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libdbus.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libwater.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libannotate.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libstate.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libmove.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libtrailfocus2.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libanimation.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libwobbly.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libsplash.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libneg.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libput.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/librotate.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libimgjpeg.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libbench.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libinputzoom.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libzoom.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libplace.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libgroup.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/lib3d.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libblurfx.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libshowdesktop.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libcube.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libresize.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libsnap.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libpng.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libfade.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libthumbnail.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libplane.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libscreenshot.so' plugin
libberylsettings: Couldn't get vtable from '/usr/lib/beryl/libclone.so' plugin
** Message:
** Message: /usr/lib/beryl/backends/libini.so: undefined symbol: beryl_setting_value_set_raw_string
** Message: (\u0012?(\u0012?d symbol: beryl_setting_value_set_raw_string
** Message: /usr/lib/beryl/backends/libini.so: undefined symbol: beryl_setting_value_set_raw_string

** (process:10294): WARNING **: read_setting not found in backend ini

** (process:10294): WARNING **: write_setting not found in backend ini

** (process:10294): WARNING **: read_init not found in backend ini

** (process:10294): WARNING **: read_done not found in backend ini

** (process:10294): WARNING **: write_init not found in backend ini

** (process:10294): WARNING **: write_done not found in backend ini

** (process:10294): WARNING **: get_setting_is_integrated not found in backend ini

** (process:10294): WARNING **: get_setting_is_read_only not found in backend ini

** (process:10294): WARNING **: get_existing_profiles not found in backend ini

** (process:10294): WARNING **: backend_init not found in backend ini

** (process:10294): WARNING **: backend_fini not found in backend ini
Segmentation fault

non parte qualche idea