Super xorg.conf e la risoluzione del monitor

xorg.conf

Da quando mi sono avvicinato al mondo GNU/Linux, soprattutto con le distribuzioni live di Ubuntu, ho sempre riscontrato difficoltà ad impostare la risoluzione del monitor a più di 800×600.

Il problema è che nei forum e nelle guide in rete vengono dati spesso dei consigli che non funzionano perchè riguardano il cambio di risoluzione su un sistema già ben configurato: ma hai voglia ad usare le varie utility grafiche e i comandi nel terminale se il sistema non è stato predisposto per funzionare bene a varie risoluzioni, fra cui quelle più alte.

Per non parlare poi del caso in cui si stia utilizzando una distribuzione live: le modifiche devono essere fatte “al volo”, senza possibilità di riavviare, e non devono prevedere l’utilizzo di driver diversi da quelli generici già presenti sul sistema (non sono un esperto e magari si possono caricare i driver proprietari senza riavviare, ma la ritengo una complicazione inutile per provare una live a più di 800×600).

Il cuore della configurazione del server grafico risiede nel suo file di configurazione, xorg.conf, spesso piazzato nel percorso /etc/X11. Tutto sta nell’avere questo file scritto correttamente in base all’hardware in uso.

S’è anche parlato di configurazione automatica di xorg.conf, di xorg.conf che non servirà più a niente (http://pollycoke.net/2006/11/11/xorgconf-sara-presto-un-brutto-ricordo-del-passato/), di xorg.conf a prova di proiettile (vedi progetto bullet-proof-x su https://wiki.ubuntu.com/BulletProofX). Con tutto il rispetto per chi lavora alle configurazioni automatiche, nel mio caso personale posso dire che tutto questo non ha mai funzionato correttamente una volta che sia una, e le varie modifiche apportate a xorg.conf dalle varie utility a cui il nuovo utente si appella per risolvere il problema non fanno nient’altro che aumentare la confusione.

Ho sentito ed ho provato distribuzioni che hanno meno problemi di altre nella configurazione grafica, ma per risolvere il problema alla radice secondo me la verità è questa: è ancora necessario avere una conoscenza base delle impostazioni del server grafico ed una conoscenza delle frequenze (orizzontale e verticale) a cui può funzionare il proprio monitor; poi, con queste basi, si va ad editare a mano il file xorg.conf.

LA MIA CONFIGURAZIONE HARDWARE:

  • Scheda video integrata Nvidia GeForce 6100
  • Monitor LG L1919S (frequenza orizzontale: 30 – 83 KHz; frequenza verticale, conosciuta come refresh: 56 – 75 Hz)

IL FILE XORG.CONF CHE CONSIGLIO (COME BASE DA MODIFICARE):

Section "ServerLayout"
	# SERVER = SCREEN + INPUT DEVICE
	Identifier	"LayoutZero"
	Screen 0  	"ScreenZero" 0 0
	InputDevice	"KeyboardZero"		"CoreKeyboard"
	InputDevice	"MouseZero"		"CorePointer"
EndSection

Section "InputDevice"
	# MOUSE
	Identifier	"MouseZero"
	Driver		"mouse"
	Option		"Protocol"		"auto"
	Option		"Device"		"/dev/psaux"
	Option		"Emulate3Buttons"	"no"
	Option		"ZAxisMapping"		"4 5"
EndSection

Section "InputDevice"
	# TASTIERA
	Identifier	"KeyboardZero"
	Driver		"kbd"
	Option		"XkbRules"		"xorg"
	Option		"XkbModel"		"pc105"
	Option		"XkbLayout"		"it"
EndSection

Section "Device"
	# SCHEDA VIDEO
	Identifier	"VideoZero"
	Driver		"vesa"
EndSection

Section "Monitor"
	# MONITOR
	Identifier	"MonitorZero"
	HorizSync	30.0 - 83.0
	VertRefresh	56.0 - 75.0
	Option		"DPMS"
#	Option		"TargetRefresh"		"60"
#	Option		"PreferredMode"		"1280x1024"
EndSection

Section "Screen"
	# SCREEN = SCHEDA VIDEO + MONITOR
	Identifier	"ScreenZero"
	Monitor		"MonitorZero"
	Device		"VideoZero"
	DefaultDepth	24
		SubSection "Display"
			Depth	24
			Modes	"1280x1024" "1024x768" "800x600" "640x480"
		EndSubSection
EndSection

Come si può notare con un’occhiata il contenuto del file è suddiviso in sezioni.

In tutte le sezioni è presente un Identifier, ossia un identificatore; pensiamolo come un nome assegnato a quella specifica sezione. Se state già pensando che se è un nome potete cambiarlo, vi ricordo di farlo in modo coerente, perchè se è vero che cambiare nome alla sezione ServerLayout non crea alcun problema, non è altrettanto vera la stessa cosa per la sezione Screen ad esempio, visto che viene richiamata da ServerLayout, oppure Monitor che viene richiamata da Screen.

La prima sezione, ServerLayout, si può pensare come l’impostazione globale del server grafico, composto dallo Screen di nome ScreenZero, e da due periferiche di input: tastiera e mouse di nome KeyboardZero e MouseZero. Da notare che a fianco ad esse compaiono le opzioni  CoreKeyboard e CorePointer, che fanno sì che tali periferiche siano quelle di input primario (in genere le prime trovate dal server sono quelle considerate primarie, io preferisco specificarlo).

Successivamente c’è la sezione InputDevice dedicata alla configurazione del Mouse; è importante “il nome” definito con l’Identifier, il driver mouse definito con Driver e tutte le opzioni successive. Attenzione alle ultime 3 opzioni che sono da cambiare nel caso non abbiate un mouse collegato alla porta ps/2 (magari l’avete usb), nel caso vogliate emulare i tre pulsanti e nel caso vogliate configurare in altro modo l’uso della rotellina.

Si prosegue con la sezione InputDevice dedicata alla configurazione della Tastiera; anche qui c’è “il nome” definito con l’Identifier, il driver kbd definito con Driver e le varie opzioni che definiscono il modello di tastiera italiana di tipo pc105. Come per il mouse potrebbero essere necessarie delle modifiche per rispecchiare il vostro hardware.

Poi si trova la sezione Device dedicata alla Scheda Video; il driver che consiglio è quello più generico di tutti, il vesa. Non so se chi abbia una scheda basata su chipset Intel debba cambiarlo, e poi chi ha una scheda Nvidia, come me, potrebbe essere intenzionato ad usare il driver nv dedicato proprio a tali schede: attenzione perchè personalmente ho notato che al riavvio del server graficocon Ubuntu i driver nv mi fanno perdere la visibilità del cursore del mouse, che è una cosa molto fastidiosa.

Successivamente la sezione Monitor si occupa proprio di impostare il Monitor; qui è di fondamentale importanza reperire le frequenze orizzontale e verticale dal manuale del proprio monitor ed impostarle correttamente tramite le voci HorizSync e VertRefresh. Il primo intervallo è espresso in KiloHertz, il secondo in Hertz. Queste due righe sono fondamentali per innalzare la risoluzione del proprio monitor. L’opzione DPMS attiva la gestione energetica del monitor, e le due opzioni successive sono commentate tramite il cancelletto e quindi vengono ignorate: servirebbero ad indicare una preferenza per la frequenza di refresh e per la risoluzione da adottare. Nella pratica ho notato che non riescono a fare il loro dovere, e quindi le ho commentate senza cancellarle per un eventuale uso futuro.

L’ultima sezione, la Screen, collega fra loro Scheda video e Monitor, richiamando le rispettive sezioni col proprio nome ed impostando una profondità di colore e delle modalità video (leggi risoluzioni). Ecco le altre righe fondamentali per abilitare le risoluzioni più alte del proprio monitor. Potete impostare delle profondità di colore minori e soprattutto, con l’opzione Modes, impostare le varie risoluzioni che vi interessa abilitare (in genere coincidono con gli standard Vesa). La prima sarà quella preferita dal server.

Riepilogando quindi il mio consiglio è questo: scaricare la mia configurazione base, adattarla alla propria configurazione hardware, salvarla su chiavetta o su una partizione accessibile tramite la distribuzione che state per usare, avviare la distribuzione e sovrascrivere il file xorg.conf con la configurazione malfunzionante con quello corretto, ed infine riavviare il server grafico con la combinazioni di tasti ctrl+alt+backspace.

Se il server si dovesse chiudere ma non riaprire, usare una consolle premendo i tasti alt+F1/2/3/4/5/6, e lanciare il comando startx.

Se la consolle non dovesse comparire (era un bug dell’Ubuntu 7.10 se non erro), provare comunque a digitare “alla cieca” startx e dare invio perchè funziona comunque!

Per abbassare la frequenza di funzionamento del monitor (che comunque non dovrebbe superare il massimo accettabile dal monitor visto che è stato impostato un intervallo di funzionamento tramite VertRefresh) il mio consiglio è quello di abbassare la massima frequenza impostata con VertRefresh. Ad esempio: VertRefresh è impostato a 50 – 75, al riavvio del server il monitor lavora a 70Hz e volete abbassare tale frequenza. A questo punto usate VertRefresh 50 – 69, riavviate e vedete come va.

Spero di aver semplificato la vita a molti, e auguro BUONA CONFIGURAZIONE A TUTTI!

Annunci

Tag: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

6 Risposte to “Super xorg.conf e la risoluzione del monitor”

  1. Ash Says:

    Seguito il consiglio.
    Tutto ok.
    Grazie infinite.

  2. Dani Says:

    @Ash: ottimo!

  3. Federico Says:

    La pulizia del codice paga sempre! Grazie.

  4. Marakana Says:

    Grazie mille davvero!!!!! Seguendo il tuo xorg.conf sono riuscito a far funzionare tutto 😀

  5. ani Says:

    La tua spiegazione è chiara e mi ha aperto gli occhi su molte cose… purtroppo però non riesco a fare funzionare la mia configurazione. Ho una nvidia GeForce 7050 (installati driver proprietari) con un monitor fujitsu l17-8 che supporta max 81Khz x 75Hz e una risoluzione di 1280×1024. Ho copiato le sezioni Monitor e Screen del tuo file e nel mio ho cambiato solo la risoluzione preferita (1024×768), poi ho riavviato e non da nessun errore solo che la risoluzione non la cambia…rimane sempre la 800×600. Sai darmi un altro consiglio?

  6. Dani Says:

    @ani: hai sbagliato copiando solo le sezioni Monitor e Screen perchè nelle altre sezioni che hai lasciato invariate ci saranno i riferimenti alle “vecchie” sezioni originali, e quindi le varie sezioni non “collaborano” fra loro. Inoltre la “mia” sezione Screen richiama sia il monitor che la scheda video, e tu la sezione scheda video non l’hai toccata, quindi anche qui il riferimento sarà sbagliato.
    Subito dopo l’inizio delle sezioni ho messo una riga commentata (col #) che spiega a che serve quella sezione. Se ci studi sopra un attimo vedrai che le sezioni mouse, tastiera, scheda video e monitor sono “indipendenti”, poi la sezione Screen mette insieme la scheda video col monitor, ed infine (anche se è all’inizio del file) la sezione Server mette insieme la sezione Screen con le sezioni mouse e tastiera.
    Riprovaci usando tutto il mio file oppure sistemando i vari riferimenti, poi facci sapere com’è andata!

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...


%d blogger hanno fatto clic su Mi Piace per questo: