TCLUG Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TCLUG:2546] Configuring for 2 Network Adapters



 

For some reason at 20:25 last night this message was refused by the list
server, so I'm sending it again.

Chris/Richard:

These are 3c*905*. That's different in some way from 3c*509* but god
help me how. ARe the 509's you dealt with ISA or PCI? My 905's are
PCI and I'm lost when it comes to knowing how PCI handles assigning
IRQ's--although ast this point I assume that because they're PCI, my
BIOS likes to assign IRQs to them--alas, the *same* IRQ. And even
*that* may be ok, for looking in /usr/src/linux/drivers/3c59x.c I see
references--not easily resolved by me--to shared IRQs.

I called PC vendor who suggested swapping cards in PCI slots to get
different IRQ assignments. After swapping new NIC for video card,
the new NIC was no longer configured at boot, not sure why 
(video worked fine!).  Would like to know more about PCI and interrupt
assignments--anyone got a reference?

The vendor also had me change BIOS setup to disable primary and
secondary IDE in order to free up 2 more IRQs, FWIW. After that
and reswapping the new NIC and video cards back to original positions,
things improved:

At first, I tried to control the assignment of eth0 and eth1 
to a particular card by setting the MACADDR variable in 
/etc/sysconfig/network-scripts/ifcfg-eth0
and eth1 but in the end had to yield to the driver. It assigned eth0
to the card with the lowest MAC address, period, loading it at irq 15,
io 0xfc80; assigning eth1 to the old NIC, irq 11 (!), io 0xff00.  What a
smart driver!!!
It would do this despite anything I wrote in the two network-scripts files,
but ifconfig *would* read them and so the work done by ifconfig would not
match the output of dmesg, something like this:

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
MACADDR=00:60:97:23:69:A0
ONBOOT=yes
BOOTPROTO=none

/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
MACADDR=00:10:4B:10:72:07
ONBOOT=yes
BOOTPROTO=none

-	dmesg says:

3c59x.c:v0.99 4/7/98 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html
loading device 'eth0'...
eth0: 3Com 3c905B Cyclone 100baseTx at 0xfc80, 00:10:4b:10:72:07, IRQ 15
loading device 'eth1'...
eth1: 3Com 3c905 Boomerang 100baseTx at 0xff00, 00:60:97:23:69:a0, IRQ 11

-	ifconfig says:
eth0      Link encap:Ethernet  HWaddr 00:60:97:23:69:A0
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0
          TX packets:7 errors:0 dropped:0 overruns:0
          Interrupt:15 Base address:0xfc80 

eth1      Link encap:Ethernet  HWaddr 00:10:4B:10:72:07
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11 errors:0 dropped:0 overruns:0
          TX packets:0 errors:0 dropped:0 overruns:0
          Interrupt:11 Base address:0xff00 

Notice that while ifconfig matches the .../ifcfg-eth* files, dmesg
tells a different story, with devices slavishly loaded according to
ascending MAC address.  The upshot for me was an inability to talk to
the rest of network, and for some perfectly explicable reason, one
interface showed no TX packets while the other showed no RX packets.
Would be fun to know just what was happening.  (I could however ping the
two NICs from the host that holds them.)

I seem to  ave fixed it all by changing .../ifcfg-eth* as follows:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
MACADDR=00:10:4B:10:72:07
ONBOOT=yes
BOOTPROTO=none

/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
MACADDR=00:60:97:23:69:A0
ONBOOT=yes
BOOTPROTO=none

Now when I boot ifconfig's interface matches the boot message's
interface and I can ping then local network.  We'll see how it goes when
DSL gets turned up on Monday (unless visi.com honors Perl Harbor Day
;-).

I stand amazed at this.

gp

Christopher Palmer wrote:
>
> On Fri, 4 Dec 1998, Gordon Pedersen wrote:
>
> > When the system configured them automatically at boot, it did this:
> > 1. Old NIC
> > irq=11, io=0xff00 assigned to eth1
> > 2. New NIC
> > irq=11, io=0xfc80 assigned to eth0
>
> It's good that they have different I/O addresses, but they can't
have the
> same IRQs. With these cards, what you have to do is boot into DOS
> (presumably from a floppy) and run the little config tool that came
on the
> driver diskettes with the cards. I've dealt with the 3c509s before,
and
> this was my experience. Just resetting the IRQ on one of the cards
will
> solve a lot of your problems.
>
> _____________________________________________________________________________
> Christopher Reid Palmer : reid@pconline.com : innerFire on IRC (EFNet)
>
> "Luminous beings are we. Not this...crude matter." -- Yoda
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tclug-list-unsubscribe@listserv.real-time.com
> For additional commands, e-mail: tclug-list-help@listserv.real-time.com
> Try our website: http://tclug.real-time.com

--
Gordon Pedersen
1412 Portland Avenue
gordo@pclink.com
Saint Paul, Minnesota
info systems design
55104, USA