As I have said before and will say a hundred times again, before you start to do anything,
prepare yourself. Get everything together that you will need before you start. Gather the manuals
and diagrams, get your notebook out, and have the settings of all the other cards in front of you.
Also, before you start, read the manual(s) that came with your release, the installation
HOWTO, and the hardware HOWTO.
Perhaps the most important thing to do before you add anything is to know how the hardware is
really configured. I need to emphasize the word "really." Many customers
have become arrogant with me, almost to the point of being angry because they insist that the
hardware is set at the "defaults" and I insist that they check anyway.
Unfortunately for me, in most cases, the devices are set at the default. However, confirming this
takes less time then trying to install something for a couple of hours and only then finding out
the devices are not at the default. Therefore, I would insist that the customer check before we
continued. I had one customer who made noises as though he was checking and "confirmed" that the
device was at the default. After almost an hour of trying to get it to work, I asked him to change
the settings to something other then the defaults, thinking maybe there was a conflict with some
other device. Well, as you might have guessed, he didn't need to do anything to change the devices
to non-default because they already were non-default! Lesson learned: Don't lie to tech
support ( or to people on the Internet).
One most important thing about installing hardware is knowing what you are doing. This may seem
like an overly obvious thing to say, but there is a lot more to installing hardware than people
One most common problem I see is that cards are simply snapped into the bus
slot with the expectation that whatever settings are made at the factory must be correct. This is
true in many, if not most, cases. Unless you have multiple boards of the same type (not necessarily
the same manufacturer), you can usually get away with leaving the board at the default. But what
is the default?
Unless you are buying your hardware secondhand, some kind of documentation or manual ought to
have come with it. For some hardware, like hard disks, this documentation may only be a single
sheet. Others, like my host adapter, come with booklets of 50 pages or more.
These manuals not only give you the default settings but tell you how to check and change the
cards, settings are changed by either switches or jumpers. Switches, also called DIP switches, come
in several varieties. Piano switches look just like piano keys and can be pressed down or popped
up. Slide switches can be moved back and forth to adjust the settings. In most cases, the switches
are labeled in one of three ways: on-off, 0-1, and closed-open. Do not assume that on, open, or 1
means that a particular functionality is active. Sometimes "on" means to turn on the
disabling function. For example, to disable the floppy controller on my
SCSI host adapter, I put the jumpers in the "on" position.
Always check the documentation to be sure.
Jumpers are clips that slide over pairs of metal posts to make an electrical connection. In most
cases, the posts are fairly thin (about the size of a sewing needle) and usually come in rows of
pin pairs. Because you need both posts to make a connection, it is okay to store unused jumpers by
connecting them to just one of the posts. You change the setting by moving the jumper from one pair
of pins to another.
The most common thing that they jumpers configure are base address,
IRQ, and DMA.
However, they sometimes are used to enable or disable certain functionality. For example, jumpers
are often used to determine whether an IDE hard disk is the master or the
The other three bus types, MCA,
EISA, and PCI
bus cards, often do not have DIP switches or jumpers and are software controlled. They normally come
with some kind of configuration information provided on a disk or in CMOS.
Provided with the machine itself is a configuration program that reads the information from the
diskettes and helps to ensure that there are no conflicts. Although hardware settings are configured
through these programs, it is still possible in some cases to create conflicts yourself, though the
configuration utility will (should) warn you.
If this configuration information is on a disk, then this disk is as important as the Linux
installation media. If this disk gets trashed, there is no way you will even be able to add another
piece of hardware, your kids will hate you, and your co-workers will think you are a geek. On the
other hard, you could get a copy from the manufacturer, but that's a hassle. The real problem is that
some machines, like the IBM PS/2 series, recognize when you add a new card to the system and won't
let you boot until you feed it the configuration disk.
In some cases, the configuration program is part of the hardware (firmware) or resides in a
normally inaccessible part of the hard disk. Check the machine documentation for details.
Knowing what kind of card you have is important not only to configure the card, but unless you
know what kind of bus type you have, you may not be able to even put the card
in the machine. This is because all the different cards are different sizes or shapes. As you would
guess, the slots on the motherboard they go into also are different sizes and shapes.
Hopefully, you knew what kind of card to buy before you bought it. Often, however, the administrator
will know what kind of slots are on the machine from reading the documentation but never opens the
case up so has no idea what the slots look like. If this is a pure ISA or
MCA machine, then this is not a problem because none of the cards for any other
bus will fit into these slots.
Problems arise when you have mixed bus
types. For example, it is very common today to have PCI
or VLB included with ISA
or EISA. I have also seen MCA
machines with PCI slots, as well as both PCI and VLB in addition to the primary bus
(usually ISA or EISA). If you've gotten confused reading this, imagine what will happen when you
try to install one of these cards.
If you are using your Linux machine as a server, the computer you bought probably has at least
six slots in it. There can be more slots if you have a tower case or PCI in
addition to the primary bus. Due to the distinct size and shape of the cards,
it is difficult to get them into slots in which they don't belong. Usually there is some mechanism
(i.e., notches in the card) that prevents you from sticking them in the wrong slots.
On some motherboards, you will find a PCI
slot right next to an ISA or EISA
slot. By "right next to," I mean that the separation between the PCI slot and the other is much
smaller than that between slots of the same type. This is to prevent you from using both slots.
Note that the PCI electronics are on the opposite side of the board from ISA and EISA. Therefore,
its impossible to fill one slot and then use the other.
When installing the expansion cards, you need to make sure that the computer is disconnected from
all power supplies. The safest thing is to shut down the system and pull the plug from the wall
socket so that you ensure that no power is getting to the bus, even if it is
turned off. Though the likelihood of you injuring yourself seriously is low, you have a good chance
of frying some component of your motherboard or expansion card.
Another suggestion is to ground yourself before touching any of the electronic components. You
can do this by either touching a grounded metal object (other than the computer itself) or wearing
a grounding strap, which usually comes with a small instruction sheet that suggests where the best
place to connect is.
When I first started in tech support, we had a machine that would reboot itself if someone who
wasn't grounded so much as touched it. I have also cleared my CMOS a couple of
times. Therefore, I can speak from experience when I say how important grounding yourself is.
When you open the case, you will see parallel rows of bus
card slots. Near the outside/back end of the slot, there is a backing plate that is probably
attached to the computer frame by a single screw. Because some connector, etc., sticks out of the
slot in most cases, this plate will probably have to be removed. In addition, the card will have an
attachment similar to the backing plate that is used to hold the card in place. I have seen cards
that do not have any external connector, so you could insert them without first removing the backing
plate. However, they are not secure because nothing holds them in place. See the hardware chapter
for more details.
This plate has a lip at the top with the hole for the screw. To align the screw hole properly,
insert the card correctly (provided it is in the right kind of slot). As you insert the card into
the slot, make sure that is going in perpendicular to motherboard. That is, make sure that both ends
are going into the slot evenly and that the card is not tilted. Be careful not to push too hard, but
also keep in mind that the card must "snap" into place. Once the card is seated properly in the
slot, you can make the necessary cable connection to the card.
After you connect the cables, your can reboot the machine. Many people recommend first closing
the computers case before turning on the power switch. Experience has taught me to first reboot the
machine and test the card before putting the case back on. If, on the other hand, you know
you have done everything correctly (just as you "know" the hardware is at the default, right?), go
ahead and close things up.
Avoiding address, IRQ, and DMA
conflicts is often difficult. If your system consists solely of non-ISA cards, it is easy to use the
configuration utilities to do the work for you. However, the moment you add an
ISA card, you must look at the card specifically to see how it is configured
and to avoid conflicts.
If you have ISA and PCI
cards, you can use the PCI setup program (which is usually built into the firmware) to tell you
which interrupts the ISA bus cards are using. You can also reserve specific
IRQs for ISA devices. If you don't, there may be interrupt conflicts between
the ISA bus card and a PCI bus card, or even between two ISA cards.
Unlike DOS, every expansion card
that you add to a Linux system requires a driver. Many, such as those for IDE
hard disks, are already configured in your system. Even if the driver for a new piece of hardware
exists on your system, it may not be linked into your kernel. Therefore, the
piece of hardware it controls is inaccessible.