Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I had mandrake multi network firewall which uses kernel 2.4.18-8 and I downloaded, compiled and installed 2.4.31. Everything seemed to go well except when I booted into the new kernel, my 2 ethernet cards were not working.
It seems they were not detected/initialised at all.
Now I seem to remember, that when I initially installed Linux on this server, I had to do some kind of song & dance to get the cards to work.They are BroadCom NetXtreme 5700, and I currently have them loading as a module. They load with /etc/modules I believe.
Anyway, how can I get them to load up at boot time with my new kernel?
If I have to change the module in any way, is there a way to preserve the old one so my old kernel can still work? (this is a production server)
Did you do 'make modules_install'? The new kernel puts its modules in a different subdirectory of /lib/modules from the old kernel. Each kernel version will have its own set of modules, so if you reboot the old kernel you get the old module.
Modules listed in /etc/modules get loaded whatever kernel you boot (if they have been compiled and installed for that kernel anyway).
If the kernel configuration is correct you shouldn't have to change much, if anything, to use the new kernel.
thanks for the reply. Yes, I did make modules and make modules_install. It doesnt even detect my cards. There are 2 on-board broadcom cards.
On my old kernel, dmesg has several messages about the cards:
Code:
Broadcom Gigabit Ethernet Driver bcm5700 with Broadcom NIC Extension (NICE) ver. 7.0.0 (08/14/03)
eth0: Broadcom BCM5703 1000Base-T found at mem fbff0000, IRQ 24, node addr 00096b63154e
eth0: Broadcom BCM5703 Integrated Copper transceiver found
eth0: Scatter-gather ON, 64-bit DMA ON, Tx Checksum ON, Rx Checksum ON
eth1: Broadcom BCM5703 1000Base-T found at mem fbfe0000, IRQ 25, node addr 00096b63154f
eth1: Broadcom BCM5703 Integrated Copper transceiver found
eth1: Scatter-gather ON, 64-bit DMA ON, Tx Checksum ON, Rx Checksum ON
bcm5700: eth1 NIC Link is UP, 100 Mbps full duplex, receive & transmit flow control ON
bcm5700: eth0 NIC Link is UP, 10 Mbps half duplex
The new kernel dmesg doesn't mention anything from eth0, 1, or anything about Broadcom. It does, however, contain messages from NET4. I don't see any obvious error messages.
What else can I look at to figure out why my card's aren't working / being detected?
Apparently the current driver for this device is called 'tigon3'. Did you configure this into your new kernel? Maybe your old kernel used an earlier version with a different name.
"tigon3", where did you see that? I thought it looked like the module was called bcm5700. Also the server came with the drivers on a CD, but I don't think I used them, I think I downloaded them from the Internet (it was over a year ago, I forget how i got it working). How can I compile it into the kernel if it's already been compiled? Sorry for all the questions.
Weird name isn't it? I think I just googled for the chip name, based on your dmesg output. Even if I got it wrong it might be worth checking.
Maybe what happened was that when you first set this up there was no driver for it in the standard kernel, but the manufacturer/packager had provided one separately. Gigabit ethernet is fairly new. When some version of the driver made it into the kernel code the name had changed. Now there is a CONFIG_TIGON3 option in the kernel config file.
Have you tried just 'modprobe tigon3' to see it loads up?
Otherwise you can probably fix it by compiling a new kernel. Or maybe Mandrake provides an upgrade to a 2.6 kernel? I'm not familiar with that distribution. Usually if you get a packaged kernel it comes with all the matching modules, such as the mysterious tigon3.
OK I rebooted the machine into 2.4.31 (new kernel) and I saw two error messages worth noting. I didn't have a paper at the time, so I don't have the exact words, but it was something like:
Code:
Bringing up interface eth1: Broadcom device doesn't seem to exist, will initialize eth1 later
Starting ADSL: modprobe: modprobe: can't find module eth0 (repeated several times)
When I finally booted up (takes much longer) and ran modprobe I got this message
for tigon3:
modprobe: can't find module tigon3
for bcm5700, the one i currently use:
modprobe: can't find module bcm5700
for an ethernet interface:
modprobe: can't find module eth0
What disturbs me is that it "cant find module bcm5700" when the old kernel uses that module. Therefore, I know it exists, yet the new kernel can't find it. Why?
Different kernel keep their modules in different places. A module is like a piece of a jigsaw puzzle. You cannot mix and match. Each installed kernel has its own subdirectory of /lib/modules. You cannot shift stuff between those directories.
Originally posted by maroonbaboon Different kernel keep their modules in different places. A module is like a piece of a jigsaw puzzle. You cannot mix and match. Each installed kernel has its own subdirectory of /lib/modules. You cannot shift stuff between those directories.
Thanks you gave me a clue!
I tried again with "modprobe tg3" and of course got the error Can't locate module tg3
So I went to find the kernel modules directory and lo and behold, there aren't any modules in there at all.
Old kernel:
/lib/modules/2.4.18-8mdksecure/kernel/drivers (this directory has all kinds of stuff, like "scsi, parport, net") in the net directory: about a zillion things for different cards.
New kernel:
/lib/modules/2.4.31/kernel/drivers (only has one directory, net)
In the net directory: dummy.o (that's it. really.)
So... now what?
I will recompile the kernel if I have to, to get some modules.
I don't know how MDK organises these things. Maybe driver modules are in a separate (but matching) package for the new kernel? It doesn't make much sense to provide a kernel upgrade without matching modules.
You can certainly compile your own kernel. Does MDK provide source packages or documentation to simplify the process?
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.