More Linux Hardware Fun

I love Linux but hate when things don’t just ‘work out of the box’ (definitely not a Linux-only problem though). Well, recently I bought a PC off ebay to use for a media center I’m setting up and ran into some woes with the Ethernet card. I always expect wireless problems but it has been years since I had an issue with a wired network card. Alas, after quite a bit of Googling I found my answer ( here ) and figured I’d share it incase anyone else was wondering.

First my card, courteous of lspci -vvv

02:09.0 Ethernet controller: Davicom Semiconductor, Inc. 21x4x DEC-Tulip compatible 10/100 Ethernet (rev 31)
    Subsystem: Unknown device 4554:434e
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- 
    Kernel driver in use: dmfe
    Kernel modules: dmfe, tulip

As you can see the drivers came w/ Linux and the system had no problem detecting the card. The problem arose when the interface was brought up, dhclient was run, and an IP address was requested. Consistently in /var/log/messages (also output w/ the dmesg command), I saw:

Jun  6 16:13:22 localhost dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 6
Jun  6 16:13:28 localhost dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 10
Jun  6 16:13:38 localhost dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 18
Jun  6 16:13:56 localhost dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 17
Jun  6 16:14:13 localhost dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 10
Jun  6 16:14:23 localhost dhclient: No DHCPOFFERS received.
Jun  6 16:21:39 localhost kernel: device eth0 entered promiscuous mode

The weird thing was, when I went to my router’s web interface from another computer, and looked at the DHCP client table, I could see an entry for my PC’s MAC w/ an assigned IP. After fruitlessly trying fiddle w/ the router and desktop, I searched around and found it to be a driver issue. Everything worked fine and dandy after I restarted and ran the following commands (as root):

/sbin/ifdown eth0
/sbin/modprobe -r tulip dmfe
/sbin/modprobe -i dmfe
/sbin/ifup eth0

Supposidly there is an issue w/ the tulip driver (why its enabled by default confounds me) which dmfe works just fine. After doing this I finally was connected to my network. One minor fluke happend of the first shot though, I was able to access machines (both locally and on the internet) via ip address but all DNS lookups failed. The problem dissapeared after I restarted my machine and ran the aforementioned commands, and hasn’t returned, so I dismissed it as a minor fluke. Hope this helped!