Nvidia proprietary driver doesn't work (GeForce GT 640)

I did a clean install of opensuse 15.2 today and found the nvidia proprietary drivers from the nvidia repo doesn’t work.

I tried both the G04 and the G05 driver, but the result is the same: my screen resolution seems to be very low (images and fonts are extremely large, both in KDE and in KDM greeter). As soon as I remove the nvidia propietary driver, resolution is ok again.

Can someone point me in the right direction how to get the proprietary driver working? Until yesterday I was running opensuse 42.3 with proprietary driver and with the same graphics card without any problem.

https://forums.opensuse.org/showthread.php/541951-Leap-15-2-NVIDIA-driver-does-not-work?p=2948833#post2948833

For GF116 chip you need G04 driver.

Well I tried both G04 and G05, both with same result.

My desktop looks exactly like this one:

https://forums.opensuse.org/showthread.php/542683-Nvidia-driver-and-oversize-X-windows-toolbar

Some extra info: output of inxi command


inxi -SGxxz
System:
  Kernel: 5.3.18-lp152.33-default x86_64 bits: 64 
  compiler: gcc v: 7.5.0 Desktop: KDE Plasma 5.18.5 
  tk: Qt 5.12.7 wm: kwin_x11 dm: SDDM 
  Distro: openSUSE Leap 15.2 
Graphics:
  Device-1: NVIDIA GK107 [GeForce GT 640] 
  vendor: Micro-Star MSI driver: nvidia v: 390.138 
  bus ID: 01:00.0 chip ID: 10de:0fc1 
  Display: x11 server: X.Org 1.20.3 compositor: kwin_x11 
  driver: nvidia unloaded: fbdev,modesetting,nouveau,nv,vesa 
  resolution: 1680x1050~60Hz s-dpi: 267 
  OpenGL: renderer: GeForce GT 640/PCIe/SSE2 
  v: 4.6.0 NVIDIA 390.138 direct render: Yes

267 on a 1680x1050 screen would only be appropriate if the screen was extremely tiny. Can you try the possible solution proposed in https://forums.opensuse.org/showthread.php/542683-Nvidia-driver-and-oversize-X-windows-toolbar?p=2952838#post2952838 ?

I also found this in /var/log/Xorg.0.log:


    27.422] (==) NVIDIA(0):
    27.422] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
    27.422] (==) NVIDIA(0):     will be used as the requested mode.
    27.423] (==) NVIDIA(0):
    27.423] (II) NVIDIA(0): Validated MetaModes:
    27.423] (II) NVIDIA(0):     "DFP-1:nvidia-auto-select"
    27.423] (II) NVIDIA(0): Virtual screen size determined to be 1680 x 1050
    27.430] (--) NVIDIA(0): DPI set to (266, 296); computed from "UseEdidDpi" X config
    27.430] (--) NVIDIA(0):     option

Maybe the DPI is the problem. How can I set it to a lower value? I tried with uncommenting the monitor section in /etc/X11/xorg.conf.d/50-monitor.conf and adding two options:


Section "Monitor"
  Identifier "Default Monitor"
#
#  ## If your monitor doesn't support DDC you may override the
#  ## defaults here
#  #HorizSync 28-85
#  #VertRefresh 50-100
#
#  ## Add your mode lines here, use e.g the cvt tool
#

Option "DPI" "96 x 96"
Option "UseEdidDpi" "False"

EndSection


But after reboot xorg.0.log still contains:


    27.645] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
    27.645] (==) NVIDIA(0):     will be used as the requested mode.
    27.645] (==) NVIDIA(0): 
    27.645] (II) NVIDIA(0): Validated MetaModes:
    27.645] (II) NVIDIA(0):     "DFP-1:nvidia-auto-select"
    27.645] (II) NVIDIA(0): Virtual screen size determined to be 1680 x 1050
    27.653] (--) NVIDIA(0): DPI set to (266, 296); computed from "UseEdidDpi" X config
    27.653] (--) NVIDIA(0):     option

PS. I don’t have an /etc/X11/xorg.conf file

Please do

susepaste -n suskewiet2 /var/log/Xorg.0.log

and provide the resulting URL here. If it produces a failure message, goto https://paste.opensuse.org/lists and you’ll probably see yours listed anyway. We almost certainly need to see the whole log.

susepaste link: https://paste.opensuse.org/60934391

Hi @suskewiet2

If you force the DPI font value to 96 in the Fonts menu of the KDE system configuration (last option of the Fonts menu), does it improve or solve your issue ?
It just worked for me.

Hope it helps.

This apparently expired before I could open it. I get a not found error trying now.

This seems to be a problem with the current NVidia drivers, solution for another in recent hours here.

I had problems with the newer NVIDIA drivers when I switched from 630 to 1030 card. I ended up going the NVIDIA site and installing older drivers the hard way which work fine. I think NVIDA may be doing some signing of the driver and that seems to be what is not working at least in some cases??? Maybe???

Ok I figured out how to resolve the issue.

  1. run sudo nvidia-xconfig to generate an /etc/X11/xorg.conf file (which did not exist before)
  2. Edit xorg.conf file with UseEdidDpi set to false (see below)
  3. reboot

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
    Option         "UseEdidDpi" "FALSE"
EndSection

Only thing I don’t understand: why did I need to create the xorg.conf file to resolve? Why doesn’t the same setting work when setting it in

/etc/X11/xorg.conf.d/50-monitor.conf

followed by running mkinitrd. It seemed that my changes in that file were not picked up by the system, but I have no idea why.

In xorg.conf you had a ‘Section “Device”’ making a logical connection between your display and your GPU. For ‘Option “UseEdidDpi” “FALSE”’ to work in 50-monitor.conf, you need a file in xorg.conf.d/ doing the same, e.g. 50-device.conf.

I can’t actually test ‘Option “UseEdidDpi” “FALSE”’, because I never use taiting drivers, and it’s not valid except using NVidia’s drivers. But, proof of concept follows:

# /etc/X11/xorg.conf.d/50-device.conf
Section "Device"
    Identifier	"Default Device"
	Option	"monitor-HDMI-3"	"Default Monitor"
EndSection

# /etc/X11/xorg.conf.d/50-monitor.conf
Section "Monitor"
    Identifier	"Default Monitor"
	DisplaySize	541 304 # 120 DPI @ 2560x1440
EndSection

Without the 50-device.conf file specifying which monitor is connected to which output port, DisplaySize is ignored.

@mrmazda thanks for clarifying!