Ubuntu – Getting Nvidia GeForce GT 635M to work in 13.04


I tried installing NVIDIA drivers in 12.10 via x-swat repository, and primus, and nouveau, and a million things i found on the net and everything just broke the system, until I finally got bumblebee to run and it was okay for some days, but the next upgrade again broke the X and I had to do low-level stuff. Fortunately 13.04 was released and I did a clean install.

Now in 13.04, I need some way that is stable enough to get my GPU benefits without spending all-nighters every time I update my system.

In that line, I downloaded the NVIDIA Linux drivers from NVIDIA site (310.44 version) shown for my GeForce GT635M graphic card. (BTW is this the latest version? I saw 310.88 somewhere on internet), but now am stuck with the below questions:

  1. How to install this .run file in Ubuntu 13.04 without breaking anything now, or in the future updates.

  2. Is installation of proprietary drivers stable enough?

  3. I am sort of mixed up about the various terms I have read about – primus, nouveau, bumblebee, optirun, etc. Can anyone help me with some accurate and decent reading material/websites where I can read and understand what is what?

  4. Is there a GUI I can use for config and stuff post installation.

  5. Why I am not getting the available drivers listed in the additional drivers section of the settings GUI? For me that proprietary drivers page is all greyed (disabled). There are no device driver options listed. Is there a way to get my Nvidia drivers to show up here?

As suggested by Tuxest, the below commands give the provided output:

Results of sudo lshw -c video :

     description: VGA compatible controller  
     product: 3rd Gen Core processor Graphics Controller  
     vendor: Intel Corporation  
     physical id: 2  
     bus info: pci@0000:00:02.0  
     version: 09  
     width: 64 bits  
     clock: 33MHz  
     capabilities: msi pm vga_controller bus_master cap_list rom  
     configuration: driver=i915 latency=0  
     resources: irq:46 memory:f7400000-f77fffff memory:d0000000-dfffffff   ioport:f000(size=64) 

Rsults of lspci -nnk | grep -iA3 vga :

00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09)  
    Subsystem: ASUSTeK Computer Inc. Device [1043:1447]  
    Kernel driver in use: i915  
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 GF108M [GeForce GT 635M]   [10de:0de3] (rev ff)  
03:00.0 Network controller [0280]: Atheros Communications Inc. AR9485 Wireless Network   Adapter [168c:0032] (rev 01)  
    Subsystem: AzureWave Device [1a3b:2c97]  
    Kernel driver in use: ath9k  

Does is all look OK? Why is Nvidia not displayed in the first command output?

Update: I installed the 319 drivers along with bumblebee and the system is running just fine, but have a follow-up question here. I need to update the system kernel, and I am afraid to proceed.

Best Answer

I have no experience with these drivers and I don't own such hardware but I will try to give some preliminary information and hopefully it helps a bit.

  1. There is no special way that would provide higher reliability for something that was installed from .run file. If you want stability then always prefer installing software from Ubuntu repositories – not getting bleeding edge also means less bleeding. I have one tip though. With some run files there is an option to create deb-file from the installer. If you install that deb-file it is much easier to remove/replace it later. I have done it previously with ATI drivers but based on this answer it seems to be much more difficult with Nvidia drivers. There is a good guide about installing run files here.

  2. Depends on so many things that it is best to try what works best on your system.

  3. Proprietary drivers are called after nvidia and open source drivers are called nouveau. The rest that you have named are special extras for special hardware. Namely for Nvidia Optimus technology that you have in your laptop. Basically it means you have two graphics adapters – one lighter that is used on regular tasks and other much more powerful that is used when needed. For handling all that complexity extra software is needed and this is exactly what Bumbelbee is for. In theory one could use Bumbelbee both either with proprietary driver or nouveau driver. For Bumbelbee setup on Ubuntu see this. As I read from here you could check /etc/bumblebee/bumblebee.conf file to see which driver Bumblebee is using. Primus and optirun/VirtualGL are pieces of software that help in 3D rendering (process of generating an graphical images) and Bumbelbee uses them to get its job done. Apparently as they claim Primus is newer and better alternative to VirtualGL. To read more about Primus and how to install it see this.

  4. With proprietary driver you get GUI rather similar to Nvidia settings in Windows. With open source drivers you can use GUI settings managers that come with Ubuntu. In my experience both options work fine.

  5. As I understand it from your comments then there is either a bug in your system or in Ubuntu in general or you either have too new hardware (its a sweet machine). The point is that if there are proprietary drivers allowed in your system but Ubuntu doesn't offer driver under Additional drivers then either hardware doesn't get detected or the driver in the repository doesn't support your hardware or something is broken. So it might also be a bug that you should report. In any case, looking at the current situation my advice would be to try set up nouveau with Bumbelbee and preferably start with fresh install as after “trying several things” tends to mess up things. All you need should be in the ppa:bumblebee/stable and Ubuntu repositories. Make sure you follow the Bumblebee guide in Ubuntu wiki. It is always good to try some already tried options again in a clean system when you know better what you are doing and what is what.

Other tips:

  • Use synaptic as advised by meteorainer as it is especially good tool for such troubleshooting situations. It is as surgical as you can get in package management without being command line guru.
  • When you try one driver see before that other driver is removed (in synaptic select to remove completely particular package or on command line use apt-get --purge remove package-name-goes-here). Having open source driver and proprietary driver installed at the same time is very likely to cause problems.
  • Keep track of what driver is being loaded. Especially when things are broken. The most important part of solving complex problems is having the data and in this case it means making good notes. There are various options for doing this. For an example you could use:

~$ sudo lshw -c video


~$ lspci -nnk | grep -iA3 vga

If you still get stuck don't hesitate to expand your original question with new information.

Also if you find this answer useful click upper arrow in the upper left corner.

PS! If there is any incorrect information here let me know and I will edit my text.