Tom's Guide | Tom's Hardware | Tom's Games
![]() |
![]() |
![]() |
Hi guys,
Recently I installed Debian on an old Pentium III with an Intel 440BX based motherboard. It has an ISA WD8013 network card.
Drivers for the network device install fine, and I can ping the card locally (ie pinging the machine's ethernet address from the machine itself). Problem is, trying to ping any other machine on the network (or my router/gateway) returns the error "Destination Host Unreachable", along with an additional "NETDEV WATCHDOG: eth0: transmit timed out" error.
route -n output:
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0192.168.0.1 is the correct gateway, netmask is correct
ifconfig output:
eth0 Linkencap:Ethernet HWaddr 00:00:c0:F2:8D:43
inetaddr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:31 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes: 3780
Interrupt:11 Base address:0x310 Memory:c8000-cc000any help would be greatly appreciated!

It certainly looks as though it should work (although I don't see an entry for loopback in your routing table). Do you have a firewall enabled? Does the debian box reply to pings from another machine? I'm guessing that you are trying to ping IPs rather than domain names....what about a broadcast ping (ping -b 192.168.0.255)? What else in on the network?
Is there a link light on the hub/switch/nic?

Thanks for the reply.
Indeed lo was not present in the routing table. I added it by "route add -net 127.0.0.0 netmask 255.0.0.0 dev lo" (route add -net 127.0.0.0 gave "SIOCADDRT: Invalid argument"), and now it has an entry:
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
I could ping 127.0.0.1 fine before and after this change.
I don't have any firewalls enabled, not on the router or on any of the machines. The debian machine does not reply to ping ("Request timed out" from a Windows XP machine), and yes I've been trying to ping IPs.
The broadcast ping returns packets from the local ethernet card, along with more "NETDEV WATCHDOG: eth0: transmit timed out" errors. No other machine replies.
The network consists of an ADSL router which is connected to four machines mostly running Windows, which can all ping each other and the router fine.

How is the module being loaded? As it is ISA you may have to pass some extra parameters, eg:
wd=io_port,IRQ,mem, mem_end OR wd io=io_port irq=IRQ mem=mem mem_end=end

The module was being loaded without parameters, "autoprobing" from the card (which is apparently not recommended).
The card has a jumper on it allowing me to set the "I/O, IRQ, RAM". It was set to "SOFT". I tried the other two (fixed IO, IRQ, RAM) settings and one of them (IO=0x280, IRQ=3, RAM=D0000) makes the "NETDEV WATCHDOG: eth0: transmit timed out" error disappear (along with about 20 other errors I found in dmesg, all of the form "eth0: Tx timed out, lost interrupt? TSR=0x3, ISR=0x3, t=abcd"). So I left it on that setting.
Then I loaded the module again with parameters:
insmod wd.ko io=0x280 irq=3 mem=0xD0000 mem_end=0xD4000
which gives the result:
wd: WD80x3 at 0x280, WD8013, IRQ 3, shared memory at 0xd0000-0xd3fff
eth0: WD8013 found at 0x290, IRQ 3, 00:00:C0:F2:8D:43.I've also noticed that eth0 always has the IO address of the card 0x10 higher than wd does. This was also true on the other two jumper settings. I cannot load the card on that address (io=0x290) due to a "no such device or address" error.
Could this discrepancy be part of the problem?
Now when I try to ping (my gateway, 10.1.1.1 for example) I still get:
From 10.1.1.101 icmp_seq=1 Destination Host Unreachable
but no more "NETDEV WATCHDOG..." at least!
Thank you very much for the help, there is some progress!

Try using modprobe instead of insmod in case that makes a difference. Is this a kernel you compiled yourself? Perhaps recompiling or compiling it directly into the kernel will help? You may also want to check that you don't have any other conflicting IRQs with "cat /proc/interrupts".
After loading the module with no error, do you get an output from:
$ /sbin/ifconfig eth0
?
If so it may then simply be a matter of assigning an IP and bringing the interface up...

I inserted the modules (8390 and wd) with modprobe with the correct parameters and no errors (eth0 still gives the IO address of the card as 0x290, while the module gives 0x280.. is this ok? I couldn't force eth0 to accept a new IO address using the io_addr parameter of ifconfig due to an "operation not supported" error).
After loading the module with modprobe,
"/sbin/ifconfig eth0" gave me the following output which looks normal:eth0 Link encap:Ethernet HWaddr 00:00:C0:F2:8D:43
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0
Interrupt:3 Base address:0x290 Memory:d0000-d4000I then brought up the interface with "ifup eth0", the usual routing table was loaded, but the problem was still the same.
The kernel is 2.6.7, and came precompiled. I'll try to get the latest kernel source and compile it in directly.
To add a couple more things:
I installed Windows 98 on the machine on another partition. The card also does not work in it. Windows finds it fine etc, but it cannot ping. It is unlikely that the card itself is broken, though, because I just took it out of a machine in which it was working reliably. Compatibility issue with the motherboard?When I ping from the machine, the TX and RX lights on the card light up, and all the activity lights on the router (for each of the other machines) light up. Apparently the ping gets out and is even being returned. However, the RX light comes on regardless of whether I ping an IP that actually exists or not.
Given that it also doesn't work in Windows, maybe I should just buy a different card..

The RX light coming on may be because you are plugged into a hub and not a switch.
Comparing the output of ifconfig to that in your first post it doesn't have an IP assigned to it:
netaddr:192.168.0.101
Before bringing up the nic try the following:
# ifconfig eth0 192.168.0.101 broadcast 192.168.0.255 netmask 255.255.255.0
# ifconfig eth0 up
# route add -net default gw 192.168.0.1 netmask 0.0.0.0 metric 1
(that is assuming that 192.168.0.101 is the correct IP you wish to assign to your nic and that 192.168.0.1 is the IP of your router.
With any luck you should be able to ping the router via IP.Saying all that, considering how cheap NICs are these days buying a new one may be the easiest (and probably faster) way to go....

I only brought the interface up after that ifconfig output, at which point an IP was assigned, but the problem remained.. I suspect there is a very strange and undocumented compatibility issue between the network card and motherboard as opposed to a software problem since the routing table and interfaces have been set up correctly, and it has the same problem in Windows.
I didn't realise that a new NIC could be had as cheaply as $8 (Australian)! I think I'll pursue that option next..
Thank you very much for your time, I'll post how the new NIC goes.

![]() |
![]() |
![]() |

This post is quite old and has been locked from receiving new replies. Please create a new posting instead.
| Ads by Google |