Friday, November 20, 2009

Ubuntu Nvidia problems with Dell Latitude C840

For those of you that don't know, I'm the systems administrator for a non-profit organization. I work on numerous projects throughout the day, but there is a lot of fun to be had with some of the donations that we get in as well. One of these donations happened to be a Dell Latitude C840. Depending on the speed and condition of the hardware we get in, I choose various operating systems to be installed. More often then not I choose a flavor of linux.

Chromium OS was released yesterday so I decided to install a fresh copy of Ubuntu 9.04 as Chromium OS requires Ubuntu 8.04 or above. Having installed an earlier version of Ununtu on this same laptop I knew that I had issues with the Nvidia drivers working properly with xserver.

When you install the Restricted Nvidia drivers for the first time you will be required to reboot the system. You'll notice that when you boot back into your login screen that the screen will be black. Don't Panic! This can be fixed. When this first happened to me I used my google-fu to hunt down a fix. I found this blog post over at brainyautomation.com:
nano -w /etc/modprobe.d/nvidia-kernel-nkc

# add this to the end of the file
options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=0
He suggests booting into recovery mode from grub, but I went a different route:
  • Press Ctrl+Alt+F4 to take you to a virtual console. Login.
  • Type "sudo nano -w /etc/modprobe.d/nvidia-kernel-nkc" If you're like me, you DON'T have this file created already so it will be empty. That's ok, just save it with the next line anyway.
  • "options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=0"
  • Ctrl+O and save.
  • Back in the shell type "sudo /etc/init.d/gdm restart"
  • Xserver should now restart and bring you back to a login screen. If not, you can press Ctrl+Alt+F7 and get back to GNOME.
Once I did that I had one more problem once I got back into GNOME. The window borders were missing. Again I used my google-fu and found my answer...this time from the Ubuntu Forums.
  • Press Ctrl+Alt+F4 to take you to a virtual console. Login.
  • Type "sudo nvidia-xconfig --add-argb-glx-visuals"
  • Back in the shell type "sudo /etc/init.d/gdm restart"
  • Xserver should now restart and bring you back to a login screen. If not, you can press Ctrl+Alt+F7 and get back to GNOME.
After this you should now have window borders again. I hope this helps someone at some point. Next up I will guide you through how to install Chromium OS.

5 comments:

  1. just another reason linux usually is far too annoying to be used as a main OS on a daily use desktop system. i know what i'm doing in it too, i've been using it for the better part of 8 years. (mostly debian)

    i always have several systems running it turned on, performing various server tasks but you'll find my nice "normal use" PC with the overclocked Phenom II X4 955 black running Windows 7. it's just less of a pain in the ass.

    ReplyDelete
  2. Ctrl+Alt+F4 was a lifesaver for me.
    I didn't know you can get to a virtual console.
    Thank you!

    ReplyDelete
  3. Hey there! Thank you so much for this guide... I can't believe how much of a lifesaver it was! It has worked so far for me in Ubuntu 9.10, 10.10 (did not work in the 11.x series) and 12.04!!!

    With 12.04 you can upgrade to the latest nVidia 96.43.27 drivers from their site after you install and configure them this way.

    Now I'm going to try to get adventurous and do the following in 13.04 which will downgrade X.org from 1.13 back to 1.12:

    sudo add-apt-repository ppa:makson96/fglrx
    sudo apt-get dist-upgrade
    reboot

    Then install the latest nVidia drivers using the .run file!! WHOA!

    If you (blog poster) wanna try it as well, or anyone else does, post back here with the results! Viva la old laptops!

    ReplyDelete
  4. Thanks!

    I got the NVidia driver working finallY...

    I noticed on the blog the text says: "options nvidia NVreg_SoftEDIDs=o NVreg_Mobile=o" with little "o" instead of zero. I knew that was wrong and put in zeros anyway. When I pasted the text, the zeros were correctly shown. Weird.

    Just thought I'd let you know!

    ReplyDelete