Come configurare manualmente un monitor in CentOS7, collegato tramite KVM?


9

Ho una nuova installazione desktop di CentOS7 con Gnome 3.

Ho bisogno di usare questa macchina con un KVM ma per qualche ragione CentOS7 non è in grado di rilevare il mio monitor attraverso il KVM che ho, quindi per impostazione predefinita viene visualizzato "Unknown Display" con una risoluzione di 1024x768 (tutto rileva e funziona a risoluzioni più elevate se collego direttamente il monitor al sistema).

Come posso configurare manualmente le cose in modo da poter utilizzare risoluzioni più grandi?

Ho provato a modificare monitors.xmlcon una nuova risoluzione, ma al riavvio CentOS7 ha rifiutato la modifica, dicendo che non era in grado di rilevare, e sono tornato a 1024x768.

Risposte:


14

Ho trovato la base della soluzione qui: /ubuntu/186288/how-to-detect-and-configure-an-output-with-xrandr

Nelle moderne distribuzioni Linux, incluso CentOS, la libreria xrandr è responsabile di cose come la risoluzione dello schermo, la rotazione e così via. Poiché il sistema non viene rilevato automaticamente, è necessario comunicarlo manualmente in merito alla modalità in cui è in grado di monitorare il monitor.

Ho avuto lo stesso problema con un KVM e l'output di esempio proviene dal mio computer:

Passo 1:

Trova il nome della tua porta. Sarà qualcosa come VGA1, HDMI1 o simili. Forse potresti trovarlo da /var/log/Xorg.0.log, oppure puoi usare l'utilità xrandr:

> xrandr
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
VGA1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00* 
   800x600       60.32    56.25  
   848x480       60.00  
   640x480       59.94  
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

Il mio KVM è collegato alla porta VGA chiamata VGA1. Poiché KVM blocca il rilevamento automatico, xrandr ha visto solo la risoluzione 1024x768.

Passo 2:

Informa xrandr della nuova modalità. Le modalità sono semplicemente stringhe a cui sono associati parametri di visualizzazione video.

Passaggio 2.1

Trova i parametri di visualizzazione necessari. Volevo 1600x900 a 60 Hz:

> gtf 1600 900 60 -x
# 1600x900 @ 60.00 Hz (GTF) hsync: 55.92 kHz; pclk: 119.00 MHz
  Modeline "1600x900_60.00"  119.00  1600 1696 1864 2128  900 901 904 932  -HSync +Vsync

Passaggio 2.2

Crea la nuova modalità con xrandr usando i valori dal comando gtf:

> xrandr --newmode "1600x900" 119.00  1600 1696 1864 2128  900 901 904 932  -HSync +Vsync

Il primo parametro è il nome della nuova modalità: potresti effettivamente chiamarlo come preferisci, basta usare lo stesso nome nei passaggi successivi.

Passaggio 3

Di 'a xrandr che VGA1 comprende la modalità chiamata 1600x900:

> xrandr --addmode VGA1 1600x900

Passaggio 4

Di 'a xrandr di passare alla nuova modalità.

> xrandr --output VGA1 --mode 1600x900

Nota: se hai commesso un errore e il tuo monitor in realtà non capisce la nuova modalità, otterrai uno schermo vuoto!

Se ottieni uno schermo vuoto, puoi probabilmente recuperare digitando alla cieca:

> xrandr --output VGA1 --mode 1024x768

Un altro modo per aggirare questo è connettersi da un altro computer tramite SSH ed eseguire questo comando tramite SSH anziché sulla console.

Passaggio 5

Crea uno script che automatizza i comandi newmode, addmode e output, poiché non verranno conservati durante il riavvio.


1
Questo è perfetto: una rara gemma di informazioni sull'uso di xrandr. Mille voti a lei, signore.
Paolo,

1
Ha funzionato anche per me. Su CentOS 7.
Mohammad Yaseen il

2
Bella risposta. Ma ora, dove posso mettere i comandi in modo che diventi l'impostazione predefinita all'avvio?
gennaio

@SteliosAdamantidis Sì. Nota passaggio 5 che dovrebbe occuparsi di quel problema.
Kevin Keane,

1

Ho avuto più o meno la stessa situazione, e la risposta sopra è una delle spiegazioni più complete su come risolvere il problema, ma ho dovuto fare un altro livello per ottenere il mio Samsung da 32 "in 2560x1440.

gtf è il metodo usato sopra per ottenere i tempi, che funziona principalmente, ma non mi darebbe una modalità che sarebbe 2560x1440. Ho usato il programma cvt, con l'opzione -r (necessario per questo, e non adatto per crt, solo dispositivi che possono vivere senza il blanking).

~% cvt -r  2560 1440 60
# 2560x1440 59.95 Hz (CVT 3.69M9-R) hsync: 88.79 kHz; pclk: 241.50 MHz
Modeline "2560x1440R"  241.50  2560 2608 2640 2720  1440 1443 1448 1481 +hsync -vsync

Questa modalità di temporizzazione, utilizzata al posto delle informazioni di cui sopra fornite da GTF, ha funzionato come un fascino. Vorrei ancora che questo potesse essere "cotto" nel X11sistema, ma ho creato lo script per creare, aggiungere e quindi passare alla modalità, quindi funziona alla grande.

E i miei occhi invecchiati adorano l'enorme monitor. Niente supera l'eccesso ...

(Script per fare la modalità aggiungere e cambiare segue)

 #!/bin/bash
 # Used to get timing: cvt -r  2560 1440 60
xrandr --newmode  "2560x1440R"  241.50  2560 2608 2640 2720  1440 1443 1448 1481 +hsync -vsync
xrandr --addmode HDMI1 "25 60x1440R"
xrandr --output HDMI1 --mode "2560x1440R"

1

Sono d'accordo che questa è quasi la soluzione. Questo ha messo il mio schermo nella giusta risoluzione.

$ cvt 1920 1080 60
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

Tuttavia, con due principali colonne nere su entrambi i lati sinistro e destro dello schermo. Immagino una specie di overscan.

Quindi ho dovuto recuperare alcuni valori raccolti durante l'avvio da xorg.log.

$ grep 1080 /var/log/Xorg.0.log
[  2316.000] (II) modeset(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)

Quindi, dopo aver sostituito i valori cvt, con i valori Xorg.0.log, ho ottenuto il layout dello schermo giusto.

$ xrandr --newmode "1920x1080_60.00" 148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync

0

Dopo aver trascorso un paio di ore preziose a provare le precedenti "soluzioni", mi sono imbattuto in questo:

http://elrepo.org/tiki/kernel-ml


Poiché i collegamenti tendono a diventare stantii e muoiono, le risposte solo link non sono considerate molto utili qui. Forse potresti entrare nel dettaglio di ciò che hai effettivamente fatto per risolvere il problema nella tua risposta, pur indicando le risorse che ti hanno aiutato lungo il percorso. In questo modo le persone che utilizzano questo sito vedranno la risposta direttamente, anche se l'altro link scompare.
Eric Renouf,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.