In questa guida viene analizzata la configurazione del reparto grafico di Ubuntu, essenzialmente scheda video e monitor, e vengono indicate le soluzioni ai problemi più comuni. X.org è il software responsabile della gestione di scheda grafica, monitor, tastiera, mouse e altri dispositivi di input e output. La maggior parte delle impostazioni necessarie al corretto funzionamento vengono ricavate automaticamente ad ogni avvio di Ubuntu e ogni volta che viene collegato un dispositivo (per esempio un monitor esterno, un mouse usb, una tastiera wireless, ecc). Sono inoltre disponibili strumenti grafici o a linea di comando che permettono di modificare al volo impostazioni come risoluzione del monitor, sensibilità del touchpad, eccetera.
Modificare la configurazione di Xorg
Per modificare la configurazione di Xorg bisogna editare a mano il file /etc/X11/xorg.conf. Questo file non è presente in Ubuntu 9.10 perchè tutte le impostazioni vengono riconosciute o calcolate automaticamente, ma quando qualcosa va storto, o se si vuole personalizzare la propria configurazione, rimane possibile creare a mano il file di configurazione in modo che le impostazioni manuali prevalgano su quelle automatiche. Ci sono diversi modi per farlo:
Se Ubuntu parte regolarmente, è possibile premere ALT+F2 e inserire il comando:
gksudo gedit /etc/X11/xorg.conf
oppure aprire Applicazioni > Accessori > Terminale e dare lo stesso comando.
Un altro modo è premere i tasti CTRL+ALT+F2 per spostarsi dalla modalità grafica al terminale virtuale, fare login e dare il comando:
sudo nano /etc/X11/xorg.conf
Se Ubuntu non parte e bisogna avviare il sistema in recovery mode, è possibile usare il comando:
sudo nano /etc/X11/xorg.conf
Nota: Ubuntu 9.10 e successivi non presentano un file /etc/X11/xorg.conf, pertanto i comandi indicati ne creeranno uno vuoto che dovrà essere compilato correttamente.
Descrizione delle sezioni
Struttura generica delle sezioni
Il file di configurazione è diviso in diverse sezioni, ciascuna relativa ad un componente. Ogni sezione è costruita secondo questo schema generico:
#I commenti iniziano con un "#" e terminano a fine riga. Vengono ignorati da Xorg, #ma possono tornare utili all'utente. Section "NomeDellaSezione" VoceGenerica "Valore" Option "NomeDellaOpzione" "Valore" #I commenti possono anche iniziare a metà riga #VoceGenerica #la voce precedente è stata commentata invece che cancellata, così X.org non la vede più #ma l'utente volendo la riabilita facilmente eliminando il "#" EndSection #commento
Di seguito vengono analizzate le sezioni da modificare in caso di problemi di risoluzione del monitor o di driver della scheda video.
Sezione "Device"
La sezione "Device" accoglie la configurazione della scheda video. Possono esserci più sezioni "device" che si riferiscono alla stessa scheda video, caso in cui verrà usata la sezione "Device" indicata nella sezione "Screen" (vedi più sotto), oppure quella che viene prima nel file.
La forma generica è la seguente:
Section "Device" Identifier "nome" Driver "nome del driver" Option "nome dell'opzione" "valore" EndSection
- «Identifier» è obbligatoria ed è un semplice identificativo, dal momento che possono esserci più sezioni "Device" nella configurazione. L'identificativo scelto andrà usato poi nella sezione "Screen" alla voce «Device», altrimenti verrà usata la prima sezione "Device" presente nella configurazione.
- «Driver» è il nome del driver di X.org dedicato alla scheda video.
- «Option» indica un'opzione particolare e il valore assegnatole.
Sezione "Monitor"
La sezione "monitor" è dedicata alle caratteristiche dello schermo in uso. Ubuntu configura automaticamente il monitor, ma a volte fallisce nel farlo e diventa necessario creare una sezione "Monitor" personalizzata. Se è presente una sezione "Monitor" deve essere presente anche una sezione "Screen" che punta ad essa, altrimenti verrà ignorata.
La forma generica è la seguente:
Section "Monitor" Identifier "nome" HorizSync horizsync-range VertRefresh vertrefresh-range ModeLine "nome a piacere" mode-description Option "PreferredMode" "nome" Option "nome dell'opzione" "valore" EndSection
- «Identifier» è obbligatoria ed è un semplice identificativo, dal momento che possono esserci più sezioni "Device" nella configurazione. L'identificativo scelto andrà usato poi nella sezione "Screen" alla voce «Monitor».
«HorizSync» e «VertRefresh» sono gli intervalli validi per calcolare le risoluzioni utilizzabili dal monitor. Questi valori vengono letti direttamente dal monitor, ma se la lettura fallisce bisogna specificarli a mano (leggendo l'etichetta sul retro del monitor oppure il manuale d'uso dello stesso), o in alternativa bisogna specificare una voce «Modeline» valida (vedi più sotto).
- «Modeline» è composta da un identificativo a piacere e un insieme di parametri che specificano una singola combinazione di risoluzione, refresh e altri parametri. È possibile creare più voci «Modeline». Oltre a quelle specificate nella configurazione, vengono caricate automaticamente le voci «Modeline» appartenenti allo standard VESA più altre prese direttamente dal monitor e dalla scheda grafica, dopo aver letto varie informazioni dal monitor e dopo aver passato dei test di controllo.
«Option "PreferredMode"» indica la voce «Modeline» da usare per impostare risoluzione e altri parametri del monitor. Se non viene usata questa opzione, Xorg leggerà tra le informazioni fornite dal monitor la risoluzione preferita; se il monitor non fornisce questa informazione, Xorg tenterà di indovinare la risoluzione corretta da usare, ma questo calcolo può a volte fallire, col risultato di una risoluzione errata. In casi del genere diventa necessario usare questa opzione.
- «Option» indica un'opzione particolare e il valore assegnatole.
Sezione "Screen"
In questa sezione sono indicate la scheda video e il monitor da usare, più diverse opzioni per la grafica.
La forma generica è la seguente:
Section "Screen" Identifier "name" Device "devid" Monitor "monid" SubSection "Display" Depth depth Virtual xdim ydim Modes "mode-name" "mode-name2" "..." EndSubSection EndSection
- «Identifier» è obbligatoria ed è un semplice identificativo, dal momento che possono esserci più sezioni "Screen" nella configurazione.
- «Device» indica la sezione "Device" che descrive la scheda video da usare. Se non è specificata, verrà usata la prima sezione "Device" presente, altrimenti verrà usata la configurazione automatica.
- «Monitor» individua la sezione "Monitor" che descrive il monitor da usare. Se non è specificata, verranno ignorate eventuali sezioni "Monitor" presenti e la configurazione del monitor verrà calcolata automaticamente.
All'interno della sottosezione "Display":
- «Depth» indica la profondità di colore da usare (valori comuni: 8, 15, 16, 24). Il valore 32 non è corretto, usare invece 24.
- «Virtual» è utile quando si usano due monitor, e descrive una risoluzione che deve essere maggiore della risoluzione in uso più la risoluzione del secondo monitor in uso.
«Modes» indica quali voci «Modeline» (vedere la sezione "Monitor" più sopra) prendere in considerazione. La risoluzione può essere cambiata durante la sessione utente con lo strumento Sistema > Preferenze > Schermo, o con lo strumento a riga di comando xrandr.
Risoluzione problemi comuni
Non riesco a impostare la risoluzione corretta
Il problema è che Ubuntu non riesce a leggere informazioni essenziali riguardanti il monitor, quindi bisogna fornirgli manualmente le informazioni corrette.
Impostare le frequenze di aggiornamento corrette
Un primo tentativo da fare è ottenere gli intervalli di frequenza validi per hsync e vrefresh (leggendo l'etichetta sul retro del monitor oppure il suo manuale d'uso cartaceo o digitale) e inserirli nella configurazione di Xorg, come da esempio:
Section "Screen" Identifier "Personalizzato" Monitor "MonitorPersonalizzato" EndSection Section "Monitor" Identifier "MonitorPersonalizzato" HorizSync 28-33 VertRefresh 40-75 EndSection
Se la sezione "Screen" è già presente, assicurarsi che la sua voce «Monitor» corrisponda alla voce «Identifier» della sezione "Monitor" corretta.
Riavviare la sessione utente per rendere effettive le modifiche, quindi controllare che lo strumento Sistema > Preferenze > Schermo riporti la risoluzione desiderata tra quelle disponibili.
Aggiungere una risoluzione a quelle disponibili
Per evitare eventuali problemi in avvio di Ubuntu, viene descritta prima la procedura per testare diverse risoluzioni in sicurezza (in caso di problemi è sufficiente riavviare il sistema), e poi la procedura per rendere permanenti le modifiche.
Aprire Applicazioni > Accessori > Terminale.
Usare il seguente comando per sapere come viene chiamata l'uscita video alla quale è collegato il monitor:
xrandr | grep connected
Un possibile risultato è:
VGA-0 disconnected (normal left inverted right x axis y axis) LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm S-video disconnected (normal left inverted right x axis y axis)
In questo caso l'uscita attiva (connected) si chiama LVDS.
Usare lo strumento a riga di comando cvt per ottenere tutti i dettagli necessari per configurare una singola risoluzione, come da esempio:
cvt 1280 1024 75
- «1280» è la dimensione orizzontale desiderata per la risoluzione.
- «1024» è la dimensione verticale desiderata per la risoluzione.
- «75» è la frequenza di aggiornamento desiderata per la risoluzione. È un parametro facoltativo, se omesso viene usato il valore «60» (valore comune per i monitor LCD, ma basso per i monitor CRT, per i quali è consigliabile un valore di almeno 70).
Il comando cvt restituisce un risultato simile al seguente:
# 1280x1024 74.90 Hz (CVT 1.31M4) hsync: 80.30 kHz; pclk: 138.75 MHz Modeline "1280x1024_75.00" 138.75 1280 1368 1504 1728 1024 1027 1034 1072 -hsync +vsync
Testare la risoluzione usando i seguenti comandi:
xrandr --newmode "1280x1024_75.00" 138.75 1280 1368 1504 1728 1024 1027 1034 1072 -hsync +vsync xrandr --addmode LVDS "1280x1024_75.00" xrandr --output LVDS --mode "1280x1024_75.00"
«"1280x1024_75.00" 138.75 1280 1368 1504 1728 1024 1027 1034 1072 -hsync +vsync» questa parte va sostituita con la riga Modeline restituita dal comando cvt, ma senza la parola "Modeline". Attenzione: non usare i valori usati in questa guida; copiare invece quelli risultanti dal comando cvt usato sul proprio sistema.
- «LVDS» è l'uscita alla quale è collegato il monitor.
- «"1280x1024_75.00"» è preso sempre dalla riga Modeline ottenuta col comando cvt.
Se la risoluzione viene impostata correttamente e si è soddisfatti del risultato, si può passare a configurare Xorg, altrimenti riprovare utilizzando valori diversi per il comando cvt.
Dopo aver testato la risoluzione per controllare che non ci siano problemi, è possibile passare a modificare la configurazione di Xorg.
Dal comando cvt usato in precedenza, ricopiare l'intera riga Modeline all'interno della configurazione di Xorg, come da esempio:
Section "Screen" Identifier "Personalizzato" Monitor "MonitorPersonalizzato" SubSection "Display" Modes "1280x1024_75.00" EndSubSection EndSection Section "Monitor" Identifier "MonitorPersonalizzato" Modeline "1280x1024_75.00" 138.75 1280 1368 1504 1728 1024 1027 1034 1072 -hsync +vsync EndSection
Attenzione: non copiare la riga Modeline usata in questa guida. Copiare invece quella risultante dal comando cvt usato sul proprio sistema.
Riavviare la sessione utente per rendere effettive le modifiche, quindi controllare che lo strumento Sistema > Preferenze > Schermo riporti la risoluzione desiderata tra quelle disponibili.
Ulteriori risorse
[https://help.ubuntu.com/community/FixVideoResolutionHowto Impostare la corretta risoluzione del monitor (in inglese)]