In xrandr kann kein neuer Modus für externen Monitor hinzugefügt werden


16

Heute habe ich versucht, meinen zweiten Monitor an mein Notebook anzuschließen. Ich habe:

  • nvidia grafikkarte
  • 304.43 treiber [support xrandr 1.2]
  • archlinux [aktuell]
  • super wm
  • xrandr 1.3

Mein Problem ist mit einer höheren Auflösung als 640 x 480 für meinen externen Monitor (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)

Wie wir sehen können, gibt es keine höhere Auflösung für VGA, also füge ich einen neuen Modus hinzu:

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

Ich habe die verfügbare Auflösung und Bildwiederholfrequenz unter Windows überprüft: Eine von ihnen war 1024 x 768 x 70 (das OSD meines Monitors gab an, dass es 70,4 Hz beträgt). Nachdem ich den neuen Modus erstellt habe, wollte ich ihn hinzufügen:

xrandr --addmode VGA-0 1280x1024_70.40

Und ... es ist fehlgeschlagen:

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

Von Google erfuhr ich, dass in älteren xrandr / nvidia-Treibern Probleme mit der Liste der verfügbaren Modi auftraten, aber jetzt mit der Unterstützung von xrandr 1.2 durch nvidia-Treiber sollte es besser sein. Ich versuche es auch mit einer niedrigeren Auflösung und Bildwiederholfrequenz (zB 1024x768x50), aber ich habe den gleichen Fehler. Ich habe keine Ahnung, was ich mit diesem Problem anfangen soll ...

Antworten:


11

Ich bin mir nicht sicher, ob Sie den folgenden String xrandr --newmodeselbst erstellt oder von einer anderen Stelle kopiert haben, aber er funktioniert nicht in der aktuellen Form.

Ich empfehle es Schritt für Schritt zu machen.

Zunächst müssen Sie den neuen Modus generieren. Ich empfehle die Verwendung von 60 Hz mit LCD oder 85 Hz mit CRT-Monitor

gtf 1280 1024 60

Sie erhalten so etwas wie:

 # 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

Stellen Sie diesen Modus dann zur Verfügung, xrandrindem Sie --newmodedie mit 'Modeline' beginnende Zeile kopieren und einfügen.

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

Fügen Sie dann diesen Modus zu VGA-0 hinzu:

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

Und schließlich können Sie diesen neuen Modus verwenden:

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

Du hast recht, ich mache das nicht xrandr --newmode $(gtf 1280 1024 70.4 | grep Modeline | sed s/Modeline\ // | tr -d '"')selbst, aber ich zerkleinere es zuerst, um zu sehen, wie es funktioniert, zuerst gtf 1280 1024 70.4, dann mit grep und schließlich mit sed und tr. Es gibt die gleiche Ausgabe, die Sie in Ihrem xrandr --newmodemit einem diff haben - Sie haben "1280x1024_60.00", I have 1280x1024_60.00 "- am Ende verwende ich tr -d '"'zum Löschen" ". Leider habe ich immer noch den gleichen Fehler.
Borgo

Warum so seltsame Bildwiederholfrequenz? 70,4? Verwenden Sie 60 Hz, wenn es sich um ein LCD handelt, oder 85 Hz, wenn es sich um eine CRT handelt. Und mach es Schritt für Schritt, genauso wie ich es geschrieben habe.
Paweł Rumian

Jetzt habe ich versucht, es Schritt für Schritt mit 60 Hz zu tun, und ich habe immer noch den gleichen Fehler.
Borgo

1
Meine Auflösung ist 1280x1024, und ich versuche, diesen Modus zu erstellen (newmode) / hinzuzufügen (addmode):"1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
Borgo

1
Immer noch der gleiche Fehler: 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 Nur zwei letzte Nummern haben sich geändert.
Borgo

4

Ich hatte dieses BadMatch-Fehlerproblem, bis ich ein zuvor hinzugefügtes "1280x1024_60.00" löschte, da es den Modus mit doppelten Anführungszeichen nie erfolgreich verwenden konnte. Irgendwann hat ein besserer Name für den Modus geholfen.

Also habe ich "1280x1024_60.00" gelöscht, indem ich als normaler Benutzer Folgendes ausgeführt habe:

$ 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"' 

Das Löschen und Entfernen des Junks im System funktionierte oft nicht oder kam wieder, obwohl ich ihn von meinem Konto und meinem Root löschte. Es wird normalerweise unter der Ausgabe mit dem Namen VIRTUAL1 anstelle von VGA1 zurückgegeben.

Fand es viel einfacher, den Müll zu verlassen und am Ende meines neu erstellten Modus einen Brief anzuhängen und sogar die .00 abzulegen , also 1280x1024_60B . Beachten Sie, dass der Parameter --newmode in doppelte Anführungszeichen gesetzt ist, NICHT jedoch --addmode oder --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

Ein kleines Bildschirmflackern und mein externer 19 "-Monitor läuft mit 1280x1024.


Dies war die einzige Lösung nach stundenlangen Nachforschungen. Vielen Dank, Sie haben mir den Tag gerettet. Prost
Shanil Soni

Allerdings verliert Einstellung nach einer Sitzung eine Lösung, um es dauerhaft zu machen?
Shanil Soni

0

Wenn Sie Linux auf einer VM (insbesondere VirtualBox) ausführen, stellen Sie sicher, dass die VM über genügend Videospeicher verfügt.

Zu wenig Videospeicher verursacht diesen Fehler, wenn versucht wird, xrandr auszuführen.


0

Ich habe 2 Stunden damit verbracht, ein ähnliches Problem zu lösen, und das Problem lag im VGA-Kabel. VGA-Kabel ersetzen Ich kann die Auflösung auf 1920x1080 ändern, ohne xrandr oder xorg zu verwenden. Es ist sehr seltsam.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.