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

Re: How to add second network card?



On Mon, Feb 25, 2002 at 01:46:28PM -0700, Eric Richardson wrote:
| Hi,
| 
| I'm trying to get a second identical network card to work and need some 
| assistance. The card is a AMD PCnet-ISA+ (a pnp card) that uses the 
| lance.o module. When installing I was able to get one card working by 
| adding io=0x300. The module assigns IRQ 3 and DMA 5 when loaded. I am 
| using DHCP to get an IP address for eth0. I also tried both cards 
| individually so I know both cards work. Here is what I tried so far.

Did you try each card with base IO of 0x300?

| Edit the file modules.conf and added 0x320 to the previous configuration 
| so it looks like this.
| lance.o io=0x300,0x320
| Upon reboot this hung when networking tried to start.
| 
| I also tried just unloading the module via rmmod and then manually 
| trying to get both recognized.
| insmod lance.o io=0x300,0x320
| 
| I don't know if I have to reset the setting on the card so one card
| will look for 0x320 or what but found something on the web to that
| effect.

Yes, you need to configure one card to use a different IO address than
the other.  (they can share IRQs, but that hurts performance)

| What software would I use for this or is there some other approach?

Nice cards have DIP switches on them you can toggle to set it.  (like
one of the old modems I have)  Plug-n-Pray cards likely don't.  The
netgear cards I have came with a DOS utility to disable PnP and to set
the base IO and IRQ.  At the moment I have one card in a debian box
and one in a win95 box, but soon the win95 box will be hung and the
debian box will get both cards (to serve as a router/gateway).


Here's what "Base IO" means :
    The system uses "memory mapped I/O" to communicate with devices.
    That is, each device is given certain memory addresses, and
    whenever a program (namely the device driver in the kernel) reads
    from or writes to that address, the kernel instead reads from or
    writes to the corresponding register in the device.  The way many
    devices work is you set a Base address for them.  Each register is
    then accessed by an offset from the base address.

The problem you have right now is that you are trying to use both
devices with the same base IO.  You can't map a single address to
multiple devices, thus only one device "wins" (works).

HTH,
-D

-- 

Only two things are infinite, the universe and human stupidity, and I'm
not sure about the former.
        Albert Einstein



Reply to: