【问题标题】:Missing headers for kernel in bzImage loaded on qemuqemu 上加载的 bzImage 中缺少内核标头
【发布时间】:2015-06-15 06:43:38
【问题描述】:

我正在尝试在 qemu 模拟器上加载的 linux 内核 bzImage 上编译内核版本 3.2.0 的内核模块,但是我收到以下错误: /lib/modules/3.2.0/build no such file or directory。我试图在网上查找解决方案,但没有任何具体的解决方案可以解决通过 qemu 加载的内核映像的问题。我发出的在 qemu 上加载 bzImage 的命令是 qemu/qemu-system-x86_64 -m 2G -kernel ../linuxkernel/arch/x86/boot/bzImage -hda ../../sid.ext2 -append "root=/dev/sda"

【问题讨论】:

    标签: linux-kernel kernel header-files kernel-module qemu


    【解决方案1】:

    bzImage 仅包含内核映像,不包含构建模块所需的文件。

    你应该:

    1. 找到与你的内核相对应的内核头文件(构建了一些文件),并将它们安装到/lib/modules/3.2.0/build指向的目录。
    2. 或者手动从源代码构建内核。在这种情况下,引用 /lib/modules/<kernel-version>/build 将自动指向您编译的源文件。

    【讨论】:

    • 所以基本上你是说我应该用模块单独编译一个内核版本 3.2.0,然后简单地将 /lib/modules/3.2.0/build 的内容复制到我的 qemu 磁盘映像上的相同位置?
    • 您应该编译与bzImage 中的配置完全相同的内核源代码。否则,您的模块将无法正常工作。因为通常很难找到相同的来源,所以最好找到与您的图像对应的现成的头文件。
    猜你喜欢
    • 2019-06-20
    • 1970-01-01
    • 2011-06-05
    • 2015-07-03
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    相关资源
    最近更新 更多