Tag Archives: NVIDIA

Blurry Fonts on X

This is not really a blog post more a note to self. After pulling my hair out because after an update of the X-server and Gnome on my Fedora 20 box every font accross windows, window titles, app-screens more or less became unreadable blurry and fuzzy characters all over the place that were only readable with a plus 9 left and minus 9 right glasses. I had this in the past and most of the time by upgrading the latest NVidia driver the problem was resolved. Not so today. Reboots, kernel updates, NVidia driver updates, xorg.conf modifications and adjustments all led to no avail. I was at the brink of throwing the box out of the window when I read a onliner on askubuntu.com which said

“OK, so this is going to sound ridiculous. But I switched the screen itself off and on again and it is working now.”

This looked so incredibly unbelievable that I ran out into the street, wanted to start screaming but could hold myself… (barely), went back in, turned my monitor off, then back on and the problem had disappeared. Aaaarrrrghh…..

OK, coffee now… Have a nice day..



NVidia driver will not install on FC17 & FC18 & FC19

It was that time of year again. The bi-annual kernel upgrade on my Fedora 17 desktop. Normally this all goes very smooth and this time it was no different. At least that’s how it looked like at first.

a “sudo yum update kernel\*”  always does a very nice job so that was the easy part. I have two relatively peculiar pieces of stuff in/on my system that requires some post-maintenance.

My box has an NVidia  Geforce GT 640 video card which provides me with a very nice picture and also does some gruntwork via cuda in the background. Normally I download the binary (uchh, yuck.. ahem…..) driver from their website, run the installer which builds a static driver and we’re done. Reboot the system and runlevel 5 (I know “graphical.target”) makes sure that the gdm desktop is displayed. That always worked until today.

It turns out that the kernel was upgraded from 3.3.4-5 to 3.7.6-102 and really mucked up the installer. Basically it checks for the kernel version and if it determines it to be outside a specific range it just throws an error-message at yah and says toedeloe.
The message is somewhat like this:

Using: nvidia-installer ncurses user interface 
-> Tagging shared libraries with chcon -t textrel_shlib_t. 
-> License accepted. 
-> Installing NVIDIA driver version 310.32. 
-> Performing CC sanity check with CC=”cc”. 
-> Performing CC version check with CC=”cc”. 
ERROR: Unable to find the kernel source tree for the currently running kernel. Please make sure you have installed the kernel source files for your kernel and that they are properly configured; on Red Hat Linux systems, for example, be sure you have the ‘kernel-source’ or ‘kernel-devel’ RPM installed. If you know the correct kernel source files are installed, you may specify the kernel source path with the ‘–kernel-source-path’ command line option. ERROR: Installation has failed. Please see the file ‘/var/log/nvidia-installer.log’ for details. You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.

The error message is BS since the sources and headers were all there. This was a slap in my face since this means you’re unable to get started in graphical mode and you are pretty limited with you options then.

My solution was the first extract the NVidia driver with the -x parameter. This extracts the entire package into a subfolder. Then, in that subfolder, open up the kernel/conftest.sh script. This is the script that mainly does all the hard work in testing to see if you’re all set with dependencies etc. Then goto line 1706 (at least with version 310.32) and you’ll see something like:

                if [ -n “$PATCHLEVEL” -a $PATCHLEVEL -ge 6 \
                        -a -n “$SUBLEVEL” -a $SUBLEVEL -le 5 ]; then                    SELECTED_MAKEFILE=Makefile.kbuild

 The highlighted line shows the problem. My $PATCHLEVEL is OK. 7 is greater than or equal to 6 but my $SUBLEVEL in the same context is incorrect : 6 is not greater than or equal to 5.
Simple thing to change the 5 into a 6, run the nvidia-installer script and voila, it builds. All sorted.

The second piece is my Virtual box installation which also doesn’t have an standard build in the main YUM repositories so I always install the RPM from the VirtualBox website. When the kernel gets updates always make sure you run the “/etc/init.d/vboxdrv setup” command which links all the required kernel modules to work nicely with the new kernel.

Cudo’s to Leigh Scott who sorted out the NVidia problem over here. Strange that NVidia hasn’t fixed this right away.


Update on FC19, there is another bug which is solved by 319.49. So use that one when installing on FC19. You don’t need to modify any of the setting I mentioned before and this driver will install happily on 3.10.9-200.fc19.x86_64 #1 SMP Wed Aug 21 19:27:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux


NVIDIA card and Nouveau

So with the new box I ordered a NVidia GeForce GT 640 Grafx card. I need some desktop realestate and thus a very high resolution card. This one came very good in the middle from a price and performance perspective.

Since a couple of kernel version ago Linux comes with the OpenSource nouveau drivers which are the alternative for the official NVidia drivers which are still closed source. I’m not that kind of guys who buys a very good piece of machinery to let it cripple by incomplete drivers. (No offence to the Nouveau developers. It’s not their fault NVidia doesn’t play nice with the open-source world.) So I do want to use the official drivers but that lets you run into some problem since the Nouveau drivers are loaded by default.

This calls for some blacklisting so you add in /etc/modprobe.d a new file called blacklist-nouveau.conf with a oneliner:

blacklist nouveau

This prevents the nouveau driver from being loaded at boot time. At least that’s what you think 🙁

Then install the official NVidia driver with “yum localinstall “.

It turns out that the nouveau driver is also statically compiled into the kernel boot image so you have to copy or rename that one and use dracut to create a new one which also takes your balcklisted nouveau driver into account:

#> dracut -f /boot/initramfs-$(uname -r).img $(uname -r)

Then reboot the system once more ad you’re done.

The lsmod shows you a line like this:
nvidia              11262717  41
and the nouveau driver is out of the picture.