A Code Monkey's Blog

Install nVidia Driver on Fedora 17: A Non-typical Case

Finally I succeeded in installing the nVidia driver on my old Dell Inspiron 530 geared an old nVidia 8300 GS video card running Fedora 17 i386. Here is a quick recap on my journey with Fedora 17.

I started constantly using Fedora 17 half a year ago. I had used the default open source nVidia driver nouveau happily until the system updated the kernel from the 3.3.4 to some newer version. None of these newer kernels worked well with the nouveau driver. A common issue was the mouse was drawn as a big block and the GUI color was totally garbage. I tried to install the nVidia driver either according to what it said or using the installer from the official website of nVidia. But neither way worked. I could see the mouse was spinning but the whole system kept froze. So I excluded the kernel update in yum.conf under /etc. Everything was fine until one day my Fedora Linux suddenly crashed with a kernel panic error. The traceback message indicated it was about a kernel bug in the ext4 file system

kernel BUG at fs/ext4/extents.c

Initially I thought it could be due to certain bad blocks on my hard drive. But soon the hacker news confirmed that the bug in the kernel was the culprit. After several sudden losses of my working sessions I couldn't wait for any more seconds to update the kernel. And I had to make the Xorg server work too.

It really bugged me that the nVidia driver didn't work on my Fedora 17. I booted from Ubuntu Linux installed on an external USB disk. And the nVidia driver worked fine under it. There must be something wrong with akmod-nvidia or the official driver.

Accidentally I found the solution. It appeared that my 8300GS card was not supported very well in the recent 3xx driver. I guess this type was not very common. I tried akmod-nvidia-173xx and X server started this time. In my case, I didn't need to do this:

Remove / disable nouveau drivers from kernel initramfs

The remaining issue was the OpenGL apps were indirectly rendered. It was due to the nVidia GL library was not automatically loaded. The system still used the mesa GL to do the software rendering. A workaround is to put the following line in .bashrc

export LD_LIBRARY_PATH=/usr/lib/nvidia:$LD_LIBRARY_PATH

Another problem was the dual displays. The default xorg.conf generated by akmod-nvidia-173xx didn't support the twin views. Additionally, nvidia-settings complained the X11 driver was too old to be configured. Fortunately I had a copy of working xorg.conf at my Ubuntu partition. And here is what it looks right now.

# RPM Fusion - nvidia-173xx-xorg.conf
# 
Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DELL E228WFP"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier  "Device0"
    Driver      "nvidia"
    Option      "AddARGBGLXVisuals" "true"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "1"
    Option         "TwinViewXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "DFP: nvidia-auto-select +0+0, CRT: nvidia-auto-select +1680+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

I'm so excited to have my Fedora back in good shape and I want share my story with you. Hopefully it will help you if you are facing the same problem.

Linux