Discussion Locked

New 3Com NIC on email server: not there

0 helpful
5 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.

Our email server, a Linux box running Mandrake 8.0, just had a serious hardware issue; I replaced the motherboard, CPU, and RAM. System works, but I decided to put in a new 3Com 509b-TX NIC, believing it would provide better and longer service thanthe onboard LAN getup (which Linuxconf recognized as a Sis900). Well, I can't get the OS to recognize it, and it appears there's an IRQ conflict, so I set the 3Com to IRQ 10 (the other is on 11), but for some reason I can't get it to 'take'. When I type 'dmesg' in the terminal to look at the hardware status, it tells me that 'eth0 (the 3Com card) has been set to IRQ 11'.
Needless to say, no one's getting their email and I'm struggling to make them happy again. The email server is on an internal network, and all was FINE until two days ago.

Thanks, Patriccio [Patrick Smith]

5 replies

by fausto_oliveira2000

I have found this answer in the mandrake support group. My advice is for you to try to force the IRQ on the BIOS prior to undertake the advices on the text. Give me a mail if you run into any trouble.

An even less elegant method is to have GNU/Linux try to load modules until one succeeds. Of course this only works for devices which are accessed via kernel modules and not for those which need program-supplied drivers (like graphics cards or printers).

Go to '/lib/modules/[kernel-version]'.Change to the subdirectory matching the type of hardware you have. As 'root' run

modprobe -t . *

You will get error messages for wrong modules: Device or resource busy. If the command stops before reaching the last module in the directory, youcan take a cookie. Run lsmod, the module listed on top of the list is the driver you need.

This also works for program-driven hardware, though it is somewhat more tedious: if you can't find the driver which matches your hardware exactly, try one for an earlier model by the same vendor or look for an 'generic' option.

by patriccio_2003

I found this answer helpful in diagnosing the problem. This solution, though, didn't take me places for some reason, and I don't know if my particular Linux flavor is different than his or not. The modprobe command didn't go anywhere; I must not be using it properly. It turns out, as I dug further, we had DNS issues also, which were affecting the network as well. But the engineer got things going finally, sometimes referring to this answer. Thanks!

by n9oec

There are several things that need to be addressed here. First - the 3com card has NVRAM to hold its configuration. You need to run the DOS config program to set the interrupt and to tailor the interrupt lookahead response (workstation through server performance option.) I don't remember whether this is PCI or ISA (I stopped using 3com, Intel EEpro and Tulip cards when the 8139too RTL based cards solved long running interrupt problems) but if this is ISA you need to reserve the IRQ in the PNPsetup section of your Motherboard BIOS config and reset the ESCF database so the PCI PNP config can figure out the new landscape and assign the interrupts correctly.

From your description of the output of dmesg, I wonder that the OS isn't seeing the card. Shared interrupts should work between a bus attached NIC and the built-in, so don't let that distract you in searching for the solution. You don't mention how the OS configured in the new card. In RedHat, Kudzu would keep a database of all the hardware found and whether it was configured or not. When hardware gets added or removed, Kudzu takes note at the next bootup and offers to change the configuration accordingly. If you did not get prompted to approve adding the 3com card, you may not have actually changed the configuration from using the old card. Usually, the particular card type is determined in /etc/modules.conf by the eth0 alias. The core code calls eth0 and the alias tells the loader which module to really load.Check and see if the eth0 alias is 3c90x or is still the old card. If it is still pointing to the old card, comment out the old entry with a # in column one of the line and add a similar line below (without the #) with 3c90x substituted for the oldNIC module. lets the module system build a new database of loadable modules and aliases and should bring the network to life.

by patriccio_2003

I appreciate this input- we never got to this point; KudZu sounds great, and I've only used Mandrake and just haven't run into it. The modules.conf file did have the right alias listed (3c90x). It's a PCI NIC.
The network engineer who helped me set up the network fixed some DNS issues and changed the 3Com IRQ to 9; he claims that 3Com uses either [he named two less-than-10 numbers] or 9, from the old days, and wa-la, it worked. Frankly, I'm still a little stumped at how he got it going (I would have systematically gone through your recommendations, except, hey, it worked and I didn't want to break it!). He doesn't write anything down and can hardly articulate what exactly he does, but he is a great help.
I'm giving points for this answer because after walking through the process pretty thoroughly, everything here seems MORE helpful than the other given answer. Thanks!

This discussion is closed to new replies.