如何修改linux内核中的kvm模块?

时间:2014-04-25 22:59:14

标签: linux linux-kernel kernel-module qemu kvm

我想在Linux内核的kvm模块中进行一些修改。为此,我做了以下事情:

  1. 获得内核来源:
    apt-get source linux-image-source-$(uname-r)
  2. 修改了文件emulate.c中的函数 - 更改了一些变量并添加了printk语句。
  3. 内核:
    fakeroot debian/rules clean
    fakeroot debian/rules binary-headers binary generic
  4. 安装由于建筑物而产生的包裹:
    sudo dpkg -i linux*(version)*.deb
  5. 重新启动系统。
  6. 已启用QEMU执行kvm
  7. 然而,当我尝试在QEMU中测试时,我所做的更改似乎没有反映出来。当我使用printk核对时,dmesg语句都没有执行。

    任何人都可以指出哪个部分我错了?

1 个答案:

答案 0 :(得分:1)

安装新内核不一定会启动它,您可能需要更改引导加载程序中的默认值。 (例如grub)

您可以检查刚编译和安装的内核是否与使用以下内容启动的内核相同:

cat /proc/version

如果这不符合预期,那么您需要调整Grub配置和/或重新启动并手动选择正确的内核。

建立了正确的内核后,您可能需要更改内核报告的消息级别(通过dmesg)

这是由内核proc文件控制的。您可以通过打印此文件来查看当前值:

cat /proc/sys/kernel/printk

示例输出:

4 4 1 7

第一个参数 - 严重性为<的消息将记录4(即0,1,2或3)。 第二个参数 - 没有指定严重性的消息默认为4,因此在上例中系统没有看到。

因此,以下内容将更改日志,以便查看所有内核消息:

echo 8 > /proc/sys/kernel/printk

有关详细信息,请参阅(例如)http://www.makelinux.net/books/lkd2/ch18lev1sec3