That's my blog… Life and Linux

Installare Xorg 7.2 e Mesa 6.5.2 in Ubuntu Edgy eft

Xorg-7.2Ovvia ora è finita l’ora di fare i giochini :P, ed è giunto di mettersi a fare qualcosa di più serio (o forse no! :D).
Beh, che questa sia una cosa seria o meno, toccherà a voi giudicarlo di certo a me piace avere sempre una macchina in forma e ben aggiornata nei punti che dico io (per questo mi sta stretta sia una release stabile che una di sviluppo), comunque da utente AiGLX con driver radeon sono sempre stato alla ricerca del massimo delle prestazioni e supporto per il mio Beryl tentando in più di un’occasione anche di aggiornare Mesa (la libreria 3D) all’ultima versione stabile o alla versione in sviluppo ma sempre con scarsi risultati.
La colpa in quelle situazioni era il fatto che Mesa 6.5.2 necessita un nuovo glproto (che gestisce la comunicazione tra server grafico e librerie 3d), e quindi risultava fondamentale l’aggiornamento anche del server grafico ad una versione più recente (presa da git) o più recentemente alla versione 7.2 che come saprete è uscita ufficialmente15 giorni fa (anche se già era disponibile da decine di giorni in git e più recentemente nell’ftp).

Comunque sia, ormai ce la dovevo fare e ce l’ho fatta (ovviamente), ricompilandomi Xorg, Mesa e altre librerie parallele (seguendo quanto ho scritto in questo post). Avevo iniziato a lavorare su Xorg e mesa git circa l’8 Febbraio come potete leggere in questo bug, ma ho raggiunto il successo solo il giorno successivo; in seguito ho usato Xorg e Mesa pacchettizzato in versioni "standard" fino a ieri quando mi sono messo in tesa di concedere questo piccolo sfizio anche agli altri utenti aprendo un repository. Per far ciò ho quindi ricompilato tutti i pacchetti relativi a xorg importati da feisty, ovviamente avvalendomi di alcuni miei script  che ho scritto al volo per automatizzare il tutto permettendomi di ottenere il tutto in circa 5 ore di compilazione! 🙂

A questo punto, siete pronti per aggiornare la vostra Ubuntu-box!

Fatta la “proverbiale prefazione” mi preme sottolineare già in apertura che quanto è indicato qui sotto è consigliato solo per gli UTENTI ESPERTI (ossia per coloro che sappiano gestire la propria macchina anche in caso di problemi col server X); dico questo non tanto perché quanto imparerete è di difficile attuazione (anzi dei due proprio perché è semplicissimo), ma perché nonostante ho feedback positivi da chi ha provato questo nuovo server X, non posso garantirvi il funzionamento su tutte le configurazioni.

Ritengo inoltre l’aggiornamento utile fondamentalmente per chi utilizza normali applicazioni 3D oltre che per chi usa un Composite Manager, ma in questo caso è caldamente consigliato l’aggiornamento solo se utilizzate AiGLX visto che non ho testato assolutamente Xgl sopra questo server (Aldolat ci è comunque riuscito).

Vi annuncio inoltre, che ho studiato le versioni dei programmi che andrete ad aggiornare in modo tale che non vadano a superare mai la versione presente in feisty, così che l’aggiornamento risulti assolutamente innocuo per gli sviluppi futuri della vostra macchina. Spero di aver fatto tutto correttamente, ad ogni modo i miei pacchetti funzioneranno anche in feisty quindi il male dovrebbe essere minore anche in caso abbia commesso qualche disattenzione.

Detto questo spero che la schiera di utenti che ha deciso di seguirmi abbia ancora una sua «consistenza», ad ogni modo ecco cosa otterrete con l’aggiornamento:

  • Migliorato il funzionamento ed il supporto di AiGLX
  • Migliorato il supporto a Compiz e Beryl
  • Incrementate le performances 3D usando i driver open source (Intel e ATi sopra tutti)
  • Eliminato il freezing durante il VT-switching su AiGLX
  • Eliminati i problemi con il ripristino in seguito ad un ibernazione (legato a quanto sopra)
  • Mhmhm… Tutti gli altri vantaggi di XOrg 7.2 e Mesa 6.5.2 😀

Ovvia, ora che avete un po’ di bava alla bocca (non è vero, però…) possiamo iniziare con l’aggiornamento. I passaggi sono tutti molto semplici, fondamentalmente dovrete aprire il vostro sources.list (vale a dire sudo gedit /etc/apt/sources.list) ed aggiungervi il seguente repository:

# Treviño’s Ubuntu edgy Xorg-7.2 Repository (GPG key: 81836EBF – DD800CD9)
deb http://download.tuxfamily.org/3v1deb edgy xorg-7.2

Adesso, ne viene che dovrete aggiornare il vostro database di apt con sudo apt-get update e quindi di scaricare ed installare gli aggiornamenti, per farlo vi consiglio di usare tool come synaptic o adept piuttosto che il più rude sudo apt-get upgrade per poter così controllare in modo più accurato quello che state facendo.

Una volta che avrete applicato gli aggiornamenti, prima di riavviare X, non ci dovrebbero essere operazioni da effettuare, fondamentalmente il file di configurazione /etc/X11/xorg.conf dovrebbe andar bene com’è, l’unica cosa se utilizzate EXA come AccelMethod, sappiate che è buggata e ci sono problemi col rendering del testo; vi consiglio quindi di usare XAA.
Se volete in qualche modo testare il funzionamento di quanto installato potete semplicemente dare il comando X -version e dovreste ottenere qualcosa del genere:

X Window System Version 7.2.0
Release Date: 22 January 2007
X Protocol Version 11, Revision 0, Release 7.2
Build Operating System: Linux Ubuntu
Current Operating System: Linux 3v1 2.6.20-6-generic #1 SMP Mon Feb 5 15:42:24 CET 2007 i686
Build Date: 23 January 2007
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Module Loader present

Questo non è comunque un test valido, semmai potreste provare a lanciare un nuovo server (direttamente dalla vostra sessione X) con un comando tipo X :2 & DISPLAY=:2 xterm, così facendo potreste leggere gli eventuali errori direttamente dal terminale a cui lanciate il nuovo server, se il nuovo server (con un xterm), parte siete a posto, ad ogni modo potrete ritornare al server X di origine cambiando VT (con Ctrl+Alt+Fx dove x è o 7 o 4, cmq provateli un po’ tutti :P).
Vi ammetto che io non ho praticato il test sopra in seguito al mio upgrade, quindi potrebbe anche non funzionare (ma non credo) se avete due server avviati di differenti versioni. Quello che è certo è che se lo faccio ora mi funziona correttamente.

Ad ogni modo senza star a fare troppe prove che spaccano il cervello, non posso che augurarvi buona fortuna e dirvi di fare un bel Ctrl+Alt+Backspace (o di chiudere la vostra sessione KDE/GNOME) per riavviare X!

Bene, spero sia andato tutto a posto 🙂
In caso contrario, invece se X non dovesse partire vi consiglio di guardare cosa c’è di errato nel log di Xorg magari usando il comando tipo grep EE /var/log/Xorg.0.log|less.

Se invece usate Beryl o Compiz ed avete problemi di cubo bianco con nVidia, dovrete reinstallare (rigenerando moduli del kernel e di xorg) i driver della vostra scheda video (magari usando Envy).

Se invece volete downgradare a Xorg 7.1 e Mesa 6.5.1+cvs (ossia gli standard di edgy); prima di tutto dovrete rimuovere il repository dalla sources.list, quindi dopo aver dato il classico sudo apt-get update dovrete avviare questo comando:

sudo apt-get install -f libdrm2/edgy libdrm-dev/edgy libgl1-mesa-dev/edgy libgl1-mesa-dri/edgy libgl1-mesa-glx/edgy libgl1-mesa-swx11/edgy libgl1-mesa-swx11-dbg/edgy libgl1-mesa-swx11-dev/edgy libglu1-mesa/edgy libglu1-mesa-dev/edgy libosmesa6/edgy libosmesa6-dev/edgy mesa-common-dev/edgy mesa-swx11-source/edgy mesa-utils/edgy x11-common/edgy x11proto-damage-dev/edgy x11proto-gl-dev/edgy x11proto-input-dev/edgy x11proto-randr-dev/edgy xbase-clients/edgy xdmx/edgy xdmx-tools/edgy xkb-data/edgy xkeyboard-config/edgy xlibmesa-dri/edgy xlibmesa-gl/edgy xlibmesa-glu/edgy xlibs-dev/edgy xlibs-static-dev/edgy xnest/edgy xorg/edgy xserver-xephyr/edgy xserver-xorg/edgy xserver-xorg-core/edgy xserver-xorg-dev/edgy xserver-xorg-input-acecad/edgy xserver-xorg-input-aiptek/edgy xserver-xorg-input-all/edgy xserver-xorg-input-digitaledge/edgy xserver-xorg-input-elographics/edgy xserver-xorg-input-fpit/edgy xserver-xorg-input-hyperpen/edgy xserver-xorg-input-kbd/edgy xserver-xorg-input-magellan/edgy xserver-xorg-input-mouse/edgy xserver-xorg-input-mutouch/edgy xserver-xorg-input-palmax/edgy xserver-xorg-input-spaceorb/edgy xserver-xorg-input-summa/edgy xserver-xorg-input-synaptics/edgy xserver-xorg-input-tek4957/edgy xserver-xorg-input-void/edgy xserver-xorg-input-wacom/edgy xserver-xorg-video-all/edgy xserver-xorg-video-apm/edgy xserver-xorg-video-ark/edgy xserver-xorg-video-ati/edgy xserver-xorg-video-ati/edgy xserver-xorg-video-chips/edgy xserver-xorg-video-cirrus/edgy xserver-xorg-video-cyrix/edgy xserver-xorg-video-dummy/edgy xserver-xorg-video-fbdev/edgy xserver-xorg-video-glint/edgy xserver-xorg-video-i128/edgy xserver-xorg-video-i740/edgy xserver-xorg-video-i810/edgy xserver-xorg-video-imstt/edgy xserver-xorg-video-mga/edgy xserver-xorg-video-neomagic/edgy xserver-xorg-video-newport/edgy xserver-xorg-video-nv/edgy xserver-xorg-video-rendition/edgy xserver-xorg-video-s3/edgy xserver-xorg-video-s3virge/edgy xserver-xorg-video-savage/edgy xserver-xorg-video-siliconmotion/edgy xserver-xorg-video-sis/edgy xserver-xorg-video-sisusb/edgy xserver-xorg-video-tdfx/edgy xserver-xorg-video-tga/edgy xserver-xorg-video-trident/edgy xserver-xorg-video-tseng/edgy xserver-xorg-video-v4l/edgy xserver-xorg-video-vesa/edgy xserver-xorg-video-vga/edgy xserver-xorg-video-vmware/edgy xserver-xorg-video-voodoo/edgy xutils/edgy xvfb/edgy x-window-system/edgy x-window-system-core/edgy 

Eventualmente salvatevelo in un file così che si accessibile anche nel caso X non vi ripartisse (caso che cmq ritengo piuttosto improbabile)… 

Ovvia, mi pare d’aver detto tutto… A presto!

PS: Questo articolo si è liberamente basato sul post che ho pubblicato ieri su ubuntuforums.