【发布时间】:2014-07-01 12:54:43
【问题描述】:
我目前正在为学术目的修补 Ext4(仅限 linux/fs/ext4/*,如 file.c、ioctl.c、ext4.h)。我正在开发 QEMU 虚拟机,为了加快整个过程,我选择了 Ext4 编译为内核模块。在测试新更改时会出现问题,因为即使我运行make modules ARCH=x86 && make modules_install ARCH=x86 并重新启动机器(/ 是 Ext4),除非我重新编译整个内核,否则它们是不可见的。这有点奇怪,因为我有各种迹象表明 Ext4 已被编译为模块:
-
是这样配置的:
$ grep EXT4 .config CONFIG_EXT4_FS=m -
它确实作为一个模块编译:
$ make modules ARCH=x86 (...) CC [M] fs/ext4/ioctl.o LD [M] fs/ext4/ext4.o Building modules, stage 2. MODPOST 3 modules LD [M] fs/ext4/ext4.ko $ make modules_install ARCH=x86之后 /lib/modules/3.13.3/kernel/fs/ 中的文件具有正确的时间戳。-
最后:
$ lsmod Module Size Used by ext4 340817 1 (...)
出于某种原因,我必须执行$ make all ARCH=x86 才能看到我的更改出现在运行时中。我错过了什么?谢谢!
【问题讨论】:
标签: linux linux-kernel kernel-module qemu ext4