[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: The Lost Sheep and Networking (3c509)



[This message has also been posted to linux.debian.user.]
In article <7DF4f-7Hr-27@gated-at.bofh.it>, Matt Zagrabelny wrote:
>
>> When installing, debian-installer cannot recognize my card, and gives
>> me a list of modules. In it is ``3c509'', but without a letter.

Relatively few 3C509 ("Primat" chip) s were made.  They had only 3Com's
proprietary "jumperless" discovery mechanism.  Then ISA Plug-and-Play
came out and it wasn't compatible.  The revised chip is "Pandora",
3C509B, with both the 3Com and MSFT/Intel schemes.
We sold millions and millions of those.  The 3c509.c
driver handles both.


>> However, it does say ``3Com Etherlink III'', so I select it.
>>=20
>> DHCP fails, despite the fact that my router has DHCP enabled, and many
>> other computers in my house are using it. Setting up static IP does
>> not work either. However, the corresponding light on my router does
>> light up, and, what's more, when I run ``dhclient eth0'', my router
>> claims that the computer connected to it, and got the IP 192.168.1.102
>> (I can tell by the MAC address that it is my computer). However, the
>> computer itself is simply saying that it got no DHCPOFFERS.

3C509[B] is an ISA card, and its interrupt assignment is stored
in a tiny EEPROM.  They can be changed to fix a conflict, or if
there is more than one 3C509B in your machine.   If your router got
your MAC address but its offer never came through, you can send
but not receive.  That is a symptom of the interrupt on the
wrong line.  Perhaps it was changed early in your 3C509B's life.
If your motherboard has an ISA Plug and Play BIOS, it is supposed to
work around that and find the right IRQ line.  But many BIOSes are
broken.  That is why Linux has its own ISA Plug and Play.
Did you try it?


>>=20
>> I am at a total loss here. It is clear that the card is working,
>> because, at the very least, the MAC Address is being transferred.
>> However, I cannot connect anywhere, including to 192.168.1.1.
>>=20
>> Any ideas?

There is a "3c5x9setup" program in the nictools-nopci package.
Perhaps you can put the IRQ (and I/O port base) back to
the factory condition.  I think it was IRQ 10 and base address 0x300
but don't bet on it.  Otherwise, figure out what they are and
tell the driver about it in modules.conf.

Historically, 3c509 was compiled into the kernel, not loaded as
a module.  That was because you wanted to run the register
location discovery before the machine was really running. 
That is, at kernel load time, not at modprobe time.
But the card is obscure enough now, and few ISA devices exist
outside the southbridge chip any more, so the hazard is less.

The description in modules.conf(5) is ambiguous and
there is no example of a *complete* options line, so I cannot tell
you a valid syntax for the line in that file that you need.

If you have a kernel with 3c509 compliled in, the kernel
command line argument would be eth=0x300,10


> try knoppix, see if there are any parameters being passed to the module
> that corresponds to the interface.
>
> if you believe in voodoo, move the nic to a different pci slot.

That would be some powerful voodoo.  I don't think
your motherboard would survive.

Another reasonable option would be to retire the 3c509 due
to its support issues (incomplete modules.conf manpage) in Linux,
and get a PCI NIC.
Almost any PCI NIC will outperform any ISA NIC.


Cameron




Reply to: