Problem with loading external kernel modules

I'm currently using the Angstrom uImage I obtained via Narcissus
(2.6.29-omap1) in combination with a custom Debian 5.0.3 rootfs on the
Rev C3 BeagleBoard. I didn't face any problems until it was necessary
to load modules which were not built directly into the kernel, namely
tun and fuse, causing such an error message:

FATAL: Error inserting tun (/lib/modules/2.6.29-omap1/kernel/drivers/
net/tun.ko): Invalid module format

The folder in which the modules reside was transferred over from
Angstrom as well, so I didn't expect there to be any problems. The
foolish attempt to use insert kernel build's modules failed for the
same reason (invalid module format).

To solve this problem I attempted to build an own kernel with built-in
support for tun and fuse from the official OMAP kernel repository's
source code, which resulted in failure as well as the builds were
unable to boot up, although I followed the instructions here precisely. I just added the
modules in question in menuconfig, nothing more.

Unfortunately, I can't investigate this any further since my serial
connection won't deliver more than ~3 lines of random characters per
connection, despite being properly configures. But that's another

My questions:
1. Is it possible that uImages don't allow loading external modules?
2. If uImages allow loading external modules, why are they apparently
invalid although originating from the same build?
3. Is it possible to resolve this situation without building a new
kernel? If yes, how?
4. If there is no way around building a new kernel, what do I have to
pay attention to in order not to make the same mistakes again, ending
up with an unbootable kernel?

I'm grateful for all answers I can get.


First wild guess is… It seems a problem with toolchain the kernel and modules built.
Modules must have built with other toolchain than kernel.
And why is it that you are using angstrom kernel and Debian custom FS?
Try same thing with everything from angstrom.


Thanks for the response. Loading modules with everything-Angstrom
worked fine.

Modules must have built with other toolchain than kernel.

Keeping this in mind I cleaned up the messy Angstrom/Debian mixture by
installing a kernel .deb for the BeagleBoard, extracting the .deb and
making a uImage from the vmlinuz, following parts of these
instructions: BeagleBoardDebian -
Loading external modules works fine now.

And why is it that you are using angstrom kernel and Debian custom FS?

I settled for this solution after creating multiple unbootable uImages
for a Debian installation I previously made in a virtual ARM machine.
Now that I have a working Debian kernel this dirty workaround is no
longer necessary.