<> <> <> = 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 }}} (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 }}} 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 ----