Minihelp page

This is my minihelp page. I'll collect solutions to problems I encounter in daily computing here..


09.03.2003:3c509C full duplex problem

3c509C full duplex problem

For a long time I had a problem getting my 3com 3c509C-TX card (vortex) working in full duplex mode in Linux. In windows it worked fine, but in linux I always got half duplex unless I booted to windows first, after which it stayed full duplex until I powered off the machine. I also had an identical card in another linux machine which at all times worked just fine. Both were connected to a 100M switch, and switching ethernet cable positions didn't change anything. Then I discovered Documentation/networking/vortex.txt (in the kernel sources). It informed about options available for the 3c59x kernel module. First I obviously tried full_duplex=1 and options=0x204 (100base-TX, force full duplex) but it didn't work. I also tried options=5 (100base-FX) but that didn't work at first either. I didn't actually know what -TX and -FX was, I was just desperately trying everything around.. Then when I at some point tried options=0 it did actually switch to 10M, half duplex. And when I then tried options=5 after that, it switched to 100M, full duplex! Later I discoverd that options=8 (autonegotiate) also did the same trick. And both 5 and 8 work well when the driver is first loaded after bootup, at least for me. And there's no need to even force the full duplex. (The reason why I didn't try autonegotiate earlier was that I thought that was the default.. =) So the solution is to one of these (I suggest using autonegotiation if it works):

  • add the following line to /etc/modules.conf or /etc/conf.modules (RedHat-style distributions):
    options 3c59x options=8
  • change the 3c59x line in /etc/modules.autoload (Gentoo Linux):
    3c59x options=8
  • if you load the 3c59x module manually, do it like this:
    modprobe 3c59x options=8