-   Linux - Newbie (
-   -   Modules won't work or install after Kernel Updates (

xptech 04-20-2004 04:23 AM

Modules won't work or install after Kernel Updates

I have been trying to install Linux for about a month now. I have finally gotten RH9 on hda and Windows XP on hdb after some partitioning nightmares I will NOT go into...

I have been having trouble however with the modules thing. Been trying to make my sound card and my modem work, and since RH9 didn't come with the drivers this has been loads of fun. So far I have started from scratch about 7 times (I lost count). Anyway, I was able to get my modem working fine using the module from linmodems. But to get my sound rolling I had to install a kernel update. The original was 2.4.20- 8 and it compiles after a fresh install as i686, even though everything else on my machine says i386. The update was 2.4.20-30.9.i686.rpm. After I rpm -ivh'd the update, I went ahead and did "make symlinks dep" and "make bzImage" and then I did "make install" and I did "make mr proper" After all was said and done this is what I have got now... my system boots with grub and there is a new line to boot from, I now have Linux 2.4.20-8, AND Linux 2.4.20-30.9 as seperate kernals... I still have Windows XP (thank GOD! I already lost it once during this debacle) When I boot in the "new" linux kernel my sound card works on its own..! Wow! but now my modem that was working fine earlier doesn't. So, I tried to reinstall the module for the modem. No go. Errors say that my Kernel and my source headers are not equal in value or something. So, I fugure that I have the old source and new kernel compiled on the same system.. I also figure I need the new source and that should fix it...WRONG! The new source won't install either! It's error message says that the key is bad? What ever that means... So now I am actually stuck and I don't want to reinstall again because I FINALLY got my sound card working (WITHOUT ALSA and this is a major plus). I am hoping there is some quick answer some guru out here can throw me - but if not I have already downloaded every single HOWTO and GUIDE I could find regarding these issues to read in the meantime. Here is the tech info about my machine in case it helps someone help me:

AMD 2400 Athlon
1gig DDR RAM
hd0- 40gig ATA100 carries Linux RH9on: /boot(ext3) /(ext3) /swap(ext3) also has 3 NTFS partitions and one primary FAT32 partition (grub is on the FAT32 primary that I use to make the system Dual bootable with Windows)
hd1- 80gig ATA133 Carries Windows XP single partition.
ATI Radeon 9000 64DDR
Winmodem( was using symlinked ltmodem driver pointing to ttyLTO = dev/modem)
VIA8322 integrated sound card (using Via82cxxx_audio.o drivers)
Epson usb CX5400 printer/scanner (can't find driver for this yet)
Logitech 4000 USB webcamera(can't find a driver for this either)
I also have a usb connecter to my cell phone that works to dail up on Windows. Does anyone know how to do this in Linux?
Last but not least I have a Phillips Boom Box CD player Radio thing that connects to my USB using "PClink" this becomes a "sound card" in Windows and I can play my Mp3's out of the speakers on it. Obviously I havn't been able to get this working on linux yet either...Any clues?

Mainly I want to know how to get the modem working again and if I need to reinstall the entire system again to do this or not.

Thanks in advance for any help.


ekman 04-20-2004 12:11 PM

The modules must match the kernel version. The modules for different kernel versions
are stored in "/lib/modules/[kernel-version]/...". When you boot the new kernel there
is no such dir. It is created with these make commands in the kernel dir;
# make modules
# make modules_install
This is described in the README in the kernel dir and Documentation/modules.txt.

L Ekman

ViNsAniTy 04-20-2004 01:55 PM

sorry for intruding on your thread, but I'm having some problems with the modules too after a kernel compile...

I'm having problems with my network card drivers, and when I looked in

/lib/modules/[new kernel version]/kernel/

it only contained the folder called "drivers" and in this folder was only a folder called "net" and the only driver in "net" was a "dummy.o"...

When I checked the folders of the older kernel, there was a whole slew of files under this "net" folder, including the drive I needed "tulip"...

If someone could please direct me at what I did wrong that would be great, and maybe it would help the author of this thread as well...

Again, sorry for intruding on your thread...

Tino27 04-20-2004 02:28 PM

vinsanity --

Two things come to mind. First, I would double-check the .config file to make sure that the network card driver you need is actually being built during the compile. Since you didn't receive any error messages during the actual kernel and module compiling (you didn't, right?), the other possibility might be that the "make modules_install" didn't actually install the modules completely. I have run into several situations where "make modules_install" finished without any error messages but didn't completely install the new modules. The only way I knew something was amiss was because the "make modules_install" seemed to go a lot quicker than normal. Well, that and the fact that after I tried booting into the new kernel, I got the really descriptive "Kernel Panic" error message. :)

ViNsAniTy 04-20-2004 02:44 PM

I don't recall any error messages, unless they zoomed by very fast....but I would assume that the compile process would have halted on errors, or it would give me an error summary at the end of the compile...

The only error message I was really getting was
"delaying eth0 initialization.....failed"

that's when I knew there was a problem.... :S

ViNsAniTy 04-22-2004 01:40 PM

I tired to recompile the kernel again and it turns out that I do get some errors when I do "make modules"....The last little bit is as follows...

DAC960.c:2771: structure has no member named `sem'
make[2]: *** [DAC960.o] Error 1
make[2]: Leaving directory `/home/vince/linux/drivers/block'
make[1]: *** [_modsubdir_block] Error 2
make[1]: Leaving directory `/home/vince/linux/drivers'
make: *** [_mod_drivers] Error 2

anyone care to explain to this n00b what "Error 1" and "Error 2" mean?
Thanks in advance, much appreciated!

Tino27 04-22-2004 01:56 PM

This is where things can get tricky...

First to answer your question, the "Error 1" and "Error 2" (I believe) have to do with the fact that when you compile something (kernel, modules, apps, etc.) you can compile things recursively. Meaning that if Module A starts compiling and realizes it need Module B to compile first, it will start compiling Module B. Now you are one level deep from the first. Thus if Module B errored out while trying to compile, the error listed would be 1. Because Module B didn't compile and Module A depends on it, Module A errors out, too. Thus Error 2. If you were 3 levels deep, I'd expect a chain of Errors back up to the top level. However, this is a guess.

(On second thought, the "Error" levels may also have something to do with the directory structure of the project, too. If you've got programs to compile in various levels of directories, as the compiler enters and leaves each directory level, that may correspond to the string of Error numbers you get if something goes amiss.)

Now, how to address your actual problem. I have run into this in the past. What I have done is to first assess whether the module in question is actually even needed on my computer (i.e. Do I even have that piece of hardware installed?). If not, then what I normally do is go through the entire build process again (for whatever reason, I have had little success rebuilding if I didn't start from the original freshly extracted tarball), except this time during the "make menuconfig" process, I would completely disable the module in question. Don't build it into the kernel. Don't build it as a module.

The upside to this process is that you will eventually build a kernel and modules that will work. The downside is that this method is sort of trial and error and might take you a while to find all of the points of failure. When you compile an application, it goes until it finishes or errors out. Unfortunately if there is still stuff left to compile and it errors out, the process stops. I helped build a kernel and modules for a SuSE system at work and it took us about 4 or 5 tries to finally get the modules that weren't compiling correctly identified and removed from the .config file. Someone else might have a better suggestion.

If the module in question IS something you need support for on your computer, then you're best bet would be to try Google and see if someone else has had a similar problem. Someone may have even posted a solution.

Good luck.

ViNsAniTy 04-22-2004 02:02 PM

I actually used "make oldconfig" as I figured that would be the quickest...I will try to rebuild it again and see what happens with "make menuconfig"

thanks for the advice

Tino27 04-22-2004 02:09 PM

I'm sure there are some differences between the two ("oldconfig" vs. "menuconfig"), but I do know that if the .config file is in the /usr/src/linux directory before running "make menuconfig", it will load the values in the .config file. Other than that, not sure what the differences are.

Perhaps once you've got your .config file tailored to your machine, "oldconfig" might be faster after all.

All times are GMT -5. The time now is 03:41 AM.