[BusyBox] insmod problem with 2.4.4 kernel

Andreas Neuhaus andy at fasta.fh-dortmund.de
Sat May 26 10:41:46 UTC 2001


> Try turning on #define BB_FEATURE_INSMOD_VERSION_CHECKING in the BB
> config.h, and turn on CONFIG_MODVERSIONS in the Kernel config.  This, as
> pointed out to me in an earlier email, will allow insmod and the modules
to
> "reassign" the linkings to dynamic libraries.  At least I believe that's
> what it does.  In any case, that made my "Missing Symbols" error messages
go
> away when I compiled my kernel.  Also, when compiling, make sure you do a
> `make clean`.  This will remove all of the .o files, and cleanly rebuild
> them the next time you do `make modules` or make a kernel.
> One other thing to try is removing the "Auto_FS" support in the
> kernel, unless you need it.  I've seen strange things happen when the
kernel
> tries to call something like that, and it's not actually there.  Can be
bad
> if you're trying to demonstrate something to a client, too...net that I'm
> bitter or anything.
> In the uClibc config file, MAKE SURE that it's actually getting the
> path to the Linux source!  I'd put in a test that echo's it to a file, so
> that you can prove to yourself that the path is actually getting passed as
> you expect.  Check for double '/'s, and things like that.  I find that
it's
> usually a better idea to hard code the path to the source, because it
could
> pick up the "current" path from someplace else (i.e.: the location of the
> compiler, etc.).  This can obviously pose a problem.  Just a thought,
> though...but I would definitely run a test at the very least.
Additionally,
> you may want to completely comment out the last line in the uClibc config
> file (the eventual destination path).  It used to cause problems, and I'm
> not too sure if they've been solved or not.

this begins to drive me crazy... i hard-coded my path to the linux kernel
into uclibc config, i disabled auto_fs in the kernel, set CONFIG_MODVERSIONS
in the kernel, set BB_FEATURE_INSMOD_VERSIONCHECKING. i also made sure that
src/uclibc/include/{linux|asm} point to the right kernel path. i did not
only make clean, but also completely checked out uclibc and busybox again. i
even changed /usr/src/linux to my new kernel (just to make sure that no
includes of my running kernel are included). i also did uclibc install
(which i normally don't, because i only want to build but not install uclibc
on my build system)...

the result: i still have problems loading msdos.o (uninitialized),
everything else seems to work fine. now i'm absolutely clueless :-(

when i do "ldd src/uClibc/lib/libuClibc-0.9.5.so" on my build system:
ldd: warning: you do not have execution permission for
`src/uClibc/lib/libuClibc-0.9.5.so'
        /lib/libNoVersion.so.1 => /lib/libNoVersion.so.1 (0x4002a000)
        ld-uclibc.so.0 => not found
        libc.so.6 => /lib/libc.so.6 (0x40037000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000)

ld-uclibc.so.0 can't be found because it's not installed... but why is
libc.so.6 and ld-linux.so.2 referenced in libuclibc?

everything worked fine when i tried a few month ago (i think it was
somewhere in the mid of march) with kernel 2.4.0... i'll now try to check
out an older version of uclibc and busybox and try to find the difference...

regards,
andreas neuhaus







More information about the busybox mailing list