Again: the Nvidia driver does not work with Gnome 3

Mark Eggers mdeggers at gmail.com
Sat Jun 18 05:39:12 UTC 2011


On Sat, 18 Jun 2011 00:25:51 +0200, Alexander Volovics wrote:

> I would appreciate hearing from Fed15/Gnome3 users who (maybe) have the
> same graphics card: Geforce 7300 LE in a Dell Dimension E520 and have
> also experienced (and maybe solved) this problem.
> Suggestions on how to solve the problem (if possible) are also welcome.

This is long (as usual).

My current environment:

Platform: Upgraded Dell 8200
CPU:      2.6 GHz P4
Memory:   1.5 GB
Video:    7600 GS (overclocked)
Driver:   275.09.07 (from NVidia)
Screen:   Samsung SyncMaster 23" DVI at 1680x1050x24
OS:       Fedora 15

It's not quite the same card as yours, but close. Unfortunately this is 
an AGP system, so there may be some differences. I've not included my 
driver options to enable AGP side band addressing, since that would be 
pointless for a PCI-e card.

This works reasonably well for WindowMaker, KDE, and Gnome 3. I'm
editing this post in Emacs under Gnome 3 at present.

The last time I did a full install was with Fedora 10. Since then,
I've upgraded (mostly using preupgrade). I went through the following
releases.

F10 -> F11 -> F12 -> F14 -> F15

My xorg.conf file has been around for a long time, and has evolved a
bit. However, the last edit was on 09/15/2009.

I've posted the background for this system since some of what I do may
no longer be necessary. However since it results in a working system,
optimizing this process has a pretty low priority.

*** IMPORTANT ***
Please note, this works for me. It may or may not work for you. It may
or may not be optimal. Use at your own risk.
*** IMPORTANT ***

1. No modeset line in grub

While I can use modeset to get a graphical boot, there doesn't seem to
be a value for my monitor. Using a reasonably scaled modeset results
in a slower performing desktop (in my experience). Besides, I'm pretty
much of an old school type of person and I like seeing messages scroll
by when a system boots up.

2. Drivers from NVidia

This is less convenient than using rpmfusion's packages, but it seems
to give me a little more flexibility.

3. Installation triggers

Every time a kernel, X server component, mesa component, or a
screensaver component is upgraded, I reinstall my drivers. From my
understanding, NVidia drivers will no longer have problems if you use
the default libraries, so only a kernel upgrade should trigger the
reinstallation. However the reinstall takes only 5 minutes and seems
to generate no problems.

4. Installation steps

4a. Boot into init 3 (oops, systemd.unit=multi-user.target).

4b. Uninstall the current NVidia driver.

I know as part of the reinstall, NVidia attempts to uninstall the
current driver. Unfortunately, this often leaves a bunch of files
about. It's best to uninstall the driver, and then clean up the
remainder as detailed in 4c.

NVIDIA-x86-<driver-version>.run --uninstall

4c. Clean up any remaining files.

Sometimes the NVidia installer fails to completely uninstall the
driver. This can leave shared libraries around which will lead to
unstable operations. The uninstaller will warn you if it did not
remove all of the files.

To find the leftover files, I do the following:

grep /usr /var/log/nvidia-installer.log > cleanup.sh

I then edit the resulting file, adding a #!/bin/bash at the top,
removing comments, and adding an rm before every file that needs to be
removed. Run this as root to clean up the last traces of the previous
installation.

4d. Install the NVidia driver.

./NVIDIA-x86-<driver-version>.run

If you build OpenGL programs, you might want to run:

./NVIDIA-x86-<driver-version>.run --opengl-headers

This will install the OpenGL headers. NVidia has said they'll
standardize on the upstream headers at some point, but again I've not
tested this.

4e. SELinux tweaks

The NVidia install script does a reasonable job at changing the
SELinux properties. At some point in the past I found that these
changes were not enough. Symptoms included performance degradation and
lots of SELinux warnings (I run in permissive mode mostly). To fix
that I run the following script.

#!/bin/bash
chcon -t texrel_shlib_t /usr/lib/xorg/modules/drivers/nvidia_drv.so
semanage fcontext -a -t \
 texrel_shlib_t /usr/lib/xorg/modules/drivers/nvidia_drv.so
chcon -t texrel_shlib_t \
 /usr/lib/xorg/modules/extensions/libglx.so.275.09.07
semanage fcontext -a -t texrel_shlib_t \
 /usr/lib/xorg/modules/extensions/libglx.so.275.09.07
chcon -t texrel_shlib_t /usr/lib/tls/libnvidia-tls.so.275.09.07
semanage fcontext -a -t texrel_shlib_t \
 /usr/lib/tls/libnvidia-tls.so.275.09.07
chcon -t texrel_shlib_t /usr/lib/libGL.so.275.09.07
semanage fcontext -a -t texrel_shlib_t /usr/lib/libGL.so.275.09.07
chcon -t textrel_shlib_t /usr/lib/libvdpau.so.275.09.07
semanage fcontext -a -t texrel_shlib_t /usr/lib/libvdpau.so.275.09.07

Change 275.09.07 to fit the driver version you're
installing. Hopefully word wrap won't damage the script. Read and
modify carefully. You're running this as root, so it's best to
double-check.

Text relocation may no longer be necessary, but I've not taken the
time to experiment with this.

4f. One time SELinux change

When I first brought up Fedora 15 and Gnome 3, there was an SELinux
alert for gnome-session-c and nvidiactl. I just followed the SELinux
Troubleshooter recommendation to make a new local policy. This has
worked out fine.

4g. Reboot

Once all of this is done, reboot and you should have a working
environment.

Here's my /etc/X11/xorg.conf file:

Section "ServerLayout"
  Identifier  "single head configuration"
  Screen      0 "Screen0" 0 0
EndSection

Section  "ServerFlags"
  Option "Xinerama"  "0"
  Option "AIGLX"     "on"
EndSection

Section "Monitor"
  Identifier     "Monitor0"
  VendorName     "Samsung"
  ModelName      "Samsung SyncMaster T220"
  HorizSync      30.0 - 81.0
  VertRefresh    56.0 - 75.0
  Option         "DPMS"
  DisplaySize    445 278 # 1680x1050 96dpi
EndSection

Section "Device"
    Identifier     "Videocard0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "PNY 7600GS"
    Option         "DPI" "96 x 96"
        Option     "Coolbits" "1"
        Option     "AddARGBGLXVisuals" "True"
        Option     "BackingStore" "True"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth   24
        Option     "PixmapCache" "True"
        Option     "PixmapCacheRoundSizeKB" "4096"
        Option     "AllowSHMPixmaps" "False"
EndSection

Section "Extensions"
    Option         "Composite" "enable"
EndSection

Like I said, this seems to work for me. I hope this helps you.

. . . . just my two cents.

/mde/

PS: I've had some anomalies with Java swing applications and Emacs. If
you maximize a Java swing application, horizontal menu placement seems
to be off. In Emacs, sometimes focus is lost and the file menu has to
be touched before you can work with Emacs (scroll, edit, etc.). I
think both of these are Gnome 3 artifacts and not NVidia artifacts at
this point. However it could be a combination of the two. I would be
interested in hearing from people running Emacs or a Java swing
application under Gnome 3 with a) the nouveau driver or b) an ATI card. 




More information about the users mailing list