Gnome Only Starts in Fallback Mode; NVIDIA Driver Problem

Hi, I’d appreciate a little help from people who might know what they’re doing; as I clearly do NOT.

The backstory:
I have a fairly fresh 12.2 install on a Dell XPS 15 with an Ivy bridge and Nvidia GT640M.

After a few failed attempts installing new and adding in the Nvidia repo I settled on using the Nouveau drivers, which worked well except blue colors were flickering on my external monitor after installing the various 3rd party software I require. …I don’t know which one of them did it but I had things working fine after doing the install and

zypper dup

.

…so knowing there might be trouble waiting for me I added the nvidia repo and the appropriate nvidia G02 package. …and was rewarded with a black screen after boot.

I followed the advice of many, many related threads on these forums (mainly requiring me to add the XOrg repo, forcing updates, blacklisting nouveau, and booting with ‘spalsh=0 nomodeset’) and have ended up in a place where I can logon at runlevel 5 with gnome in fallback mode if I remove the xorg.conf file from the /etc/X11 directory. I cannot use gnome shell and I cannot get the system to recognize the external monitor.

I reboot, edit the boot options at the boot screen, and sign-on at runlevel 3 as root…

If I look at /var/log/xorg.0.log, I see some errors…


...
(EE) Failed to load /usr/lib64/xorg/modules/libglamoregl.so: /usr/lib64/xorg/modules/libglamoregl.so: undefined symbol: _glapi_tls_Context
...
(EE) NVIDIA: Failed to load the NVIDIA kernel module. Please check your system's kernel log for additional error messages
(II) UnloadModule: "nvidia"
(II) Unloading nvidia
(EE) Failed to load module "nvidia" (module-specific error, 0)
(EE) No drivers available.
... 

If I look at hwinfo --glxcard, I see both the Intel Ivy bridge and the Nvidia cards but for the nvidia card it says


...
Driver Status: Nvidiafb is not active
Driver Activation Command: "modprobe nvidiafb"
...
Driver Status: Nouveau is not active
Driver Activation Command: "modprobe nouveau"
...

So, I typed:

modprobe nvidiafb

and it seems to execute—at least, it gives no errors.

And then I try ‘startx’ but get

FATAL: Module Nvidia not found.

If I run ‘nvidia-xconfig’ then NVIDIA creates an xorg.conf. BUT, when I reboot I get an error:

 ...GdmLocalDisplayFactory: maximum number of X display failures reached: check X server log for errors

Where to go from here?

Doing an upgrade to openSUSE 12.2 does bod well when you use the nVIDIA driver. Editing the xorg.conf file is seldom required. Further, the more things you try, the deeper in problems that you get. My suggestion is to do a clean install. You can backup your data files or do a custom partition, making sure to reuse all partitions just as they are now, but you only format the root / partition and just mount everything else like /home with no format. You must reload all applications and reset system settings, but all personnel settings will be maintained. Then, you see if the nouveau driver works for you by default. I have it working just fine on two PC’s, or you switch to the nVIDIA driver loaded the hard way. Once you use the nVIDIA driver, you can seldom go back to nouveau without doing a complete reinstall. Anyone that says otherwise has not tried to do it lately.

For anyone wishing to load the nViDIA driver the hard way have a look at these links:

Installing the nVIDIA Video Driver the Hard Way - Blogs - openSUSE Forums

AND

LNVHW - Load NVIDIA (driver the) Hard Way from runlevel 3 - Version 1.46 - Blogs - openSUSE Forums

Thank You,

Thanks, James.

I guess that by doing a reinstall that I’ll get the chance to logout and log back in again with each 3rd party software installation and find out what’s causing the problem with the external monitor under the nouveau driver… Certainly, if I have the patience to really work that way then I’ll share what I learn.

I suspect the problem lies somewhere with this hybrid graphics card setup (even though I have not approached bumblebee at all).

If you run hybrid graphics, you can’t run the NVIDIA card like you used to. ATM it’s impossible to run X on the NVIDIA completely. By installing the NVIDIA card, you confused the system. F.e. the NVIDIA needs nomodset, where the Intel needs modesetting. And, the NVIDIA installer replaces some X files by symlinks to it’s own versions.
To get things back to work,
set NO_KMS_IN_INITRD to “no” in Yast - System - Sysconfig editor
reinstall Mesa, xorg-x11-server
and report if things improved. You should have the Intel integrated back to normal.

To use the NVIDIA card, you need to install bumblebee and the modified NVIDIA driver.

If this is an Optimus Setup in a Laptop, then only a Bumblebee setup will work and its worth a try before you do anything else. Basically if you have a dual graphics personality, then its hard to get any graphic driver to work. It is one of these reasons why our kernel leader Linus Torvalds shot nVIDIA the “finger” on live TV last summer due to frustration on how nVIDIA has treated its Linux customers so to speak.

Thank You,

Ah! Good to know.

To get things back to work,
set NO_KMS_IN_INITRD to “no” in Yast - System - Sysconfig editor
reinstall Mesa, xorg-x11-server
and report if things improved. You should have the Intel integrated back to normal.

Seems not. But just to clarify, should I also uninstall the nvidia graphics drivers?

To use the NVIDIA card, you need to install bumblebee and the modified NVIDIA driver.

I will give it a try but not tonite.

Oh, well maybe I’ll rethink not doing this tonite and just keep at it until the work is done. …sounds like it may be necessary.

OK, performing the steps from Knerpht I can still boot into gnome fallback mode but not into the full gnome shell.

Then, (in yast) I added the bumblebee project repo, uninstalled the nvidia repo drivers, disabled the nvidia repo, added the bumblebee repo for the most current (304.64) driver’s opensuse 12.2 repo, installed those nvidia drivers, rebooted, (shut my eyes, crossed my fingers)…

and I still boot all the way into gnome but, still in fallback mode.

…back to the xorg.0.log and find that all the previous errors are gone (yeah!) but here are new ones (boo!)

(EE) *AIGLX error*: *dlopen of /usr*/X11/*lib*/*dri*/*swrast_dri*.*so failed*

swrast_dri.so seems to be in Mesa so I reinstall and reboot

…back into gnome fallback mode :frowning:

Any more ideas?

Update. I found this thread on how to install bumblebee on openSUSE 12.2 and rejiggered the repos and installed packages to get that squared away. The bumblebee server seems to be running just fine, as are the nVidia drivers. My output from ‘/sbin/lspci -nnk | grep VGA -A2’ shows

00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09)
	Subsystem: Dell Device [1028:054f]
00:14.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller [8086:1e31] (rev 04)
--
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107 [GeForce GT 640M] [10de:0fd2] (rev a1)
	Subsystem: Dell Device [1028:054f]
	Kernel driver in use: nvidia

Along with these errors in the Xorg.0.log

    28.334] (==) RandR enabled
    28.334] (II) Initializing built-in extension Generic Event Extension
    28.334] (II) Initializing built-in extension SHAPE
    28.334] (II) Initializing built-in extension MIT-SHM
    28.334] (II) Initializing built-in extension XInputExtension
    28.334] (II) Initializing built-in extension XTEST
    28.334] (II) Initializing built-in extension BIG-REQUESTS
    28.334] (II) Initializing built-in extension SYNC
    28.334] (II) Initializing built-in extension XKEYBOARD
    28.334] (II) Initializing built-in extension XC-MISC
    28.334] (II) Initializing built-in extension SECURITY
    28.334] (II) Initializing built-in extension XINERAMA
    28.334] (II) Initializing built-in extension XFIXES
    28.334] (II) Initializing built-in extension RENDER
    28.334] (II) Initializing built-in extension RANDR
    28.334] (II) Initializing built-in extension COMPOSITE
    28.334] (II) Initializing built-in extension DAMAGE
    28.337] (II) AIGLX: Screen 0 is not DRI2 capable
    28.337] (II) AIGLX: Screen 0 is not DRI capable
    28.338] (EE) AIGLX error: dlopen of /usr/lib64/dri/swrast_dri.so failed (/usr/lib64/dri/swrast_dri.so: cannot open shared object file: No such file or directory)
    28.338] (EE) GLX: could not load software renderer
    28.338] (II) GLX: no usable GL providers found for screen 0

make me think that the error is not with Bumblebee but with the intel drivers and/or the Mesa libraries.

Is that reasonable?

I also noticed that I no longer have the Nouveau drivers installed that I cannot install them any longer because of a missing dependency (libudev.so > 184)—but all I can find are libudev.so 182…

Negative on that. Have a look here: Bumblebee broken after recent update · Issue #276 · Bumblebee-Project/Bumblebee · GitHub

Hmm. I worked through that and found nothing I could use.

Along the way I discovered this oddity: gnome refuses to start in shell, only in fallback mode. BUT if I type ‘glxgears’ in a console I get an error

Error: couldn't get an RGB, Double-buffered visual

If I type ‘optirun glxgears’ in a console I get the spinning 3d gears.

Power saving aside, do I need to tell Gnome to start using ‘optirun’?

I almost answered my own question. ‘optirun gnome-shell --replace’ in a terminal gives me the shell! …for about 5 seconds before everything locks up (except the mouse)

Looking at the GitHub thread that Tyler_K posted (thanks, BTW) I saw to check ‘optirun glxinfo’ and ‘optirun glxinfo32’. I get loads of info that looks to be confirming that 64bit optirun is working. Howerver,

# optirun glxinfo32
/usr/bin/vglrun: line 303: exec: glxinfo32: not found

So, I’ve got issues. …the 32bit libgl.so is not being found where it needs to be and the Intel drivers are still not showing up in all the places they need to be.

I’ll see what the bumblebee people can tell me, as I must agree with Tyler_K that there are definitely problems there. I’ll come back here if it looks like there are problems beyond the bumblebee project.

This is where I got after installing bumblebee and the modified NVIDIA driver:


knurpht@laptop:~> glxinfo | grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile 
OpenGL version string: 3.0 Mesa 9.0
OpenGL shading language version string: 1.30
OpenGL extensions:
knurpht@laptop:~> optirun glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 610M/PCIe/SSE2
OpenGL version string: 4.2.0 NVIDIA 304.64
OpenGL shading language version string: 4.20 NVIDIA via Cg compiler
OpenGL extensions:

To understand why the trick you tried to get gnome-shell working, please read the docs on bumblebee. I have no doubt that a true working solution will be found, allowing you to run gnome-shell or KDE completely on the discrete video adapter, but for the moment this is not possible.