Modules disabled

When I tried to compile a loadable module for my kernel (linux-2.6.22.19-0.2) I got the following error message:-

“The present kernel configuration has modules disabled. Type ‘make config’ and enable loadable module support. Then build a kernel with module support enabled.”

The kernel had been updated by an online update. Is it normal practice to disable loadable module support? I have never compiled a kernel and I am a little nervous about fiddling with something that works, but I need to load a file system module. Instructions for compiling a kernel are really complicated. Is there an easier way I can replace my version with a packaged version that allows module support?

Thanks.

i can’t imagine how you got a kernel without module loading support
rolled in (unless you compiled it yourself, or someone else did it for
you)!

please run this command in a terminal and post its output back to here:

uname -a

i think the real question here is: how did you get a non-default
kernel installed and booted with knowing it? (where did it come from
and does it have a root kit humming along??)

on the first boot screen, is more than one kernel listed as an option?
if so, then: any of those listed include the word “default”?
and, if you boot that default one, is life easier???


natural_pilot

It was automatically upgraded via download.opensuse.org/update/10.3/

please run this command in a terminal and post its output back to here:

uname -a

ion@protos:~> uname -a
Linux protos 2.6.22.19-0.2-default #1 SMP 2008-12-18 10:17:03 +0100 i686 athlon i386 GNU/Linux
ion@protos:~>

i think the real question here is: how did you get a non-default
kernel installed and booted with knowing it? (where did it come from
and does it have a root kit humming along??)

on the first boot screen, is more than one kernel listed as an option?
if so, then: any of those listed include the word “default”?
and, if you boot that default one, is life easier???


natural_pilot

Here’s what my /boot/grub/menu.lst looks like…

title openSUSE 10.3 - 2.6.22.19-0.2
root (hd0,4)
kernel /boot/vmlinuz-2.6.22.19-0.2-default root=/dev/disk/by-id/scsi-SATA_SAMSUNG_HD321KJS0MQJ9CQ204539-part5 vga=0x31a resume=/dev/sda2 splash=silent showopts
initrd /boot/initrd-2.6.22.19-0.2-default

I don’t see anything other than “-default” being mentioned.

The default openSUSE-Kernel has of course support for loading modules built in, so the problem must be somewehere else, either in your build environment or in the source of the module you want to compile.

More information on what exactly you want to do is necessary.

For starters, which module do you want to build and where did you get the source from?

I am sure you are correct as I can load existing modules.

I want to read and write RBF filesystems under Linux.

The module I need to compile is “rbf”. The source (rbf-0.66.tgz) comes from the Open Source Automation Development Lab at RBF File System: OSADL - Open Source Automation Development Lab eG

Akoellh wrote:
> so the problem must be somewehere else…
> More information on what exactly you want to do is necessary.

exactly correct.


natural_pilot

Downloaded it and followed the instructions for building, but version 0.66 does not compile against 2.6.22:


make -C /lib/modules/2.6.22.19-0.2-default/build M=$(pwd) modules
make: Entering directory `/usr/src/linux-2.6.22.19-0.2-obj/i386/default'
make -C ../../../linux-2.6.22.19-0.2 O=../linux-2.6.22.19-0.2-obj/i386/default modules
  CC [M]  /usr/src/linux/fs/rbf/super.o
/usr/src/linux/fs/rbf/super.c: In function ‘init_inodecache’:
/usr/src/linux/fs/rbf/super.c:91: error: too few arguments to function ‘kmem_cache_create’

That was rather easy to fix, but even then:

make -C /lib/modules/2.6.22.19-0.2-default/build M=$(pwd) modules
make: Entering directory `/usr/src/linux-2.6.22.19-0.2-obj/i386/default'
make -C ../../../linux-2.6.22.19-0.2 O=../linux-2.6.22.19-0.2-obj/i386/default modules
  CC [M]  /usr/src/linux/fs/rbf/super.o
  CC [M]  /usr/src/linux/fs/rbf/inode.o
/usr/src/linux/fs/rbf/inode.c: In function ‘__rbf_write_begin’:
/usr/src/linux/fs/rbf/inode.c:118: error: implicit declaration of function ‘block_write_begin’

Thanks for all the time you put into it. Fortunately I do have another method (albeit cumbersome) for working around the problem. I have to admit I’m over my head when it come to C language programming.

Thanks again.

Maybe this workaround is the (long term) better solution.

Looks like there has not been too much maintainance/development on that project during the last months.

As kernel development is very fast, “out of tree” drivers are outdated very soon if nobody keeps up with the changes in the mainline kernel.