Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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?

share|improve this question
    
¿Can you post the line you add to the /etc/modprobe.d/blacklist, please? –  Brigo Feb 19 '13 at 12:59
    
@Brigo He did already! –  Michael Hampton Feb 19 '13 at 15:30
    
Ubuntu 8.04 will reach end of life in April 2013. Your time will probably be better spent upgrading the server's OS. –  Michael Hampton Feb 19 '13 at 15:36
    
I'm quite aware of that, but there are an unknown set of legacy services on that box. The distro-upgrade will have to wait. –  Gustav Bertram Feb 19 '13 at 18:02

1 Answer 1

up vote 1 down vote accepted

I am going to assume you already have the 8139too and 8139cp modules on the machine, and you just want to swap the 8139too with the 8139cp 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 the mii 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 the 8139 modules. Now that we know which modules mii 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 the 8139cp and mii modules, restart your networking and use ethtool 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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.