[ This was our most popular question for answers from the crowd to help out the Answer Guy. So, for those of you who missed it, the original question was... -- Heather ]
From Chuck Whinney on Sun, 05 Dec 1999
I cant seem to get my Linksys Ether16 LAN card to work under linux. I turned off the PnP liek teh linksys website said, and I turned the motherboard setting from PnP on that IRW to the ISA setting. Linux still never recognizes it.
Any ideas? Thanks! Chuck
rabuno answered on Sun, 02 Jan 2000
A loyal reader offers this answer to supplement one from last month.
Chuck Whinney (no email) asks you:
[ Nobody's email is listed in Answer Guy messages, because I strip them out unless it's actually important to the question or commentary. I believe privacy is important, and I won't have spambots harvesting addresses via this column. I've snipped the repeat, as I just did that above. -- Heather ]
The Linksys Ether16 is a nice cheap card. Out of p-n-p mode it acts like a NE2000, at least close enough so the Linux ne driver has no trouble running it. The card comes with a DOS floppy with the configuration program, but Chuck shouldn't need to use that unless the card has been previously used (in a Winxx machine) or unless he wants to set goofy IO address or IRQ settings. The last couple I've purchased new ($30 at my local office supply store) came defaulted to NE2000 mode, IRQ=5, IO address=300.
The only possible causes of trouble in Chuck's case, imho, would be:
If Chuck continues to have troubles with the card feel free to send him my email & I can try to help him out.
I loyally read your column in LG. Thanks; you are providing a great service. Happy New Year.
Thanks, rabuno. I occasionally get other clarifications and corrections, and sometimes I'm not that good about getting them forwarded into the column. I'd like to thank everyone who helped me out on this column last year, and I'd love to be able to answer all the questions that come to me. I think I missed about 400 from last year. They're still in my "lgaz/2do" folder in case I get laid up with nothing else to do for a couple of months during this new millenium.
Claude Baker answered on Sat, 08 Jan 2000
Here's another reader-contributed answer to using those pesky NE2000 clone Linksys Ether16 ethernet cards:
The writer questions how to detect a LinkSys Ether16 and you suggest another card.
I have that card in a router/firwall box which is based upon a P133 with a PCI motherboard. I'm ashamed to admit it, but I spent 2-3 months figuring out how to configure the card. As you might guess, I was looking in the wrong places because I thought that I was misconfiguring the routing and masquerading.
The Linksys card is an ne2000 clone and it is setup using a DOS utility found on the driver diskette. The driver software may be downloaded from the LinkSys site and it is an executable that copies itself to a floppy. Once the download is on a floppy, a:\utility\setup queries the card to display IRQ and I/O addresses. The utility also allows you to set the desired IRQ, I/O address, and select between RJ-45 or BNC I/O on the card. All setup choices are saved in non-volatile memory.
Setup on my machine also required a change in the Award BIOS - I had to specify the IRQ I used to be a "Legacy ISA" rather than "PCI/ISA PnP" for Linux.
I spent some time setting up a Linux Router Project distribution for that machine and have a recollection that in addition to pulling in the non-PCI ne2000 module, I also needed an 8309 module. My impression is that the ne2000 is part of the 8309 family.
marcus.post answered on Tue, 11 Jan 2000
I wanted to comment on this because some easy items where missed in answering this customer. THe chipset is fully supported, being an NE2000 clone that works just fine. If he is having difficulty installing it, here's where he should check:
I got about three or four items to expound on this message. Presumably that means that I didn't do a very good job answering the question.
These days I try to forward/respond to corrections and commentary on the threads in previous months.
#1 Conflicts. This is not likely a problem, since the Ether software that sets the IRQ and I/O of the card checks for conflicts before setting the resources. If you have not installed new hardware, or turned on any extra on board peripherals (Serial, Parallel, or USB ports), this shouldn't be an issue.
I'm not familiar with this particular NE2000 clone. Older ethercards commonly were set by pins and jumpers. I'd also not trust the IRQ detection on an ISA bus. Classically this has not been reliable. As you suggest an installed card which was inactive might not respond to IRQ probing but could cause problems later when it was active.
#2 How the driver is loaded. As a shot in the dark, you are likely using redhat, in which case the best choice is to use Linux Config to set up the module to load at boot. Most distros will work the same way, but some you have to manually edit rc.* files. THere is a linux-conf topic for network interfaces, but I forget what it is called ATM. If you have to edit the rc.* files, look for a rc.modules file; most distrobutions have one with the network card modules already specified, but commented out. Find the one with your module ( ne2k.o I believe) and uncomment it. In either case, don't worry about specifying the IRQ; you only need to note the I/O address for this card. VERY IMPORTANT when specifying the I/O port, use "0x320" instead of "320". You have to specify the number is hex, which is '0x'. So, if the software that disabled your plug n play on the card said it was using port "330", tell linux that the port is "0x330" Don't expect the module to autodetect the card: on this card, it almost never works (I own three of them personally), while autodetect works on other cards, such as my SMC. I don't know why, but don't count on the module to detect the card.
I presume you're referring to the 'linuxconf' program. I'd suggest using 'insmod' to load the appropriate loadable module manually.
You make a good point about using the 0x prefix to indicate that you are providing a hexadecimal address. Presumably you could convert 0x300 to its decimal equivalent though I've never tried it.
One thing I do like about PCI --- it supports much easier and robust autodection than the old ISA cards.
You also have chosen reasonal I/O port addresses, 0x300, through 0x330 are the most common ethernet I/O base port mappings. I've also seen 0x240, and 0x280.
#3. I dont know about ISA IRQ changes you made in the BIOS. From personal experience, they just aren't needed. You sound comfortable enough with them, so you may want to change them back to normal once you are positve the Linux configurations are correct and complete.
#4 Standard troubleshooting: If you dont get an error when booting, check 'ifconfig'. You may just need to assign the card an address, subnet, et al. Or, run dhcpcd if you have a DHCP server/cable modem/DSL router/whatever. Try a different ISA slot. If all looks good locally, but you cant reach outside of your own box, check your cables, subnet mask. First answer if the problem is hardware or software. Tackle it logically.
I thought he specified that he was getting SIOCSIFADDR: errors (meaning that the driver isn't seeing the interface). If you can successfully set an address etc. with 'ifconfig' then you should check for external connections, link lights, and similar problems.
I have found that some 10/100 ethernet cards seem to be "allergic" to some hubs. So be sure to try a "known working" connection.
In particular I don't like the Linksys hubs, but I've never had problems with the Netgear products.
Running tcpdump on your interface can be a useful was to check for functionality. That should work so long as there is any traffic on the segment and the driver is loaded correctly. Thus you can isolate it to the higher level (addressing, masking, routing tables) or the lower (driver kernel, or physical link layer).
Best of luck,