我想试验KVM模块和内核,例如,如果我改变链表的实现(在/include/linux/list.h中定义)等,它是如何预先形成的 . 这不是我真正做的,但足以解释我的问题 .

所以我所做的是跟随this tutorial并且在运行 make sync; make 之前我刚刚在第500行的 virt/kvm/kvm_main.c 中插入了一行(就在使用了list_add宏之后)我添加了 printk(KERNINFO, "here\n"); . 这个我可以看到 dmesg 就好了 . 但在函数 list_add 中的文件 list.h 内 . 我还添加了一条没有出现的 printk(KERNINFO, "here 2\n"); 行 .

那么,发生了什么?它将部分链接回真正的内核吗?

为简单起见,这是我做的行动:

git clone git://git.kiszka.org/kvm-kmod.git
cd kvm-kmod
git submodule update --init
./configure [--kerneldir=linux]
#### add the printk to the files.
make sync
make
  • 对于那些花时间做测试的人,首先要感谢,其次, git submodule update --init 会下载很多,所以需要时间 . 并且 make 将编译很多,所以它也需要几分钟 .