For the oldest (or the cheapest) ISA cards, the card settings (I/O, IRQ, output media, etc.) were set by little black jumper blocks over rows of pins. As cards got more fancy, these settings were switched electronically, and the end user could store the preferred settings in non volatile memory built into the card. A vendor supplied program was used by the end user to alter these settings, removing the need to open the computer up just to reconfigure a card.
In most cases, if the configuration is done by software, and stored in an EEPROM, you will usually have to boot DOS, and use the vendor supplied DOS program to set the cards IRQ, I/O, mem_addr and whatnot. Besides, hopefully it is something you will only be setting once. If you don't have the DOS software for your card, try looking on the WWW site of your card manufacturer. If you don't know the site name, take a guess at it, i.e. `www.my_vendor.com' where `my_vendor' is the name of your card manufacturer. This works for SMC, 3Com, and many many other manufacturers.
There are some cards for which Linux versions of the config utils
exist, and they are listed here. Donald has written a few small
card diagnostic programs that run under Linux. Most of these are
a result of debugging tools that he has created while writing the
various drivers. Don't expect fancy menu-driven interfaces. You
will have to read the source code to use most of these. Even if
your particular card doesn't have a corresponding diagnostic, you
can still get some information just by typing cat
/proc/net/dev -- assuming that your card was at least
detected at boot.
In either case, you will have to run most of these programs as
root (to allow I/O to the ports) and you probably want to shut
down the ethercard before doing so by typing ifconfig eth0
down first.
For people with wd80x3 cards, there is the program
wdsetup which can be found in
wdsetup-0.6a.tar.gz on Linux ftp sites. It is not
being actively maintained, and has not been updated for quite a
while. If it works fine for you then great, if not, use the DOS
version that you should have got with your card. If you don't
have the DOS version, you will be glad to know that the SMC
setup/driver disks are available at SMC's ftp site. Of course,
you have to have an EEPROM card to use this utility.
Old, old wd8003 cards, and some wd8013 clones use
jumpers to set up the card instead.
The Digital EtherWorks 3 card can be configured in a similar
fashion to the DOS program NICSETUP.EXE. David C.
Davies wrote this and other tools for the EtherWorks 3 in
conjunction with the driver. Look on you local linux FTP site in
the directory /pub/linux/system/Network/management
for the file that is named ewrk3tools-X.XX.tar.gz.
Some Nat Semi DP83905 implementations (such as the AT/LANTIC and
the NE2000+) are software configurable. (Note that these cards
can also emulate a wd8013 card!) You can get the setup file
atlantic.c from Donald's ftp server,
www.scyld.com to configure this card. In addition,
the configuration programs for the Kingston DP83905 cards seem to
work with all cards, as they don't check for a vendor specific
address before allowing you to use them. Start at the following
URL: Kingston and search
for the programs 20XX12.EXE and
INFOSET.EXE
Be careful when configuring NE2000+ cards, as you can give them bad setting values which can cause problems. A typical example is accidentally enabling the boot ROM in the EEPROM (even if no ROM is installed) to a setting that conflicts with the VGA card. The result is a computer that just beeps at you when you turn it on and nothing appears on the screen.
You can typically recover from this by doing the following:
Remove the card from the machine, and then boot and enter the
CMOS setup. Change the `Display Adapter' to `Not Installed' and
change the default boot drive to `A:' (your floppy drive). Also
change the `Wait for F1 if any Error' to `Disabled'. This way,
the computer should boot without user intervention. Now create a
bootable DOS floppy (`format a: /s /u') and copy the program
default.exe from the 20XX12.EXE archive
above onto that floppy. Then type echo default >
a:autoexec.bat so that the program to set the card back to
sane defaults will be run automatically when you boot from this
floppy. Shut the machine off, re-install the ne2000+ card, insert
your new boot floppy, and power it back up. It will still
probably beep at you, but eventually you should see the floppy
light come on as it boots from the floppy. Wait a minute or two
for the floppy to stop, indicating that it has finished running
the default.exe program, and then power down your
computer. When you then turn it on again, you should hopefully
have a working display again, allowing you to change your CMOS
settings back, and to change the card's EEPROM settings back to
the values you want.
Note that if you don't have DOS handy, you can do the whole
method above with a linux boot disk that automatically runs
Donald's atlantic program (with the right command
line switches) instead of a DOS boot disk that automatically runs
the default.exe program.
The 3Com Etherlink III family of cards (i.e. 3c5x9) can be
configured by using another config utility from Donald. You can
get the file 3c5x9setup.c from Donald's ftp server,
www.scyld.com to configure these cards. (Note that
the DOS 3c5x9B config utility may have more options pertaining to
the new ``B'' series of the Etherlink III family.)
Any of the diagnostic programs that Donald has written can be obtained from his website.
Allied Telesis AT1700 -- at1700.c
Cabletron E21XX -- e21.c
HP PCLAN+ -- hp+.c
Intel EtherExpress -- eexpress.c
PCI NE2000 cards -- ne2k-pci-diag.c
ISA NE2000 cards -- ne2k.c
RealTek (ATP) Pocket adaptor atp-diag.c
All Other Cards -- try typing cat /proc/net/dev and
dmesg to see what useful info the kernel has on the
card in question.