All of lore.kernel.org
 help / color / mirror / Atom feed
From: Randy Dunlap <rdunlap@xenotime.net>
To: Theodore Kilgore <kilgota@banach.math.auburn.edu>
Cc: Mauro Carvalho Chehab <mchehab@redhat.com>,
	VDR User <user.vdr@gmail.com>,
	linux-media@vger.kernel.org, Hans de Goede <hdegoede@redhat.com>
Subject: Re: "Invalid module format"
Date: Sun, 07 Mar 2010 08:44:27 -0800	[thread overview]
Message-ID: <4B93D7EB.4080405@xenotime.net> (raw)
In-Reply-To: <alpine.LNX.2.00.1003052254200.21642@banach.math.auburn.edu>

On 03/05/10 22:48, Theodore Kilgore wrote:
> 
> 
> On Sat, 6 Mar 2010, Mauro Carvalho Chehab wrote:
> 
>> Randy Dunlap wrote:
>>> On 03/05/10 16:51, VDR User wrote:
>>>> On Fri, Mar 5, 2010 at 4:39 PM, Theodore Kilgore
>>>> <kilgota@banach.math.auburn.edu> wrote:
>>>>> This is to report the good news that none of the above suspicions have
>>>>> panned out. I still do not know the exact cause of the problem, but
>>>>> a local
>>>>> compile and install of the 2.6.33 kernel did solve the problem.
>>>>> Hence, it
>>>>> does seem that the most likely origin of the problem is somewhere
>>>>> in the
>>>>> Slackware-current tree and the solution does not otherwise concern
>>>>> anyone on
>>>>> this list and does not need to be pursued here.
>>>> I experienced the same problem and posted a new thread about it with
>>>> the subject "Problem with v4l tree and kernel 2.6.33".  I'm a debian
>>>> user as well so apparently whatever is causing this is not specific to
>>>> debian or slackware.  Even though you've got it working now, the
>>>> source of the problem should be investigated.
>>>> -- 
>>>
>>> It's been several years since I last saw this error and I don't recall
>>> what caused it then.
>>>
>>> The message "Invalid module format" comes from either of modprobe and/or
>>> insmod when the kernel returns ENOEXEC to a module (load) syscall.
>>> Sometimes the kernel produces more explanatory messages  & sometimes
>>> not.
>>>
>>> If there are no more explanatory messages, then kernel/module.c can be
>>> built with DEBUGP producing more output (and then that new kernel would
>>> have to be loaded).
>>>
>>> Can one of you provide a kernel config file for a kernel/modprobe
>>> combination
>>> that produces this message?  Some of the CONFIG_MODULE* config
>>> symbols could
>>> have relevance here also.
>>>
>>
>>
>> I suspect that it may be related to this:
>>
>> # Select 32 or 64 bit
>> config 64BIT
>>        bool "64-bit kernel" if ARCH = "x86"
>>        default ARCH = "x86_64"
>>        ---help---
>>          Say yes to build a 64-bit kernel - formerly known as x86_64
>>          Say no to build a 32-bit kernel - formerly known as i386
>>
>> With 2.6.33, it is now possible to compile a 32 bits kernel on a 64 bits
>> machine without needing to pass make ARCH=i386 or to use
>> cross-compilation.
>>
>> Maybe you're running a 32bits kernel, and you've compiled the out-of-tree
>> modules with 64bits or vice-versa.
>>
>> My suggestion is that you should try to force the compilation wit the
>> proper
>> ARCH with something like:
>>     make distclean
>>     make ARCH=`uname -i`
>>     make ARCH=`uname -i` install
>>
>> -- 
>>
>> Cheers,
>> Mauro
> 
> Mauro,
> 
> After I did a re-compile of the kernel and modules, all the gspca stuff
> (at least, what I tested which is two or three cameras) all worked just
> fine. All I needed to do was make distclean and then make menuconfig
> again and the gspca setup "saw" my new kernel. I made sure to know this
> by putting up a slightly different name for it, using
> CONFIG_LOCALVERSION= option. So I guess to this extent I used force, but
> I did not need to do more than that.
> 
> 
> Now, seeing if I can help further in tracking this thing down, here are
> some more details.
> 
> 1. As I said, the problem is fixed now, by a local re-compile of the
> kernel (I did change a few things in the configuration and also cleared
> out a lot of junk which has nothing to do with my hardware, of course).
> So there might be some things of interest in the two config files.
> Naturally, I can send them to anyone who would like to see them. But I
> think that I cover the important differences below.
> 
> 
> Additional comment: I probably could have taken the option of running
> Slackware64 if I wanted to do that, because I suspect that my hardware
> would support it. But I used regular Slackware. So the kernel, the
> modules, and everything else are 32-bit, or supposed to be, though the
> machine could run 64-bit.
> 
> 2. According to what you are saying, here from my current config file is
> what might be relevant
> 
> # CONFIG_64BIT is not set
> CONFIG_X86_32=y
> # CONFIG_X86_64 is not set
> CONFIG_X86=y
> CONFIG_OUTPUT_FORMAT="elf32-i386"
> CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
> 
> and also it might possibly be important, too, that the processor type I
> chose was
> 
> CONFIG_MK8=y
> 
> for the very good reason that this is what is in the machine. Also I cut
> the choice for support of parallel CPUs down to 2 CPUs from 8 CPUs,
> again because that is what is actually present.
> 
> And furthermore my kernel config says
> 
> CONFIG_LOCALVERSION="-my"
> 
> and the original one says
> 
> CONFIG_LOCALVERSION="-smp"
> 
> so that I have two distinct sets of modules, 2.6.33-my and 2.6.33-smp
> and I can go back and boot from the Slackware kernel to a functioning
> machine, too.
> 
> The kernel which I used from Slackware-current is one of the standard
> ones, the one called vmlinuz-huge-smp-2.6.33-smp which comes in the
> Slackware package called kernel-huge-smp-2.6.33_smp-i686-1.txz. Its
> config file is in the package, too, so here are the similar parts of it:
> 
> # CONFIG_64BIT is not set
> CONFIG_X86_32=y
> # CONFIG_X86_64 is not set
> CONFIG_X86=y
> CONFIG_OUTPUT_FORMAT="elf32-i386"
> CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
> 
> The above looks the same to me as my choices. But the CPU type was quite
> different, of course, because it was a distro kernel.
> 
> CONFIG_M686=y
> 
> And the Slackware kernel also chose
> 
> CONFIG_X86_GENERIC=y
> 
> but when re-compiling I turned that off.

Hey,
How are these kconfig symbols set?

CONFIG_MODULES
CONFIG_MODULE_FORCE_LOAD
CONFIG_MODULE_UNLOAD
CONFIG_MODULE_FORCE_UNLOAD
CONFIG_MODVERSIONS
CONFIG_MODULE_SRCVERSION_ALL

in both a working (distro?) kernel and in the failing kernel, please.

> Also, as mentioned previously, the choice in the Slackware kernel was to
> support up to 8 parallel CPUs.
> 
> If there is anything else of interest in comparing the two config files,
> someone should let me know. The only thing I can put my finger on is the
> different choice of CPU and possibly the "GENERIC" option can cause
> occasional problems?
> 
> I seem to recall that I have had trouble with this kind of thing
> sometimes in the long-ago past, as someone else has mentioned. On a
> couple of occasions way back when, some of the "stock" distro modules
> would not initialize properly and the cure was to do a local
> kernel-and-modules compile. Not that compiling the kernel bothered me
> terribly back then, or now. But a problem like this one is in a way an
> accident, and of course accidents are not supposed to happen.
> 
> Trying to look backward, It seems to me that one factor in the long-ago
> problems and also in this one might be the difference between the
> default CPU choice in a distro kernel and what is actually in the
> machine. Especially, the difference between having "M686" in the kernel
> and modules, as opposed to something else (especially something like K8)
> being in the machine might sometimes cause interference. And then
> modprobe sees the real hardware and sees an apparent conflict in the
> choice of M686 in the module. But this is only semi-informed speculation
> on my part. Someone else may know a lot more.
> 
> Hoping that the above helps in tracking down the problem.
> 
> Theodore Kilgore
> 


-- 
~Randy

  reply	other threads:[~2010-03-07 16:44 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-04 23:44 "Invalid module format" Theodore Kilgore
2010-03-06  0:39 ` Theodore Kilgore
2010-03-06  0:51   ` VDR User
2010-03-06  1:07     ` Randy Dunlap
2010-03-06  3:37       ` Mauro Carvalho Chehab
2010-03-06  6:48         ` Theodore Kilgore
2010-03-07 16:44           ` Randy Dunlap [this message]
2010-03-07 17:15             ` Theodore Kilgore
2010-03-06 22:02         ` Theodore Kilgore
2010-03-07 13:30           ` Mauro Carvalho Chehab
2010-03-07 16:55             ` Theodore Kilgore
2010-03-07 17:55         ` VDR User
2010-03-07 19:12           ` Theodore Kilgore
2010-03-07 22:03           ` Theodore Kilgore
2010-03-08  0:16             ` VDR User
2010-03-08  1:36               ` Mauro Carvalho Chehab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B93D7EB.4080405@xenotime.net \
    --to=rdunlap@xenotime.net \
    --cc=hdegoede@redhat.com \
    --cc=kilgota@banach.math.auburn.edu \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@redhat.com \
    --cc=user.vdr@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.