Can a built-in Linux kernel function be extended with a module?

I am using Linux kernel 3.4.31+ in an embedded environment which has built-in support for SquashFs using the zlib compression method. Now I would like to add support for compressing the xz method without replacing the kernel, but just adding it as a module. Is it possible?

After I

  • Select SquashFs support as a module in the kernel menuconfig menu
  • Recompile kernel
  • Leave the original kernel on my target device, but update the entire contents of / lib / modules / 3.4.31 +
  • invoke modprobe squashfs

I get

# modprobe squashfs
modprobe: failed to load module squashfs (kernel/fs/squashfs/squashfs.ko): Cannot allocate memorycode

      

dmesg shows:

kmem_cache_create: duplicate cache squashfs_inode_cache
[<c000e5e4>] (unwind_backtrace+0x0/0xf0) from [<c0077264>] (kmem_cache_create+0x4a4/0x514)
[<c0077264>] (kmem_cache_create+0x4a4/0x514) from [<bf011024>] (init_module+0x24/0x7c [squashfs])
[<bf011024>] (init_module+0x24/0x7c [squashfs]) from [<c0008840>] (do_one_initcall+0x11c/0x190)
[<c0008840>] (do_one_initcall+0x11c/0x190) from [<c0048c40>] (sys_init_module+0x36c/0x1874)
[<c0048c40>] (sys_init_module+0x36c/0x1874) from [<c00092e0>] (ret_fast_syscall+0x0/0x2c)

      

Is there a workaround to force the removal of built-in SquashFs support?

+3


source to share


1 answer


It doesn't work like that, the kernel source binary already contains the squashfs code as a non-modular component. If you want to get rid of the code inside the kernel, you need to use the new kernel you just compiled (along with the modules you just created).



-1


source







All Articles