SDB:Configurare scheda grafica e impostazioni del monitor

Talvolta X-server può avere alcuni problemi con la struttura Extended Display Identification Data (EDID) del monitor e ripiegare su una risoluzione sicura per lo schermo, che è di gran lunga più bassa di quella che è in grado di usare per la visualizzazione.

Se questa è la situazione in cui ci si è imbattuti allora potrebbe essere necessario modificare il file /etc/X11/xorg.conf.d/50-monitor.conf.

Per esempio, nel caso di un Acer X223w con una risoluzione di 1680x1050 punti è necessario impostare i suoi valori di HorizSync e di VertRefresh affinché visualizzi le immagini alla sua risoluzione nativa.

Section "Monitor"
 Identifier "Monitor1"
 VendorName "Unknown"
 ModelName "Acer X223W"
 HorizSync 31.0 - 84.0
 VertRefresh 56.0 - 77.0
EndSection

Dovrai essere andato alla ricerca di quali sono i valori corretti di HorizSync e di VertRefresh per il tuo particolare modello di monitor.

Riavvia quindi X-server con CTRL-ALT-Backspace (due volte).

Se necessario, puoi anche aggiungere una modeline, ma prima prova quanto suggerito qui sopra.

Per calcolare la modeline dovresti usare il comando cvt. Fai riferimento a questa discussione per sapere come usarlo: http://forums.opensuse.org/english/get-technical-help-here/how-faq-forums/unreviewed-how-faq/430150-opensuse-graphic-card-practical-theory-guide-users-6.html#post2280876

Quindi per una risoluzione di 1680x1050 pixel, si avrà:

$ cvt 1680 1050

Risposta:

# 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz
Modeline "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync

Il file /etc/X11/xorg.conf.d/50-monitor.conf, dopo le modifiche, si presenterà infine così:

Section "Monitor"
 Identifier "Monitor1"

 VendorName "Unknown"
 ModelName "Acer X223W"
 HorizSync 31.0 - 84.0
 VertRefresh 56.0 - 77.0

 ModeLine "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync

EndSection

EDID rilevato ma risoluzione errata e risoluzione nativa non disponibile

Questo potrebbe verificarsi con i driver nouveau (scheda grafica nVIDIA in concomitanza con alcuni nuovi monitor LCD, i quali funzionano al meglio soltanto alla risoluzione "nativa", così come dichiarato dai loro produttori), ma potrebbe accadere anche con altri driver grafici.

In questi casi il monitor non funziona alla giusta risoluzione e anche il comando xrandr non mostra la risoluzione voluta. Per esempio ci si aspetterebbe che il proprio monitor (Display ASUS VE228H + nouveau 0.0.16_20120321, anche 1.0.2) funzioni alla risoluzione full HD (ovvero all'alta risoluzione pari a 1920x1080 punti), ma la risoluzione effettiva è diversa (di gran lunga inferiore) e non è possibile selezionare la risoluzione corretta per mezzo di xrandr o il gestore dello schermo e video del proprio ambiente desktop.
Ma se si apre il file /var/log/Xorg.0.log e si cerca la risoluzione nativa del proprio schermo (p.es. 1920x1080, risoluzione HD), si trova:

[  1205.464] (II) NOUVEAU(0): Using EDID range info for horizontal sync
[  1205.464] (II) NOUVEAU(0): Using EDID range info for vertical refresh
[  1205.464] (II) NOUVEAU(0): Printing DDC gathered Modelines:
[  1205.464] (II) NOUVEAU(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
[  1205.464] (II) NOUVEAU(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[  1205.464] (II) NOUVEAU(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)

Come si può vedere in questo esempio reale, la modeline per la risoluzione di quel monitor era fornita dall'EDID e visualizzata in elenco da Xorg, ma non veniva messa a disposizione da xrandr. Si noti inoltre che i comandi

$ cvt 1920 1080 # 60 Hz è la frequenza predefinita (alla risoluzione "nativa" per lo schermo)
$ cvt -r 1920 1080 # modalità ridotta, utile per schermi non a tubo catodico (non CRT)

(incluso il comando gtf 1920 1080), generavano tutti modeline standard, ma non corrette per il monitor in esame.

Quindi, qualora si dovesse incorrere nello stesso inconveniente, si potrà procedere a provare col proprio schermo l'equivalente della modeline visualizzata sopra in grassetto. Ovvero, ad esempio, usando la seguente serie di comandi (che in effetti aggiunge a applica quella nuova modeline al tuo monitor, ma in qualità di un'impostazione temporanea che non sopravviverà ad un riavvio del server X11):

xrandr --newmode "1920x1080" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
VGA_out="$(xrandr -q | grep -m 1 '\<connected\>' | cut -d ' ' -f1)"
xrandr --addmode $VGA_out "1920x1080"
xrandr --output $VGA_out --mode "1920x1080"

naturalmente sarà necessario sostituire la parte con '"1920x1080" ...' con la modeline ricavata dall'EDID del monitor, nonché appropriata per il proprio modello di schermo LCD. Nel caso in cui queste impostazioni funzionino a dovere, si potrà poi modificare il file /etc/X11/xorg.conf.d/50-screen.conf di conseguenza (o, in alternativa, si potrebbe inserire la sequenza di comandi vista sopra in uno script per la bash da avviare automaticamente quando si effettua il login alla sessione grafica, sotto forma di impostazione specifica dell'utente e della sessione).