cubedweller
asked on
Dual NIC system
Please Help:
I have spent several days now trying to set up a dual network card linux box to no avail.
Details:
RH 6.1
2 ISA 3Com 3c509b cards
One card should get config info via DHCP, and the other should have a static address (10.1.1.1).
Background:
I am trying to turn my old box into a firewall/proxy. I have tried loading the network card support as modules with a variety of parameters, and also building them right into the kernel (something I've heard I need to do for firewall support anyway). Using the 3Com DOS utility, I have disabled the cards' PnP support and tried almost every IRQ and IO I can think of.
And what really stinks is that, even after numerous fdisks and fresh installs, the box won't even recognize a single card anymore.
The only clue I can find is in my /var/log/messages which reads:
kernel: eth0: 3c509 at 0x280....
kernel: eth0: Setting Rx mode to 1 addr
kernel: eth0: Setting Rx mode to 0 addr
kernel: eth0: Setting Rx mode to 1 addr
Which is the same message I get when I call ifup eth0.
Any ideas?
Thanks in advance,
CubeDweller
I have spent several days now trying to set up a dual network card linux box to no avail.
Details:
RH 6.1
2 ISA 3Com 3c509b cards
One card should get config info via DHCP, and the other should have a static address (10.1.1.1).
Background:
I am trying to turn my old box into a firewall/proxy. I have tried loading the network card support as modules with a variety of parameters, and also building them right into the kernel (something I've heard I need to do for firewall support anyway). Using the 3Com DOS utility, I have disabled the cards' PnP support and tried almost every IRQ and IO I can think of.
And what really stinks is that, even after numerous fdisks and fresh installs, the box won't even recognize a single card anymore.
The only clue I can find is in my /var/log/messages which reads:
kernel: eth0: 3c509 at 0x280....
kernel: eth0: Setting Rx mode to 1 addr
kernel: eth0: Setting Rx mode to 0 addr
kernel: eth0: Setting Rx mode to 1 addr
Which is the same message I get when I call ifup eth0.
Any ideas?
Thanks in advance,
CubeDweller
I think first of all you should change the IO address of your network cards from 0x280 to 0x300, 0x320 or 0x340. 0x280 may be not an appropriate IO address for network card in Linux.
Second, remove one card, configure the left card to appropriate IO address in DOS and make the correct config of Linux kernel and network parameters. Boot Linux again to see if it works now. If so, exchange to another network card, config it in DOS to different IO and IRQ, config the kernel and network parameters, boot Linux again to see if it works fine too. If so, you are almost sure to get both of your cards work now. Put the two cards together, config the kernel and network parameters to support two cards. Boot again.
Hope it's helpful.
Second, remove one card, configure the left card to appropriate IO address in DOS and make the correct config of Linux kernel and network parameters. Boot Linux again to see if it works now. If so, exchange to another network card, config it in DOS to different IO and IRQ, config the kernel and network parameters, boot Linux again to see if it works fine too. If so, you are almost sure to get both of your cards work now. Put the two cards together, config the kernel and network parameters to support two cards. Boot again.
Hope it's helpful.
Greetings.
So what I'd do is:
Go back to the original, (modular) kernel.
Stick the line
alias eth0 3c509
in /etc/conf.modules
Boot with only one card . If this works, then
try to stick the second one in, and put an additional line like
alias eth1 3c509
in conf.modules. If it does not work, you may want to try to add some options to the second alias
line (also be sure that modperobe eth<n> is done
during the boot process. RH should do this automatically, assuming you have configured the
second interface. Or, you can try it manually beforehand)
If you want to use statically compiled drivers,
then the above does not work, and you
will have to use boot-time parameters, which you can later on add permanently to lilo.cong: see Ethernet-HOWTO for details.
Cheers,
alf
So what I'd do is:
Go back to the original, (modular) kernel.
Stick the line
alias eth0 3c509
in /etc/conf.modules
Boot with only one card . If this works, then
try to stick the second one in, and put an additional line like
alias eth1 3c509
in conf.modules. If it does not work, you may want to try to add some options to the second alias
line (also be sure that modperobe eth<n> is done
during the boot process. RH should do this automatically, assuming you have configured the
second interface. Or, you can try it manually beforehand)
If you want to use statically compiled drivers,
then the above does not work, and you
will have to use boot-time parameters, which you can later on add permanently to lilo.cong: see Ethernet-HOWTO for details.
Cheers,
alf
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you very much to lewisq and everyone who helped me.
It turned out that, in order to get it working, I have to unplug my cable modem for at least 60 seconds between reboots (in addition to the 3c5x9cfg configurations).
It turned out that, in order to get it working, I have to unplug my cable modem for at least 60 seconds between reboots (in addition to the 3c5x9cfg configurations).
Apparently nothing is working now. The first step is to get back to a point where one of the cards is in the machine and it is recognized and works. Is the current kernel as-distributed or is it a custom kernel?
Assuming it's a distributed kernel and modules set, configure one card for a free IRQ and IO port and remove the other card. Remove anything you've put in /etc/conf.modules and try a reboot.
RedHat should find the device and put an "alias eth0 3c509" line in /etc/conf.modules. One other thing that soemtimes matters is that you may need to tell your bios that the IRQ for the card is reserved for legacy ISA.
Try that and lets see what you have.