In questi giorni di calura con agosto ormai alle porte, tra il lavoro e la tesi mi tocca risolvere anche dei problemi alla mia Ubuntu… apparentemente sorti dal nulla.
Due giorni fa accendo il mio pc e faccio per avviare il mio editor Latex per la compilazione della tesi, LyX. Noto qualcosa di strano: la pagina aveva molte righe e caratteri in meno rispetto al solito. Non solo ma già all’avvio del pc mi accorgo che le icone e il Desktop si erano raddoppiati. La risoluzione dello schermo da 1024 x 768 era passata a 800 x 600 senza alcun preavviso e soprattutto in modo del tutto irreversibile. Andando, infatti a sistema/preferenze/risoluzione dello schermo non avevo scelta che per una bassissima risoluzione a 800 x 600.
La mia è una scheda Nvidia GeForce FX5200 128 Mb. Funzionava benissimo con i driver con restrizione di Ubuntu. Giravano a meraviglia prima Beryl e attualmente il nuovo Compiz Fusion. Non mi spiego la causa di questo disguido sulla risoluzione dello schermo. Uno sguardo rapido al file xorg.cof e mi sembra non ci sia nulla di strano.
Mi decido a scaricare i Driver proprietari dal sito della Nvidia. Disabilito l’avvio automatico di compiz-fusion. Disabilito-disinstallo i driver con restrizione. Provo a installare i proprietari e a questo punto dico maledettamente addio al mio server X e all’acceleratore 3D per un bel po’. Inizia una battaglia che è durata fino a ieri sera.
Da modalità grafica (dopo aver fatto ben 3 backup del file xorg) inizio a smanettare un po’. Mi ristudio il file Xorg. Provo a modificare nella Section “Device” alla voce driver da “nvidia” a “nv” e viceversa, provo anche con “vesa”. Sempre un “due di picche”. Provo a rieditare il file xorg tramite un sudo dpkg-reconfigure xserver-xorg ma anche qui lavoro decisamente invano. Mi rifaccio a dei forum o guide che hanno avuto il mio stesso problema (pochi in realtà!) e non ne vengo a capo.
Doccia fresca e decido di lasciar perdere… Mi rimetto a lavoro sulla mia tesi. Il primo tempo a sua disposizione (ad Ubuntu e al file xorg e ai Driver grafici) era scaduto. Dopo un bel paio d’ore abbondanti mi riprendo con un caffè e inizio il secondo tempo. Ricontrollo tutto daccapo: compatibilità dei driver, backup del file xorg e provo a disinstallare i driver proprietari. Decido di reinstallare i Driver Restricted Modules. Mi viene un messaggio alquanto bizzarro del tipo: “Questo hardware non necessita di driver ristretti“… La mia domanda spontanea “ma mi pigli per il …?!”. Ovviamente la risposta era “Sì” e se inconsciamente lo sapevo già, consciamente lo ignoravo ancora.
Provo a riavviare il tutto e ri-inizio daccapo leggendo per filo e per segno ogni messaggio e/o postilla che mi veniva dallo schermo impazzito. Ad un certo punto mi vedo una schermata semi-blu a mo’ di Windows impallato e, superato il ribrezzo iniziale, ho cercato di decifrare i messaggi di errore che mi venivano dal server X tra caratteri in chiaro e altri in stile “Grafica Matrix”. Scorgo una cosa interessante: qualcosa che aveva a che fare con la versione dei Linux-restricted-modules. Apro Synaptic e provo a reinstallarli. Uno a zero per me. Perche a questo punto se provavo a reinstallare i driver restricted modules non mi veniva più quel messaggio ambiguo di cui sopra. Tuttavia, pur provando a reinstallare i driver con restrizione e auto-configurandosi il file xorg (speravo di riottenere tutto come prima!), ottengo un nulla di fatto: 1-1.
Per disinstallare i driver con restrizione arrivo a capire che basta dare un sudo apt-get remove nvidia-glx senza passare per forza dalla GUI dei Driver con restrizione. In seguito, da uno dei siti che leggevo per capirci qualcosa, apprendo che ci sono tre tipologie di driver resticted modules che si installano con synaptic:
- nvidia-glx per schede Nvidia “normali”: sono i driver del kernel di partenza di Ubuntu al momento dell’installazione (quelli che si installano in modo predefinito quando scegliamo i driver restricted modules durante l’installazione iniziale di Ubuntu).
- nvidia-glx-new: per schede Nvidia “normali”, con i kernel più aggiornati.
- nvidia-glx-legacy: per schede Nvidia un po’ datate.
Qui è stato il vero punto di svolta perchè rileggendo con attenzione il log della ricompilazione del file xorg mi accorgo che il mio kernel era ormai ad una versione avanzata (dopo mesi di aggiornamenti) rispetto ai driver nvidia-glx (per così dire di partenza) e che ubuntu in qualsiasi momento tu glielo chieda, installa. Mi spiego meglio: se installo Ubuntu che ha una versione del kernel di partenza “N”, e subito dopo installo i driver restricted modules da Ubuntu, lui mi installa proprio quelli che sono idonei per la versione del Kernel “N”. Se successivamente, tramite aggiornamenti automatici e periodici, il mio Kernel passa alla versione “N+1″ e reinstallo i driver ristretti di Ubuntu, mi saranno installati sempre i predefiniti, vale a dire quelli per la versione del Kernel “N” (nel mio caso gli nvidia-glx).
Ora come ovviare? Semplicissimo come bere un bicchier d’acqua. La soluzione era dietro l’angolo e non la vedevo. Installare “a mano” i driver nvidia-glx-new che contemplano versioni avanzate del Kernel. Nel farlo si ricompila automaticamente il kernel e… ZZZACC!!! riecco apparire il mio bel server X con tanto di acceleratore grafico 3D. Metto in avvio automatico il compiz-fusion e tutto torna come prima. Con la possibilità, ovviamente, di scegliere la famosa risoluzione dello schermo (mela della discordia!) e riportarla a 1024 x 768.
Questa è tutta la storiella di me, malcapitato. Adesso tentero in pochi passaggi di buttar giù non una guida ma un punto di riferimento per chi si trovasse con il mio stesso problema.
1) Fate un po’ di Backup del file xorg.conf con il comando sudo cp /etc/X11/xorg.conf /etc/X11/xorg_copia.conf
2) Se avete già installati i Driver Ristretti intanto disattivate tutto ciò che parte in automatico all’avvio e usa l’acceleratore 3D: Beryl, Compiz, Compiz-fusion, ecc… da Sistema/Preferenze/Sessioni.
3) Da Sistema/Amministrazione/Gestore Driver con restrizione disabilitate-disinstallate i driver con restrizione. Meglio se col comando sudo apt-get remove –purge nvidia-glx (o nvidia-glx-new, o nvidia-glx-legacy).
4) Nella sezione “Device” del vostro file xorg.conf con gedit (o nano se usate la modalità grafica) cambiate alla voce Driver la voce da “nv” a “nvidia” (dovrebbe poter partire anche con “vesa”).
Se invece avete installato i Driver proprietari, posizionatevi nella cartella in cui è messo l’installer è date il comando
sudo sh NVIDIA-Linux-x86-1.0-xxxx-pkg1.run –uninstall
5) Diamo una bella pulita alla nostra Ubuntu con i comandi
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get autoremove
sudo dpkg –purge `COLUMNS=300 dpkg -l “*” | egrep “^rc” | cut -d\ -f3
6) A questo punto semplicemente andiamo nel Gestore pacchetti Synaptic e installiamo i driver nvidia-glx-new (ovviamente date un’occhiata alla versione del vostro Kernel e vedete se è il caso di installare gli nvdia-glx-new, gli nvidia-glx o gli nvidia-glx-legacy).
Se tutto è andato bene al comando glxinfo | grep direct avremo un output del genere direct rendering: Yes.
E al comando cat /proc/driver/nvidia/version dovreste potere avere un output del genere: NVRM version: NVIDIA UNIX x86 Kernel Module 1.0-9755 Mon Feb 26 23:21:15 PST 2007 CC version: gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4).
A questo punto potete riavviare il tutto e riattivare i programmi in esecuzione automatica all’avvio come Beryl o Compiz.
Se avete problemi consultate il log del vostro xorg.file col comando cat /var/log/Xorg.0.log
In Bocca al Lupo!!!







ottimo mi hai risolto un problema che portavo avanti ada tempo.
ciao
Felicissimo di esserti stato utile, Vince.
Ciao!
problema simile, non mi permette di cambiare la risoluzione. ma io ho windows e non linux… quindi non so che fare.
ciao