Configuring the SMC 8216C Elite16 Ultra for Linux

I have an ancient SMC8216C ethernet card. It is still handy for network installs on old EISA bus PCs, especially since it has a BNC connector. Problem is that the card is so old that the install docs are hard to find. So here's a quick support page, mainly for my own use next time I need to install this card.

Setting the Card Parameters

The card can be hard configured using the labelled jumpers or soft configured using the ezsetup dos program . You will need a dos boot disk to run the ezsetup program.

BNC, 10BaseT, or AUI

The 8216C has all three ethernet connectors. The card will automatically detect whether the BNC or 10BaseT connectors are connected. I have never tried the AUI connector.

Kernel Driver

The SMC Elite16 Ultra uses the smc_ultra.o driver. But the smc_ultra driver uses the 8039.o driver, so you have to install that first. 8039.o takes no arguments, but you should give the smc_ultra driver the io port number (remember to use hexadecimal notation "0x") and the IRQ:

cd /lib/modules/{version}/kernel/drivers/net
insmod 8039.o
insmod smc_ultra.o io=0x280 irq=3

Configuring the interface

Of course, the ethernet interface must be configured using the ifconfig command, something like this:

ifconfig eth0 netmask up


The 8216C only does 10 Mbps, so you can't plug it into a 100 Mbps hub!