I'm trying to disable the 8139too
network driver in favor of the 8139cp
driver on my Ubuntu 8.04 server. The current driver crashes when the network card exceeds about 1 MB/s.
The syslog
also recommends switching to 8139cp:
8139too: Use the "8139cp" driver for improved performance and stability.
I've added blacklist 8139too
to /etc/modprobe.d/blacklist
but that doesn't seem to have any effect.
Is there some other way to switch network drivers that I'm not aware of?
Best Answer
I am going to assume you already have the
8139too
and8139cp
modules on the machine, and you just want to swap the8139too
with the8139cp
driver. Please note you can easily lock yourself out of the server using this method, so be careful.Firstly run an
lsmod
and check what modules themii
module depends on e.g::~# lsmod | grep 8139
8139too 38400 0
8139cp 34944 0
mii 14720 2 8139too,8139cp
As you can see the
mii
module depends on both of the8139
modules. Now that we know which modulesmii
depends on we can unload the all the modules, reload the module we want and restart our networking. Here is what we are going to do:rmmod 8139cp
rmmod 8139too
rmmod mii
modprobe 8139cp
modprobe mii
service networking restart
Short explanation of the code above. First three line remove the offending modules, then with
modprobe
we add the modules we want. In this case it will be the8139cp
andmii
modules, restart your networking and useethtool
to check that it is working properly.:~# ethtool -i eth0
driver: 8139cp
version: 1.3
firmware-version:
bus-info: 0000:00:12.0
This is a small workaround and will reset once you restart the server, to make it permanent create a bash script with the code above and add it to your startup scripts.