4

I am trying to run a Samsung SyncMaster 226 NW display with an HDMI to VGA adapter on Debian 10. The GPU is an RTX 2060 Super, with the proprietary Nvidia drivers of version 440.64.

In Linux, the only resolutions that are detected as usable are 1280×720, 1024×768, 800×600, and 640x480.

However, the actual native resolution is 1680×1050, and when dual booting Windows, this resolution can be set and used.

I have attempted to use xrandr to add a custom resolution, first using cvt to generate the modeline. The command used to make a new mode for xrandr was

xrandr --newmode "1680×1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync

After doing this, running xrandr returned

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

However, when attempting to use

xrandr --addmode HDMI-0 "1680×1050_60.00"`

the error

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

was returned. Using

xrandr --output HDMI-0 --mode "1680×1050_60.00"

returned

xrandr: cannot find mode 1680x1050_60.00` as an error.

How do I properly set the output resolution to 1680x1050?

1 Answer 1

3

I just spent 2-3 Hours on exactly the same problem. So annoying, xrandr seems not to work at all with the new nvidia-drivers. Now, after getting crazy and mad, I finally came up with a solution, hoping it will work for you as well.

Start in terminal "nvidia-settings", switch to "X Server Display Configuration", Click the button on the bottom "Save to X configuration File", then "Show Preview". Now in this preview go to the block 'Section "Monitor"..... EndSection' and save it for later. Thats how I found out about my monitor-settings for xorg.conf. Note, there are other ways but this one should be quite safe and convenient for nvidia-users.

Then get the "Modeline" for your resolution, type in terminal:

cvt 1680x1050

and save the output for later.

Ok, now you just have to add all this stuff in a xorg.conf file, call it e.g. /etc/X11/xorg.conf.d/10-monitor.conf (thats at least the path for my distro). As I neither have your Monitor-Section nor your Modeline I will give you an example with my monitor-section and my modeline(my desired/undetected resolution was 1920x1080):

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

So in the Monitor-section you just keep the first line(Identifier) and replace the rest with your saving from nvidia-settings plus the last line is the output of your cvt-command. Device-Section should be fine for you. Screen-Section just needs the "Modes"-line changed to the name of your Mode, so probably something like Modes "1680x1050_60.00"

In my Device Section is also one line 'BusID "PCI:39:0:0"', but I think you don't need that. However, I got that line from executing "X -configure"(xorg must not be running). BusID should be in the generated xorg.conf.new. Strangely, in my case it was different from the BusID of lspci.

Additionally, if you would like to run several monitors(like me) just add new Monitor-Sections with Identifier "Monitor2" and so on, then in Device-Section add e.g. 'Option "HDMI-1" "Monitor2"' accordingly, and finally add the Monitor in Screen-Section like 'Monitor "Monitor2"'.

The strange part in my case was, that I have 3 exactly identical monitors and one of them was always not recognized by nvidia-modeset. It has something to do with EDID and the error can be found with:

dmesg | grep EDID
1
  • I can't find the xorg.conf.d for my distro (Ubuntu 20 LTS) —can you add a bit more about what reads this file and how? Jun 2, 2021 at 20:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .