0

我正在尝试在我的 Ubuntu 机器上编译 Linux 内核源代码 2.6.38.4,但经过将近一小时的过程低于给定错误

    VDSOSYM arch/x86/vdso/vdso32-int80-syms.lds
    VDSOSYM arch/x86/vdso/vdso32-sysenter-syms.lds
    VDSOSYM arch/x86/vdso/vdso32-syms.lds
     LD      arch/x86/vdso/built-in.o
     LD      arch/x86/built-in.o
     LD      vmlinux.o
     MODPOST vmlinux.o
     WARNING: modpost: Found 7 section mismatch(es).
     To see full details build your kernel with:
     'make CONFIG_DEBUG_SECTION_MISMATCH=y'
      GEN     .version
      CHK     include/generated/compile.h
      UPD     include/generated/compile.h
      CC      init/version.o
      LD      init/built-in.o
      LD      .tmp_vmlinux1
      arch/x86/built-in.o: In function `xen_hvm_post_suspend':
      /home/amit/Linux_Kernel_Study/linux-2.6.38.4/arch/x86/xen/suspend.c:34:   undefined   reference to `xen_unplug_emulated_devices'
      make: *** [.tmp_vmlinux1] Error 1

我试图在谷歌上查看,但在那里找不到太多线索,谁能告诉我应该怎么做才能解决这个问题。

4

2 回答 2

1

一小时编译内核很奇怪(或者你正在旧硬件上编译)。编译时尝试使用-j选项:

make -j8

它运行多个进程来编译您的源代码。

回到你的问题。可能您在内核配置中遗漏了一些东西。使用make xconfig并查找 xen 选项。如果您不需要 Xen,只需从配置中删除所有 xen-things(这也将在编译期间节省时间)

于 2013-03-19T16:41:30.527 回答
0

这是一个链接器错误。函数 xen_hvm_post_suspend 调用 xen_unplug_emulated_devices 但链接器在目标文件中找不到它。

试着找出这个函数是在哪里定义的,也许你的配置没有包含所有必要的选项。如果可能,请使用 2.6.38.8 内核,也许该错误已修复。无论如何,您为什么不使用更新的内核版本?

于 2013-03-20T11:16:10.527 回答