是否可以使用模块扩展内置Linux内核功能?

时间:2015-04-21 10:52:43

标签: linux linux-kernel

我在嵌入式环境中使用3.4.31+ Linux内核,它使用zlib压缩方法内置了对SquashFs的支持。现在我想添加对xz方法压缩的支持而不替换内核,只是将其添加为模块。有可能吗?

之后
  1. 在内核菜单配置中选择SquashFs支持作为模块
  2. 重新编译内核
  3. 在我的目标设备上保留原始内核,但更新/lib/modules/3.4.31 +
  4. 的所有内容
  5. 调用 modprobe squashfs
  6. 我得到了

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

    dmesg显示:

    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)
    

    是否有强制删除内置SquashFs支持的解决方法?

1 个答案:

答案 0 :(得分:-1)

它没有像这样工作,原始内核二进制文件已经包含squashfs代码作为非模块化组件。如果你想从内核中删除代码,那么你需要使用刚刚编译的新内核(以及刚刚创建的模块)。

相关问题