nvidia card gt520m not useable with nvidia driver, no devices detected, screen blank

Hello, (it should read “no devices detected”, and not “do devices…” in the title, sorry)

I have installed Opensuse 11.4 64-bit version on my new laptop (Asus U30SD, Intel Sandybridge Core i5).


$ uname -a
2.6.37.6-0.7-desktop #1 SMP PREEMPT 2011-07-21 02:17:24 +0200 x86_64 x86_64 x86_64 GNU/Linux

I have used the driver from the suse repository, i.e. package x11-video-nvidiaG02 in version 275.21-7.1. This is not the newest version (285) but I have verified from the Nvidia release notes that it should support the Nvidia graphics card GT520M.

First I had the problem that the X server died on startup with “(EE) No devices detected”.
I was able to fix this specifying the Busid to the “device” section in /etc/xorg.conf.d/50-device.conf.



$ /sbin/lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: nVidia Corporation Device 1050 (rev a1)

# from "01:00.0"  --> format as 1:0:0 and use below:

Section "Device"
  Identifier "Device0"

  #Driver         "nvidia"
  #VendorName     "NVIDIA Corporation"

  Busid "PCI:1:0:0"


Kernel module is loaded, (nouveau module is not, is blacklisted):


$ lsmod | grep nv
nvidia              12005130  0

Now the X server does not die, but the screen remains black. There seems to be no error message. I suspected a missing video mode and added a Modline entry to the 50-monitor.conf file (and used the id in the screen.conf file). But this did not help.


# 1368x768 59.88 Hz (CVT) hsync: 47.79 kHz; pclk: 85.25 MHz
Modeline "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync

Does anyone have an idea what is going on here?

I am not allowed to post an attachment (why?), instead I add a few lines from /var/log/Xorg.0.log:


  3296.017] (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
  3296.017] (==) NVIDIA(0): RGB weight 888
  3296.017] (==) NVIDIA(0): Default visual is TrueColor
  3296.017] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
  3296.220] (WW) NVIDIA(GPU-0): Unable to read EDID for display device CRT-0
  3296.224] (II) NVIDIA(0): NVIDIA GPU GeForce GT 520M (GF119) at PCI:1:0:0 (GPU-0)
  3296.224] (--) NVIDIA(0): Memory: 1048576 kBytes
  3296.224] (--) NVIDIA(0): VideoBIOS: 75.19.21.00.03
  3296.224] (II) NVIDIA(0): Detected PCI Express Link width: 16X
  3296.224] (--) NVIDIA(0): Interlaced video modes are supported on this GPU
  3296.224] (--) NVIDIA(0): Connected display device(s) on GeForce GT 520M at PCI:1:0:0
  3296.224] (--) NVIDIA(0):     CRT-0
  3296.224] (--) NVIDIA(0): CRT-0: 400.0 MHz maximum pixel clock
  3296.230] (II) NVIDIA(0): Assigned Display Device: CRT-0
  3296.230] (II) NVIDIA(0): Validated modes:
  3296.230] (II) NVIDIA(0):     "1368x768_60.00"
  3296.230] (II) NVIDIA(0): Virtual screen size determined to be 1368 x 768
  3296.232] (WW) NVIDIA(0): Unable to get display device CRT-0's EDID; cannot compute DPI
  3296.232] (WW) NVIDIA(0):     from CRT-0's EDID.
  3296.232] (==) NVIDIA(0): DPI set to (75, 75); computed from built-in default
  3296.232] (--) Depth 24 pixmap format is 32 bpp
  3296.232] (II) NVIDIA: Using 3072.00 MB of virtual memory for indirect memory
  3296.232] (II) NVIDIA:     access.
  3296.237] (II) NVIDIA(0): Setting mode "1368x768_60.00"
  3296.273] (II) Loading extension NV-GLX
  3296.300] (==) NVIDIA(0): Disabling shared memory pixmaps
  3296.300] (==) NVIDIA(0): Backing store disabled
  3296.300] (==) NVIDIA(0): Silken mouse enabled
  3296.300] (**) NVIDIA(0): DPMS enabled
  3296.300] (II) Loading extension NV-CONTROL
  3296.301] (II) Loading extension XINERAMA
  3296.301] (II) Loading sub module "dri2"
  3296.301] (II) LoadModule: "dri2"
  3296.301] (II) Reloading /usr/lib64/xorg/modules/extensions/libdri2.so
  3296.301] (II) NVIDIA(0): [DRI2] Setup complete
  3296.301] (==) RandR enabled

 

Use suse paste
SUSE Paste

Be sure to select the delete ‘never’ option

ok,

URL: SUSE Paste

thank you.

by the way, would it be easy for you to change the typo in the title line? “do devices detected” → no devices detected" ?
thanks, karsten

Title changed.

Is this a nvidia optimus system (hybrid graphics)?
If it is, the nvidia card outputs though the intel graphics and the intel graphics outputs to the monitor (I think). So if the nvidia graphics is running and the intel graphics is disabled you will end up with a black screen.
The best solution that I have found at the moment is https://github.com/MrMEEE/bumblebee
On some laptops there may be an option in the bios setup to use one of the graphics (I don’t have that option)
I would like a way to have the nvidia card being used for everything. I’m not worried about the battery life. I haven’t found any way of doing this yet.
You will be able to find that many people (using Linux) are having problems with this if you google around.
Good luck :slight_smile:

delete - not applicable …

disregard my previous post. Its early in the AM and I am getting audio mixed up with video ! :frowning:

Ok, thanks for the tipps: it is indeed an Nvidia Optimus system.
I am now much further:

  • installed bumblebee as described, it should enable starting a specific application manually in an extra X server

  • started “optirun glxgears” to test running “glxgears” application with the Nvidia card
    → got error: FATAL: Module acpi_call not found.

  • acpi_call is installed, but only for older kernel
    Perhaps it would work copying the old module from /lib/modules/2.6.37.1-1.2-… to the new tree /lib/modules/2.6.37.6-0.7-desktop/, but I compiled it from downloaded source, copied it to /lib/modules/2.6.37.6-0.7-default/updates/drivers/ and to …-default/updates/drivers, and called depmod -a to make it known. Finally call “modprobe acpi_call” to load it.

  • Now this error message disappeard, but I had to add some missing sections regarding keyboard, mouse and touchpad to /etc/X11/xorg.conf.nvidia which is used by bumblebee. This was indicated in /var/log/Xorg.8.log.

  • However, I am stuck now since GLX still does not start:


   Xorg.8.log:  62551.069] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
  

Ok, thanks for the tips: it is indeed an Nvidia Optimus system.
I am now much further:

  • installed bumblebee as described, it should enable starting a specific application manually in an extra X server

  • started “optirun glxgears” to test running “glxgears” application with the Nvidia card
    → got error: FATAL: Module acpi_call not found.

  • acpi_call is installed, but only for older kernel
    Perhaps it would work copying the old module acpi_call.ko from /lib/modules/2.6.37.1-1.2-… to the new tree /lib/modules/2.6.37.6-0.7-desktop/, but I compiled it from downloaded source, copied it to /lib/modules/2.6.37.6-0.7-default/updates/drivers/ and to …-default/updates/drivers, and called depmod -a to make it known. Finally called “modprobe acpi_call” to load it.

  • Now this error message disappeard, but I had to add some missing sections regarding keyboard, mouse and touchpad to /etc/X11/xorg.conf.nvidia which is used by bumblebee. This was indicated in /var/log/Xorg.8.log.

  • However, I am stuck now since GLX still does not start, and the Intel driver seems to be used:


   62848.960] (**) intel(0): Depth 24, (--) framebuffer bpp 32
   62848.960] (==) intel(0): RGB weight 888
   62848.960] (==) intel(0): Default visual is TrueColor
   62848.960] (II) intel(0): Integrated Graphics Chipset: Intel(R) Sandybridge
   62848.960] (--) intel(0): Chipset: "Sandybridge"
   62848.960] (**) intel(0): Tiling enabled
   62848.960] (**) intel(0): SwapBuffers wait disabled
   62848.960] (==) intel(0): video overlay key set to 0x101fe
   62848.960] (II) intel(0): Output LVDS1 using monitor section Monitor0
   62848.960] (II) intel(0): found backlight control interface /sys/class/backlight/acpi_video1
   62848.960] (II) intel(0): Output VGA1 has no monitor section
   62848.965] (II) intel(0): Output HDMI1 has no monitor section
   62848.966] (II) intel(0): Output DP1 has no monitor section
   62848.966] (II) intel(0): EDID for output LVDS1
   62848.966] (II) intel(0): Manufacturer: AUO  Model: 352c  Serial#: 0
   62848.966] (II) intel(0): Year: 2010  Week: 0
   62848.966] (II) intel(0): EDID Version: 1.3
   62848.966] (II) intel(0): Digital Display Input
  ...
   Xorg.8.log:  62551.069] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
  

But the device section in xorg.conf.nvidia calls the nvidia driver:


  Section "Device"
        Identifier     "Device0"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
        BusID          "PCI:01:00:0"
        Option         "IgnoreEDID"
        Option         "ConnectedMonitor" "CRT-0" 
  EndSection
  

If I edit xorg.conf.d/50-device.conf to use the nvidia driver, then it seems to work, at least a window is visible for a short time and no error occurs in Xorg.8.log.
However this cannot be the solution, since my normal desktop would not work.

The problem seems to be, that the file xorg.conf.nvidia and the directory xorg.conf.d seem to collide. If I change the Layout name in xorg.conf.nvidia from Layout0 to e.g. LayoutNV, still the Layout0 from the directory is used:


 65133.865] (++) Using config file: "/etc/X11/xorg.conf.nvidia"
 65133.865] (==) Using config directory: "/etc/X11/xorg.conf.d"
 65133.865] (==) ServerLayout "Layout0"       <<<<<<<<<<<
 65133.866] (**) |-->Screen "Screen0" (0)
 65133.866] (**) |   |-->Monitor "Monitor0"
 65133.866] (**) |   |-->Device "Device0"
 65133.866] (**) |-->Input Device "Keyboard0"
 65133.866] (**) |-->Input Device "Mouse0"

I got the same graphic card in my ASUS K53SJ (Optimus). I installed bumblebee and I’am now able to use the NVIDIA graphic card. But I don’t have a xorg.conf file at all. As I now you don’t need a xorg.conf file anymore. Try to rename/move the file and restart your computer. The x-server should start just fine.

You were right. I was irritated by the fact that the file was delivered with the bumblebee package:


satyavan:/etc/X11 # rpm -ql bumblebee-1.7.10-8.1.x86_64 | grep conf
/etc/X11/xorg.conf.nouveau
/etc/X11/xorg.conf.nvidia
/usr/bin/bumblebee-configuration

I moved it aside and now the X server starts: it does not find the file and then only uses the config directory.


# from Xorg.8.log:

   771.037] (EE) Unable to locate/open config file: "/etc/X11/xorg.conf.nvidia"
   771.037] (==) Using config directory: "/etc/X11/xorg.conf.d"

For example I run the application glxgears, but also boincmgr (BOINC project). The latter recognises the GPU correctly and uses it in its numerical computaitions.

The only thing is: the additional X server uses the same directory /etc/X11/xorg.conf.d as the normal X server, and I have to switch on and off the driver “nvidia” in the device section. I found, that optirun = /usr/bin/optirun really is a script, but I found no option to switch the X config dir.