I want to change the resolution of my laptop screen, but xrandr only shows built-in screens native resolution.
$ xrandr
Screen 0: minimum 8 x 8, current 3360 x 1050, maximum 8192 x 8192
VGA-0 disconnected (normal left inverted right x axis y axis)
LVDS-0 connected primary 1680x1050+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
1680x1050 59.88*+
HDMI-0 connected 1680x1050+1680+0 (normal left inverted right x axis y axis) 470mm x 300mm
1680x1050 59.88 + 59.95*
1280x1024 75.02 60.02
1280x960 60.00
1152x864 75.00
1024x768 75.03 70.07 60.00
800x600 75.00 72.19 60.32 56.25
640x480 75.00 72.81 59.94
If anything it’s weird that my built-in shows only native resolution but the hdmi external monitor offers wide variety as expected. This also causes problems in some games where I can’t change resolution to anything from native one.
Adding a newmode also doesn’t work:
$ cvt 1280 800
# 1280x800 59.81 Hz (CVT 1.02MA) hsync: 49.70 kHz; pclk: 83.50 MHz
Modeline "1280x800_60.00" 83.50 1280 1352 1480 1680 800 803 809 831 -hsync +vsync
$ xrandr --newmode "1280x800_60.00" 83.50 1280 1352 1480 1680 800 803 809 831 -hsync +vsync
$ xrandr --addmode LVDS-0 1280x800_60.00
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: 29
Current serial number in output stream: 30
How do I enable more resolutions?
$ uname -roms
Linux 4.4.3-1-ARCH x86_64 GNU/Linux
$ lspci -k | grep -A 2 -E "(VGA|3D)"
08:00.0 VGA compatible controller: NVIDIA Corporation G94M [GeForce 9800M GS] (rev a1)
Subsystem: Micro-Star International Co., Ltd. [MSI] Device 7220
Kernel driver in use: nvidia
$ xrandr -v
xrandr program version 1.5.0
Server reports RandR version 1.5
$ pacman -Qi nvidia-340xx | grep Version
Version : 340.96-6
This is because the native resolution is the only one that your internal panel supports, while your HDMI monitor supports a variety of different modes. Note that unlike other modesetting interfaces, RandR 1.2 provides control over the actual physical mode timings being sent to the monitor, so only supported timings are listed.
If you want to scale from a different resolution to your panel’s native mode, you can use xrandr’s --scale-from option, or use the drop-down list of scaled modes or the advanced settings option in the nvidia-settings control panel.
This is because the native resolution is the only one that your internal panel supports
This feels hard to believe (unless I’m missing something) because I distinctly remember using other resolutions on different OSes (be it distro like Ubuntu or something like Windows). (as I said, I may be. missing something).
The point is that when I scale the resolution from nvidia-settings, it doesn’t help in some games which still think I’m using 1680 and render them fully in that resolution, not only resulting in lower performance, but mainly they just cut that viewport making things only worse.
What you’re probably missing is that LCDs only ever have one resolution. Everything else is scaled to that one resolution.
Even your external HDMI display has only one resolution - that it lists several different resolutions in its EDID doesn’t change that. It just means that the display will natively accept those other resolutions and scale them internally.
When non-nvidia drivers list several resolutions in xrandr, they basically lie. They do so for the convenience of the user - instead of requiring the user to do gymnastics with various scaling options, these non-nvidia drivers lie about available resolutions and perform the scaling gymnastics themselves. Nvidia chooses not to go down that route.
Ok, it’s something I didn’t realize. I know that displays have native resolution, and I didn’t realize that while my external monitor may report multiple resolutions and then do the rescaling internally, my internal reports only a single one.
But the problem is still there. How do I get different resolution options to show up in game settings. The only game that is able to do it right now (that I’m familiar with) is CS:GO. Talos and Spec Ops only see the native resolution and don’t offer setting any other.
I may understand the point of view of nvidia who believes that it should be up the application to do the rescaling, not the driver, but right now the users are stuck between rock and a hard place when it comes to games that don’t think of doing it themselves.
I need a way to delegate the rescaling to the nvidia driver and report multiple resolutions to the games.
For example on Ubuntu 16.04 in ioquake3 with NVIDIA 340.96 drivers always force to use native desktop resolution in game when full screen. Impossible to set lower resolution.
In NVIDIA setting you can scale resolution, but this cause another huge troubles and bugs. For example ioquake3 work only on windowed mode and windowed mode cause another trouble - brightness problem. Also if if resolution scaled - desktop panel not adapted for it.
Excuse me, but this looks like blst ! I have the same problem with an old iiyama 19" CRT, and those clearly do NOT have a single native resolution; and because of that I’m unable to reach the resolution I want. (I want to put it side by side with a 1920x1080 screen and I’m limited to 864 lines 60Hz, while this screen can easily up to 1200 lines and I used to configure it with “nouveau” on 1080 lines 85Hz, and in fact it worked quite well (except for the instability) until I installed the nvidia proprietary driver.
The fact that they do not have the same height is a real pain in the neck and causes many problems. And I’m not rich enough to replace all my old CRTs with 1080 lines flat panels
The point is that my use of this function of xrandr (1.5) worked perfectly well with the open source “nouveau” display driver, and stopped working when I installer de nvidia proprietary display driver (because I seems confirmed that “nouveau” causes random computer freezes).
Is this really going to solve the problem with xrandr which returns this strange error message with nvidia proprietary driver and not with “nouveau” driver ? The problem is not only that those modes are rejected, but that the command itself is rejected
By the way, more and more configuration do not have a xorg.conf file, but a xorg.conf.d directory, with nearly no options inside, because everything gets autodetected, and it’s a pain to find out how to configure this without ruining the autodetection features. I dont want to be forced to reconfigure everything each time I add or remove one monitor. I just want to be able to use THAT old monitor with its right capability, and let the system continue to manage all the rest by itself.
I’m not sure what you mean. That BadMatch error in response to a RRAddOutputMode request is how the X server tells the client (xrandr) that that mode isn’t going to work. I’m not sure why nouveau would let you use that mode when your panel doesn’t support it. That seems like a bug.
The various xorg.conf options are there in case you really need to override the mode validation behavior of the driver. It’s only needed in very unusual circumstances, so I don’t think it’s unreasonable to require an xorg.conf be present to set them.
I’m not sure what your old CRT is reporting in its EDID. generix’s suggestion would tell you what modes the driver is considering and why they’re being rejected.
Well… Isn’t there something very wrong in calling “a bug”, a feature which works and does the job when the “correct one” doesn’t ? :-D
About the unusual circumstances, the point is that it worked with “Nouveau” (If “Nouveau” wasn’t causing occasional computer freeze). I might try xorg.conf if it can help the nvidia driver to allow my own values as “nouveau” does. But I don’t know in this era of minimal xorg.conf, what I should put in it to have just those flags and nothing else (I want to continue to create the modes with xrandr, like I did with “Nouveau”). I have made xorg.conf files 20 years ago, when you had to put everything in it, but I feel completely lost facing those empty files. How should I configure those flags to keep it minimal ?
Just run nvidia-xconfig to generate a minimal working xorg.conf. Then you just have to add the line
Option "ModeDebug" "true"
to the screen section. Restart X or reboot, then run nvidia-bug-report.sh and attach output file to your post or simply post your Xorg.0.log from /var/log.
I still think you’re barking up the wrong tree here. Do you really want / need to send custom timings to the panel, or do you just want a smaller resolution desktop scaled to the panel’s native resolution?
Well… a CRT (Cathode Ray Tube) monitor is NOT a flat panel, and as I mentionned above, There is NO such think as a “native resolution” on a CRT.
I need to set my own timings because the mode I want to use (1440x1080) is not amongst the factory settings - I want to put it side by side with (and have the same height as) my 1920x1080 other monitor).
Here under is what xrandr return in verbose mode. As you can see there is no edid block for my CRT. This monitor do not support recent EDID format and I even doubt the VGA connector supports it, because I don’t see more when I connect it to my flat pannel. By the way, my CRT monitor is working with DDC2B).
The problem is that the nvidia driver is guessing and is guessing wrongly (first af all, it’s forcing nearly all modes in 60Hz refresh rate, which on a CRT is awfully flickering. This is why “nouveau” is right, because it just doesn’t try to guess wrong information. This Monitor can support natively un to 1920x1440 85Hz and the limitations imposed by the nvidia driver are awfull…
Ps : Thanks Generix. I don’t believe the mode debug flag will help me much because I believe I understand the design flaw which causes this problem, but may be I might be able to do something with the modevalidation options.
$ xrandr --verbose
Screen 0: minimum 8 x 8, current 4432 x 1080, maximum 16384 x 16384
VGA-0 connected primary 1152x864+0+0 (0x282) normal (normal left inverted right x axis y axis) 0mm x 0mm
Identifier: 0x27e
Timestamp: 64007
Subpixel: unknown
Gamma: 1.0:1.0:1.0
Brightness: 1.0
Clones:
CRTC: 0
CRTCs: 1 0 2 3
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
CscMatrix: 65536 0 0 0 0 65536 0 0 0 0 65536 0
BorderDimensions: 4
supported: 4
Border: 0 0 0 0
range: (0, 65535)
SignalFormat: VGA
supported: VGA
ConnectorType: VGA
ConnectorNumber: 2
_ConnectorLocation: 2
1024x768 (0x27f) 65.000MHz -HSync -VSync +preferred
h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz
v: height 768 start 771 end 777 total 806 clock 60.00Hz
1360x768 (0x280) 72.000MHz +HSync -VSync
h: width 1360 start 1408 end 1440 total 1520 skew 0 clock 47.37KHz
v: height 768 start 771 end 781 total 790 clock 59.96Hz
1360x768 (0x281) 84.750MHz -HSync +VSync
h: width 1360 start 1432 end 1568 total 1776 skew 0 clock 47.72KHz
v: height 768 start 771 end 781 total 798 clock 59.80Hz
1152x864 (0x282) 81.620MHz -HSync +VSync *current
h: width 1152 start 1216 end 1336 total 1520 skew 0 clock 53.70KHz
v: height 864 start 865 end 868 total 895 clock 60.00Hz
800x600 (0x283) 50.000MHz +HSync +VSync
h: width 800 start 856 end 976 total 1040 skew 0 clock 48.08KHz
v: height 600 start 637 end 643 total 666 clock 72.19Hz
800x600 (0x284) 40.000MHz +HSync +VSync
h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz
v: height 600 start 601 end 605 total 628 clock 60.32Hz
800x600 (0x285) 36.000MHz +HSync +VSync
h: width 800 start 824 end 896 total 1024 skew 0 clock 35.16KHz
v: height 600 start 601 end 603 total 625 clock 56.25Hz
680x384 (0x286) 36.000MHz +HSync -VSync DoubleScan
h: width 680 start 704 end 720 total 760 skew 0 clock 47.37KHz
v: height 384 start 385 end 390 total 395 clock 59.96Hz
680x384 (0x287) 42.375MHz -HSync +VSync DoubleScan
h: width 680 start 716 end 784 total 888 skew 0 clock 47.72KHz
v: height 384 start 385 end 390 total 399 clock 59.80Hz
640x480 (0x288) 25.175MHz -HSync -VSync
h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz
v: height 480 start 490 end 492 total 525 clock 59.94Hz
512x384 (0x289) 32.500MHz -HSync -VSync DoubleScan
h: width 512 start 524 end 592 total 672 skew 0 clock 48.36KHz
v: height 384 start 385 end 388 total 403 clock 60.00Hz
400x300 (0x28a) 25.000MHz +HSync +VSync DoubleScan
h: width 400 start 428 end 488 total 520 skew 0 clock 48.08KHz
v: height 300 start 318 end 321 total 333 clock 72.19Hz
320x240 (0x28b) 12.587MHz -HSync -VSync DoubleScan
h: width 320 start 328 end 376 total 400 skew 0 clock 31.47KHz
v: height 240 start 245 end 246 total 262 clock 60.05Hz
DVI-D-0 connected 1920x1080+1152+0 (0x28d) normal (normal left inverted right x axis y axis) 886mm x 498mm
Identifier: 0x28c
Timestamp: 64007
Subpixel: unknown
Gamma: 1.0:1.0:1.0
Brightness: 1.0
Clones:
CRTC: 1
CRTCs: 1 0 2 3
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
CscMatrix: 65536 0 0 0 0 65536 0 0 0 0 65536 0
EDID:
00ffffffffffff004dd9022c01010101
01150103805932780a0dc9a057479827
12484c21080081800101010101010101
010101010101023a801871382d40582c
450076f23100001e011d007251d01e20
6e28550076f23100001e000000fc0053
4f4e592054560a2020202020000000fd
00303e0e460f000a2020202020200109
02033bf0531f101405130420223c3e12
16030711150206012609070715075083
01000074030c001000b82d2fd00a0140
007f203070809076e200fb023a80d072
382d40102c458076f23100001e011d00
bc52d01e20b828554076f23100001e01
1d80d0721c1620102c258076f2310000
9e000000000000000000000000000065
BorderDimensions: 4
supported: 4
Border: 0 0 0 0
range: (0, 65535)
SignalFormat: TMDS
supported: TMDS
ConnectorType: DVI-D
ConnectorNumber: 0
_ConnectorLocation: 0
1920x1080 (0x28d) 148.500MHz +HSync +VSync *current +preferred
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.50KHz
v: height 1080 start 1084 end 1089 total 1125 clock 60.00Hz
1920x1080 (0x28e) 148.350MHz +HSync +VSync
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.43KHz
v: height 1080 start 1084 end 1089 total 1125 clock 59.94Hz
1920x1080 (0x28f) 148.500MHz +HSync +VSync
h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 56.25KHz
v: height 1080 start 1084 end 1089 total 1125 clock 50.00Hz
1920x1080 (0x290) 74.180MHz +HSync +VSync
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 33.72KHz
v: height 1080 start 1084 end 1089 total 1125 clock 29.97Hz
1920x1080 (0x291) 74.160MHz +HSync +VSync
h: width 1920 start 2558 end 2602 total 2750 skew 0 clock 26.97KHz
v: height 1080 start 1084 end 1089 total 1125 clock 23.97Hz
1920x1080 (0x292) 74.180MHz +HSync +VSync Interlace
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 33.72KHz
v: height 1080 start 1084 end 1094 total 1124 clock 60.00Hz
1920x1080 (0x293) 74.250MHz +HSync +VSync Interlace
h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 28.12KHz
v: height 1080 start 1084 end 1094 total 1124 clock 50.04Hz
1280x1024 (0x294) 108.000MHz +HSync +VSync
h: width 1280 start 1328 end 1440 total 1688 skew 0 clock 63.98KHz
v: height 1024 start 1025 end 1028 total 1066 clock 60.02Hz
1280x720 (0x295) 74.250MHz +HSync +VSync
h: width 1280 start 1390 end 1430 total 1650 skew 0 clock 45.00KHz
v: height 720 start 725 end 730 total 750 clock 60.00Hz
1280x720 (0x296) 74.180MHz +HSync +VSync
h: width 1280 start 1390 end 1430 total 1650 skew 0 clock 44.96KHz
v: height 720 start 725 end 730 total 750 clock 59.94Hz
1280x720 (0x297) 74.250MHz +HSync +VSync
h: width 1280 start 1720 end 1760 total 1980 skew 0 clock 37.50KHz
v: height 720 start 725 end 730 total 750 clock 50.00Hz
1280x720 (0x298) 74.180MHz -HSync +VSync
h: width 1280 start 3040 end 3080 total 3300 skew 0 clock 22.48KHz
v: height 720 start 725 end 730 total 750 clock 29.97Hz
1280x720 (0x299) 59.330MHz +HSync +VSync
h: width 1280 start 3040 end 3080 total 3300 skew 0 clock 17.98KHz
v: height 720 start 725 end 730 total 750 clock 23.97Hz
1024x768 (0x27f) 65.000MHz -HSync -VSync
h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz
v: height 768 start 771 end 777 total 806 clock 60.00Hz
800x600 (0x284) 40.000MHz +HSync +VSync
h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz
v: height 600 start 601 end 605 total 628 clock 60.32Hz
720x576 (0x29a) 27.000MHz -HSync -VSync
h: width 720 start 732 end 796 total 864 skew 0 clock 31.25KHz
v: height 576 start 581 end 586 total 625 clock 50.00Hz
720x480 (0x29b) 27.000MHz -HSync -VSync
h: width 720 start 736 end 798 total 858 skew 0 clock 31.47KHz
v: height 480 start 489 end 495 total 525 clock 59.94Hz
640x480 (0x288) 25.175MHz -HSync -VSync
h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz
v: height 480 start 490 end 492 total 525 clock 59.94Hz
640x480 (0x29c) 25.170MHz -HSync -VSync
h: width 640 start 656 end 752 total 800 skew 0 clock 31.46KHz
v: height 480 start 490 end 492 total 525 clock 59.93Hz
HDMI-0 connected 1360x768+3072+312 (0x29e) normal (normal left inverted right x axis y axis) 1600mm x 900mm
Identifier: 0x29d
Timestamp: 64007
Subpixel: unknown
Gamma: 1.0:1.0:1.0
Brightness: 1.0
Clones:
CRTC: 2
CRTCs: 1 0 2 3
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
CscMatrix: 65536 0 0 0 0 65536 0 0 0 0 65536 0
EDID:
00ffffffffffff001e6d010001010101
0117010380a05a780aee91a3544c9926
0f5054a1080031404540614071400101
010101010101662150b051001b304070
360040846300001e6419004041002630
18880306408463000018000000fd003a
3e1e5310000a202020202020000000fc
004c472054560a2020202020202001a3
020322f14e101f049305140302122021
2215012615075009570767030c002000
801e011d8018711c1620582c2500a05a
0000009e011d007251d01e206e285500
20c23100001e8c0ad08a20e02d10103e
9600a05a00000018023a801871382d40
582c4500a05a0000001e000000000000
0000000000000000000000000000004b
BorderDimensions: 4
supported: 4
Border: 0 0 0 0
range: (0, 65535)
SignalFormat: TMDS
supported: TMDS
ConnectorType: HDMI
ConnectorNumber: 1
_ConnectorLocation: 1
1360x768 (0x29e) 85.500MHz +HSync +VSync *current +preferred
h: width 1360 start 1424 end 1536 total 1792 skew 0 clock 47.71KHz
v: height 768 start 771 end 777 total 795 clock 60.02Hz
1920x1080 (0x28d) 148.500MHz +HSync +VSync
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.50KHz
v: height 1080 start 1084 end 1089 total 1125 clock 60.00Hz
1920x1080 (0x28e) 148.350MHz +HSync +VSync
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.43KHz
v: height 1080 start 1084 end 1089 total 1125 clock 59.94Hz
1920x1080 (0x28f) 148.500MHz +HSync +VSync
h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 56.25KHz
v: height 1080 start 1084 end 1089 total 1125 clock 50.00Hz
1920x1080 (0x290) 74.180MHz +HSync +VSync
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 33.72KHz
v: height 1080 start 1084 end 1089 total 1125 clock 29.97Hz
1920x1080 (0x29f) 74.250MHz +HSync +VSync
h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 28.12KHz
v: height 1080 start 1084 end 1089 total 1125 clock 25.00Hz
1920x1080 (0x291) 74.160MHz +HSync +VSync
h: width 1920 start 2558 end 2602 total 2750 skew 0 clock 26.97KHz
v: height 1080 start 1084 end 1089 total 1125 clock 23.97Hz
1920x1080 (0x2a0) 74.250MHz +HSync +VSync Interlace
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 33.75KHz
v: height 1080 start 1084 end 1094 total 1124 clock 60.05Hz
1920x1080 (0x292) 74.180MHz +HSync +VSync Interlace
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 33.72KHz
v: height 1080 start 1084 end 1094 total 1124 clock 60.00Hz
1920x1080 (0x293) 74.250MHz +HSync +VSync Interlace
h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 28.12KHz
v: height 1080 start 1084 end 1094 total 1124 clock 50.04Hz
1280x720 (0x295) 74.250MHz +HSync +VSync
h: width 1280 start 1390 end 1430 total 1650 skew 0 clock 45.00KHz
v: height 720 start 725 end 730 total 750 clock 60.00Hz
1280x720 (0x296) 74.180MHz +HSync +VSync
h: width 1280 start 1390 end 1430 total 1650 skew 0 clock 44.96KHz
v: height 720 start 725 end 730 total 750 clock 59.94Hz
1280x720 (0x297) 74.250MHz +HSync +VSync
h: width 1280 start 1720 end 1760 total 1980 skew 0 clock 37.50KHz
v: height 720 start 725 end 730 total 750 clock 50.00Hz
1152x864 (0x282) 81.620MHz -HSync +VSync
h: width 1152 start 1216 end 1336 total 1520 skew 0 clock 53.70KHz
v: height 864 start 865 end 868 total 895 clock 60.00Hz
1024x768 (0x27f) 65.000MHz -HSync -VSync
h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz
v: height 768 start 771 end 777 total 806 clock 60.00Hz
800x600 (0x284) 40.000MHz +HSync +VSync
h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz
v: height 600 start 601 end 605 total 628 clock 60.32Hz
720x576 (0x29a) 27.000MHz -HSync -VSync
h: width 720 start 732 end 796 total 864 skew 0 clock 31.25KHz
v: height 576 start 581 end 586 total 625 clock 50.00Hz
720x480 (0x29b) 27.000MHz -HSync -VSync
h: width 720 start 736 end 798 total 858 skew 0 clock 31.47KHz
v: height 480 start 489 end 495 total 525 clock 59.94Hz
640x480 (0x2a1) 25.180MHz -HSync -VSync
h: width 640 start 648 end 744 total 800 skew 0 clock 31.48KHz
v: height 480 start 482 end 484 total 525 clock 59.95Hz
640x480 (0x288) 25.175MHz -HSync -VSync
h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz
v: height 480 start 490 end 492 total 525 clock 59.94Hz
640x480 (0x29c) 25.170MHz -HSync -VSync
h: width 640 start 656 end 752 total 800 skew 0 clock 31.46KHz
v: height 480 start 490 end 492 total 525 clock 59.93Hz
1440x1080_85.00 (0x2b8) 190.000MHz -HSync +VSync
h: width 1440 start 1552 end 1704 total 1968 skew 0 clock 96.54KHz
v: height 1080 start 1083 end 1087 total 1137 clock 84.91Hz
1360x1020_85.00 (0x2b9) 167.750MHz -HSync +VSync
h: width 1360 start 1456 end 1600 total 1840 skew 0 clock 91.17KHz
v: height 1020 start 1023 end 1027 total 1074 clock 84.89Hz
nvidia-xconfig -t
just prints out your current xorg.conf. Since you don’t have one the output ‘not found’ is correct. Use (as root)
nvidia-xconfig --mode-debug
to generate one. The mode debug option is not there to help you but it helps nvidia to find bugs in their monitor/mode detection since that option dumps the complete monitor detection data to xorg logs. If you want bugs to be fixed you have to provide debug logs. That’s the case with nvidia-drivers as with any other piece of software.
Well… I wanted to check first what it was going to do, because I’d seen that it was going to write directly in my config files and I didn’t want nvidia-xconfig to make silent changes to my configuration and then not be able to reverse the changes if it’s was not ok. But that’s ok : In the mean time, I’ve found that I can use the -o switch to save xorg.conf localy and check it first.
By the way I’m not yet ready to restart X since this machine is busy (yet for 2 days) in a 10TB copy that I wouldn’t want to interrupt, but I’m already a bit concerned that the produced xorg.conf contains one and only monitor section, while I have three intalled. I doubt this is going to work smoothly. I don’t really know how this monitor configuration is stored when you don’t have a xorg.conf file, but as far as I understand it, having a monitor section will overide it, won’t it ? This is precisely what I wanted to avoid by using xrandr instead of xorg.conf (I tried it at the very beginning, but I have an an xorg.conf.d directory, and I never managed to make it work. - The xrandr approach was the only one that worked - with “Nouveau”.)
Ok, Problem solved on my side, by using nvidia-xconfig -o ./xorg.conf (thanks generix), and adding my monitor frequency ranges. Now I believe it’s not a bug but a feature (i.e. a design flaw) - to be forced to go back to xorg.conf when the tendancy is to have it disappear. It’s a bit absurd to block xrandr to stereotypical values when you received no EDID info at all. It make life complicated for the user, and it seems more logical to assume that if people still use some OLD CRTs, it should be because, those are really good monitors.
If you want I can provide some logs of then problem, but I’m not really sure it’s of use if the driver does what the designers expected it to do.
This is utterly frustarating… I managed to have it work, and just putting a D-Link KVM switch on the cable made it all crumble, because this KVM switch sends fake EDID information which contradicts my xorg.conf…
I tried to use
Option "UseEdidFreqs" "FALSE"
but it doesn’t seem to work at all (I haven’t seen any effect). Then I tried
Option "UseEDID" "FALSE"
and that works, but It seems there is no way to have is work only for my CRT monitor. Which means that both my other monitors are now unknwon - and since I don’t have the exact timings they would return in the EDID block, at least one complains that the video signal is not supported… X-(.
By the way, I wonder : Is there a way to tell xorg.conf, that my monitor is 4/3, 16/9 or 16/10, and that I only want to be proposed resolutions with the right aspect ratio ?