如何重命名内置的linux内核模块?

时间:2016-07-21 19:29:09

标签: makefile linux-kernel kernel-module

我正在尝试扩展linux内核的内置xfs模块。在this SO post之后,我现在可以在本地编译它。但为了避免与现有的内核xfs模块冲突,我想将我的扩展名重命名为xxfs,而不更改源文件的名称。

我找到a related post,之后我将Makefile中的相关行更改为:

obj-$(CONFIG_XFS_FS)            += xxfs.o
xxfs-objs                       := xfs.o

但是我说错误

make[1]: *** No rule to make target '/home/dev/tmp/xxfs/xfs.o', needed by '/home/dev/tmp/xxfs/xxfs.o'. Stop.
Makefile:1403: recipe for target '_module_/home/dev/tmp/xxfs' failed
make: *** [_module_/home/dev/tmp/xxfs] Error 2
make: Leaving directory '/usr/src/linux-headers-4.4.0-28-generic'

环境:

Ubuntu 16.04,内核4.4.0-28-generic。

修改

我通过

获得了xfs内核模块源文件
  1. 使用apt-get source linux-source-4.4.0
  2. 安装Linux内核源代码
  3. linux-4.4.0/fs/xfs复制到另一个目录(仅为了便于维护),目前为/home/dev/tmp/xxfs
  4. 要编译模块,我从make -C /lib/modules/$(uname -r)/build M=$(pwd) modules目录运行命令/home/dev/tmp/xxfs,之后将在同一目录中生成xfs.ko

    但是,在我更改Makefile

    中的以下行后
    obj-$(CONFIG_XFS_FS)            += xfs.o
    

    obj-$(CONFIG_XFS_FS)            += xxfs.o
    xxfs-objs                       := xfs.o
    

    其他所有内容都没有被触及,但我无法再使用相同的命令编译模块。

0 个答案:

没有答案