|
Unsupported Version |
|
Content Cleanup Required |
|
Style Cleanup Required |
Installing nVidia's nForce network driver HowTo
If you are having issues with the default (forcedeth) driver for your nVidia nForce networking adapter (WakeOnLan not working, connection breakes, etc.), you can try the original nVidia's driver - nvnet. This HowTo describes how to get it up-and-running in no time.
It's been tested on nForce2/nForce430-based systems, but should work on any nForce-based system (nForce, nForce2, nForce3, nForce4, you name it) and works both for Breezy Badger (5.10) and Dapper Drake (6.06)
Getting Ready
First of all, you definetely need the nVidia's driver - you can download it from: http://www.nvidia.com/object/unix.html Save it, and remember where you save it, but don't run it yet.
Most probably the installer won't have a pre-compiled module for your kernel (they're not very up-to-date with kernels on nVidia, I suppose), so you should do:
sudo apt-get install linux-headers-`uname -r`
In case you haven't yet compiled anything on your ubuntu machine, you most probably will also need to install the build-essential and the correct gcc compiler package for your system:
for Breezy:
sudo apt-get install build-essential gcc-3.4
for Dapper:
sudo apt-get install build-essential gcc
Installing
Ok, so we have all we need. Let us begin.
First of all, we should unload the forcedeth module:
sudo /etc/init.d/networking stop sudo modprobe -r forcedeth
WARNING: this will cause that you will not have the network until we install the new driver.
After that, let's cd to the directory you have saved the nVidia's driver and do:
sudo sh <the_name_of_the_driver's_file>
(on my system it was: sudo sh NFORCE-Linux-x86-1.0-0310-pkg1.run)
This will run the nVidia's installer program. Unless you would like to install the sound driver too (I didn't), choose only the network driver. After accepting the licence, the commands are pretty self-explanatory. The defaults should be OK (among other things you should notice the compilation of the module for your kernel - that's perfectly correct).
If you get a warning message from the installer talking about compiler versions: don't ignore it. Instead, exit the installer and type
export CC=/usr/bin/gcc-3.4 sudo sh <the_name_of_the_driver's_file>
This is only necessary, if your default compiler differs from the one used to compile the running kernel. By exporting the CC environment variable, the default compiler (which is refered to by $CC) is set to gcc-3.4.
After the installer completes the installation and exits, we just have one thing to do.
Disabling forcedeth for good
The forcedeth driver gets loaded by default at boot time. We don't want that - we want the network adapter to use our new nvnet driver; let's do something about it, then!
We have to create a configuration file in /etc/modprobe.d/:
(if you're using Ubuntu)
gksudo gedit /etc/modprobe.d/nvnet
(if you're using Kubuntu)
kdesu kate /etc/modprobe.d/nvnet
And paste those two lines into the editor:
alias forcedeth off alias eth0 nvnet
Save the file and exit the editor.
If you are using Breezy, you need to rebuild the initrd. Here's how:
sudo dpkg-reconfigure linux-image-`uname -r`
If, on the other hand, you are a Dapper user, you just need to edit one more text file:
(if you're using Ubuntu)
gksudo gedit /etc/modprobe.d/blacklist
(if you're using Kubuntu)
kdesu kate /etc/modprobe.d/blacklist
and add this line to it:
blacklist forcedeth
And you're done; now just reboot and have fun with your new nvnet nForce driver.
Just in case you would like to check if the network card is really using the nvnet driver, after the reboot do:
lsmod | grep forcedeth
this should return nothing, as we should not have forcedeth loaded.
lsmod | grep nvnet
this should output something like:
nvnet 72484 0
credits
All credits and thanks should go
to Raphha, who kindly helped me with this at: http://www.ubuntuforums.org/showthread.php?t=86125&page=3
- to mo_x, who gave the hint which additional packages might be needed, and
to MichałWoźniak (aka rysiek), who came up with the idea to write this HowTo
- and, last but not least, to everybody else, ho had contributed to it.
Simple Fix/Workaround
It's been tested on nVidia MCP55 chipset system, and works on Ubuntu 14.04.2 LTS (Trusty Tahr) Server.
This is a simple fix if you don't have access to the internet on the main box.
rmmod forcedeth modprobe forcedeth msi=0 msix=0
Ubuntu and Debian users can make this fix permanent with:
echo options forcedeth msi=0 msix=0 >> /etc/modprobe.d/options update-initramfs -u reboot
credits
All credits and thanks should go
to http://linuxconfig.org/nvidia-mcp55-forcedeth-module-not-working-with-linux | The commands to get things working.
to http://helpful.knobs-dials.com/index.php/Forcedeth_notes | Notes about Forcedeth
to https://en.wikipedia.org/wiki/Message_Signaled_Interrupts | Understanding MSI