Impossibile aggiungere una nuova modalità in xrandr per monitor esterno


16

Oggi stavo cercando di collegare il mio secondo monitor al mio notebook. Io ho:

  • scheda grafica nvidia
  • Driver 304.43 [supporto xrandr 1.2]
  • archlinux [aggiornato]
  • fantastico wm
  • xrandr 1.3

Il mio problema è con una risoluzione maggiore di 640x480 per il mio monitor esterno (VGA). xrandr -q:

Screen 0: minimum 8 x 8, current 1920 x 800, maximum 8192 x 8192
VGA-0 connected 640x480+1280+0 (normal left inverted right x axis y axis) 0mm
   640x480        59.9*+
   320x240       120.1  
LVDS-0 connected 1280x800+0+0 (normal left inverted right x axis y axis) 331m
   1280x800       59.9*+
HDMI-0 disconnected (normal left inverted right x axis y axis)

Come possiamo vedere, la risoluzione non è maggiore per VGA, quindi aggiungo una nuova modalità:

xrandr --newmode $(gtf 1280 1024 70.4 | grep Modeline | sed s/Modeline\ // | tr -d '"')

Ho verificato la risoluzione e la frequenza di aggiornamento disponibili in Windows: uno di questi era 1024x768x70 (l'OSD del mio monitor diceva che era 70,4 HZ). Dopo aver creato una nuova modalità, volevo aggiungerla:

xrandr --addmode VGA-0 1280x1024_70.40

E ... Non è riuscito:

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  153 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  29
  Current serial number in output stream:  30

Da google ho imparato che nei vecchi driver xrandr / nvidia era un problema con l'elenco delle modalità disponibili, ma ora con il supporto di xrandr 1.2 da parte dei driver nvidia dovrebbe essere migliore. Provo anche con una risoluzione e una frequenza di aggiornamento inferiori (ad es. 1024x768x50), ma ho lo stesso errore. Non ho idea di cosa fare con questo problema ...

Risposte:


11

Non sono sicuro che tu abbia creato la stringa che segui xrandr --newmodeda solo o l'abbia copiata da qualche altra parte, ma non funzionerà nella sua forma attuale.

Consiglio di farlo passo dopo passo.

Innanzitutto, è necessario generare la nuova modalità. Consiglio di usare 60Hz con LCD o 85Hz con monitor CRT

gtf 1280 1024 60

Otterrai qualcosa del tipo:

 # 1280x1024 @ 60.00 Hz (GTF) hsync: 63.60 kHz; pclk: 108.88 MHz 
 Modeline "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync Vsync

Quindi presentare questa modalità xrandrall'utilizzo --newmode(copia-incolla la riga che inizia con 'Modeline'.

 xrandr --newmode "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync Vsync

Quindi aggiungere questa modalità a VGA-0:

xrandr --addmode VGA-0 "1280x1024_60.00"

E finalmente puoi usare questa nuova modalità:

 xrandr --output VGA-0 --mode 1280x1024_60.00

Hai ragione, non lo creo xrandr --newmode $(gtf 1280 1024 70.4 | grep Modeline | sed s/Modeline\ // | tr -d '"')da solo, ma lo metto prima in piccoli pezzi per vedere come funziona, prima gtf 1280 1024 70.4con grep e infine con sed e tr. Dà lo stesso output che hai in Your xrandr --newmodecon un diff - Hai "1280x1024_60.00", I have 1280x1024_60.00` - alla fine sto usando tr -d '"'per cancellare '"'. Sfortunatamente ho ancora lo stesso errore.
Borgo

Perché una frequenza di aggiornamento così strana? 70.4? Usa 60Hz se è un LCD o 85Hz in caso di CRT. E fallo passo dopo passo, esattamente come ho scritto.
Paweł Rumian,

Ora ho provato a farlo passo dopo passo, usando 60Hz, e ho ancora lo stesso errore.
Borgo,

1
La mia risoluzione è 1280x1024 e sto provando a rendere (newmode) / add (addmode) questa modalità:"1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
Borgo

1
Sempre lo stesso errore: X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 153 (RANDR) Minor opcode of failed request: 18 (RRAddOutputMode) Serial number of failed request: 29 Current serial number in output stream: 30 sono cambiati solo gli ultimi due numeri.
Borgo,

4

ho riscontrato questo problema di errore BadMatch fino a quando non ho eliminato un "1280x1024_60.00" precedentemente aggiunto perché non è mai stato possibile utilizzare correttamente la modalità a doppia virgoletta. Alla fine, realizzato un nome migliore per la modalità aiutato.

Quindi ho eliminato "1280x1024_60.00" eseguendo il seguente utente normale:

$ xrandr --version 
reports 1.4.0 and 1.4
$ xrandr | grep 1280 #Do you see any 1280x1024 anywhere?  Does it have double quotes?
$ xrandr --verbose --delmode VGA1 '"1280x1024_60.00"'
$ xrandr --verbose --rmmode '"1280x1024_60.00"' 

L'eliminazione e la rimozione della posta indesiderata nel sistema spesso non ha funzionato o sarebbe tornata anche se l'avrei eliminata dal mio account e root. Di solito tornerebbe sotto l'uscita denominata VIRTUAL1 invece di VGA1.

Ho trovato molto più facile lasciare la spazzatura e aggiungere una lettera alla fine della mia modalità appena creata e persino lasciato cadere il .00, quindi 1280x1024_60B . Nota attentamente sotto ci sono doppie virgolette attorno al parametro --newmode, ma NON --addmode né --mode

$ xrandr --verbose --newmode "1280x1024_60B" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
$ xrandr --verbose --addmode VGA1 1280x1024_60B
$ xrandr --verbose --output VGA1 --mode 1280x1024_60B

Un piccolo sfarfallio dello schermo e il mio monitor quadrato da 19 "esterno funziona a 1280x1024.


Questa è stata l'unica soluzione dopo ore di ricerca che ha funzionato, grazie mille, mi hai salvato la giornata. Saluti
Shanil Soni,

Tuttavia l'impostazione perde dopo una sessione, qualche soluzione per renderlo permanente?
Shanil Soni,

0

Se stai eseguendo Linux su una VM (in particolare VirtualBox), assicurati che la VM disponga di memoria video sufficiente.

Una memoria video insufficiente causa questo errore quando si tenta di eseguire xrandr.


0

Trascorro 2 ore per risolvere un problema simile e il problema era nel cavo VGA. Sostituisci il cavo vga Posso cambiare la risoluzione in 1920x1080 senza usare xrandr o xorg è molto strano.

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.