2002-11-24 13:52:23

by Ed Tomlinson

[permalink] [raw]
Subject: Invalid module format - how does one fix this?

Hi,

2.5.49-mm1 works ok here (shpte enabled too). I see two frustrating problems left
with the modules change (user perspective). The most irratating one is messages like:

FATAL: Error inserting /lib/modules/2.5.49-mm1/kernel/ac97_codec.o: Invalid module format

I get this on about 10% of the modules I want to load. How do I fix it?

The second is that automatic loading is not working. Manually loading modules is a PITA.
What plans are there to fix this?

TIA
Ed Tomlinson


2002-11-24 14:18:02

by Andi Kleen

[permalink] [raw]
Subject: Re: Invalid module format - how does one fix this?

Ed Tomlinson <[email protected]> writes:

> FATAL: Error inserting /lib/modules/2.5.49-mm1/kernel/ac97_codec.o: Invalid module format
>
> I get this on about 10% of the modules I want to load. How do I fix it?

readelf -r module_in_question.o

then look at arch/$ARCH/kernel/module.c and find out which relocation
is not implemented. Then implement it. Enabling DEBUGP there and in
kernel/module.c may also help.

-Andi

2002-11-24 14:43:53

by James Bottomley

[permalink] [raw]
Subject: Re: Invalid module format - how does one fix this?

> 2.5.49-mm1 works ok here (shpte enabled too). I see two frustrating
> problems left with the modules change (user perspective). The most
> irratating one is messages like:

> FATAL: Error inserting /lib/modules/2.5.49-mm1/kernel/ac97_codec.o:
> Invalid module format

> I get this on about 10% of the modules I want to load. How do I fix
> it?

It seems that the new module loader *requires* init routines (they were
optional on the old one) so a lot of modules that are simply helper routines
and didn't previously have an init now need one.

I fixed this on my 53c700.c library module by adding

no_module_init;

at the end of the file.

> The second is that automatic loading is not working. Manually loading
> modules is a PITA. What plans are there to fix this?

This hasn't annoyed me enough that I've looked into it yet. I suspec the new
modprobe doesn't know about the in-kernel module names (or to look in
/etc/modules.conf) yet.

James



2002-11-24 14:52:58

by Ed Tomlinson

[permalink] [raw]
Subject: Re: Invalid module format - how does one fix this?

On November 24, 2002 09:25 am, Andi Kleen wrote:
> Ed Tomlinson <[email protected]> writes:
> > FATAL: Error inserting /lib/modules/2.5.49-mm1/kernel/ac97_codec.o:
> > Invalid module format
> >
> > I get this on about 10% of the modules I want to load. How do I fix it?
>
> readelf -r module_in_question.o
>
> then look at arch/$ARCH/kernel/module.c and find out which relocation
> is not implemented. Then implement it. Enabling DEBUGP there and in
> kernel/module.c may also help.

Looking in i386/kernel/module.c, it should be using printk to tell me
what is missing. I am not seeing these in my logs. Is there some /proc or
/sys setting I need to change to see warnings?

Tia,
Ed Tomlinson

2002-11-24 15:22:54

by Ed Tomlinson

[permalink] [raw]
Subject: Re: Invalid module format - how does one fix this?

On November 24, 2002 09:50 am, J.E.J. Bottomley wrote:
> > 2.5.49-mm1 works ok here (shpte enabled too). I see two frustrating
> > problems left with the modules change (user perspective). The most
> > irratating one is messages like:
> >
> > FATAL: Error inserting /lib/modules/2.5.49-mm1/kernel/ac97_codec.o:
> > Invalid module format
> >
> > I get this on about 10% of the modules I want to load. How do I fix
> > it?
>
> It seems that the new module loader *requires* init routines (they were
> optional on the old one) so a lot of modules that are simply helper
> routines and didn't previously have an init now need one.
>
> I fixed this on my 53c700.c library module by adding
>
> no_module_init;
>
> at the end of the file.
>
> > The second is that automatic loading is not working. Manually loading
> > modules is a PITA. What plans are there to fix this?
>
> This hasn't annoyed me enough that I've looked into it yet. I suspec the
> new modprobe doesn't know about the in-kernel module names (or to look in
> /etc/modules.conf) yet.

Thanks James. Including init.h and adding no_module_init fixes ac97_codec.
Now to see if the matrox fb stuff also can be fixed.

Ed Tomlinson