
Ich versuche, ein Samsung SyncMaster 226 NW-Display mit einem HDMI-zu-VGA-Adapter unter Debian 10 zu betreiben. Die GPU ist eine RTX 2060 Super mit den proprietären Nvidia-Treibern der Version 440.64.
Unter Linux werden nur die Auflösungen 1280×720, 1024×768, 800×600 und 640×480 als verwendbar erkannt.
Die tatsächliche native Auflösung beträgt jedoch 1680 x 1050 und beim Dual-Boot von Windows kann diese Auflösung eingestellt und verwendet werden.
Ich habe versucht, xrandr
eine benutzerdefinierte Auflösung hinzuzufügen, indem ich zuerst cvt
die Modeline erstellte. Der Befehl zum Erstellen eines neuen Modus für xrandr war
xrandr --newmode "1680×1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
Danach kehrte das Laufen xrandr
zurück
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm
1024x768 60.00*+ 60.00
1280x720 60.00
800x600 60.32
640x480 59.94
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
USB-C-0 disconnected (normal left inverted right x axis y axis)
1680x1050_60.00 (0x1e4) 146.250MHz -HSync +VSync
h: width 1680 start 1784 end 1960 total 2240 skew 0 clock 65.29KHz
v: height 1050 start 1053 end 1059 total 1089 clock 59.95Hz
Beim Versuch,
xrandr --addmode HDMI-0 "1680×1050_60.00"`
der Fehler
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 18 (RRAddOutputMode)
Serial number of failed request: 43
Current serial number in output stream: 44
wurde zurückgegeben. Mit
xrandr --output HDMI-0 --mode "1680×1050_60.00"
ist zurückgekommen
xrandr: „Modus 1680x1050_60.00“ kann nicht gefunden werden, ein Fehler.“
Wie stelle ich die Ausgabeauflösung richtig auf 1680 x 1050 ein?
Antwort1
Ich habe gerade 2-3 Stunden mit genau demselben Problem verbracht. So ärgerlich, xrandr scheint mit den neuen Nvidia-Treibern überhaupt nicht zu funktionieren. Nachdem ich jetzt verrückt und wütend geworden bin, habe ich endlich eine Lösung gefunden und hoffe, dass sie auch bei Ihnen funktioniert.
Starten Sie im Terminal „nvidia-settings“, wechseln Sie zu „X Server Display Configuration“, klicken Sie unten auf die Schaltfläche „Save to X configuration File“ und dann auf „Show Preview“. Gehen Sie nun in dieser Vorschau zum Block „Section „Monitor“ … EndSection“ und speichern Sie ihn für später. So habe ich meine Monitoreinstellungen für xorg.conf herausgefunden. Beachten Sie, dass es andere Möglichkeiten gibt, aber diese sollte für Nvidia-Benutzer ziemlich sicher und bequem sein.
Holen Sie sich dann die „Modeline“ für Ihre Auflösung und geben Sie im Terminal ein:
cvt 1680x1050
und speichern Sie die Ausgabe für später.
Ok, jetzt musst du das alles nur noch in eine xorg.conf-Datei einfügen, nenne sie z. B. /etc/X11/xorg.conf.d/10-monitor.conf (das ist zumindest der Pfad für meine Distribution). Da ich weder deinen Monitor-Abschnitt noch deine Modeline habe, gebe ich dir ein Beispiel mit meinem Monitor-Abschnitt und meiner Modeline (meine gewünschte/nicht erkannte Auflösung war 1920 x 1080):
Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Acer B246HL"
HorizSync 30.0 - 80.0
VertRefresh 55.0 - 76.0
Option "DPMS"
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
EndSection
Section "Device"
Identifier "Card0"
Driver "nvidia"
Option "HDMI-0" "Monitor1"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080_60.00"
EndSubSection
EndSection
Behalten Sie also im Monitor-Abschnitt einfach die erste Zeile (Bezeichner) und ersetzen Sie den Rest durch Ihre Speicherung aus den Nvidia-Einstellungen. Die letzte Zeile ist die Ausgabe Ihres CVT-Befehls. Der Geräte-Abschnitt sollte für Sie in Ordnung sein. Im Bildschirm-Abschnitt muss nur die Zeile „Modes“ in den Namen Ihres Modus geändert werden, also wahrscheinlich etwas wie Modes „1680x1050_60.00“
In meinem Geräteabschnitt steht auch eine Zeile 'BusID "PCI:39:0:0"', aber ich glaube, die brauchen Sie nicht. Allerdings habe ich diese Zeile durch die Ausführung von "X -configure" erhalten (xorg darf nicht laufen). BusID sollte in der generierten xorg.conf.new stehen. Seltsamerweise war sie in meinem Fall anders als die BusID von lspci.
Wenn Sie darüber hinaus (wie ich) mehrere Monitore betreiben möchten, fügen Sie einfach neue Monitor-Abschnitte mit der Kennung „Monitor2“ usw. hinzu, fügen Sie dann im Geräte-Abschnitt z. B. entsprechend „Option „HDMI-1“ „Monitor2““ hinzu und fügen Sie schließlich den Monitor im Bildschirm-Abschnitt als „Monitor „Monitor2““ hinzu.
Das Seltsame an meinem Fall war, dass ich 3 exakt identische Monitore habe und einer davon immer nicht von nvidia-modeset erkannt wurde. Es hat etwas mit EDID zu tun und der Fehler kann wie folgt gefunden werden:
dmesg | grep EDID