繁体   English   中英

编译Linux内核时如何解决此错误

[英]How to resolve this error while compiling linux kernel

我正在尝试在我的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

我试图在Google上查找它,但在那里找不到太多线索,有人可以让我知道我应该怎么做才能解决此问题。

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

make -j8

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

回到您的问题。 可能您的内核配置中缺少某些内容。 使用make xconfig并查找xen选项。 如果不需要Xen,只需从配置中删除所有xen-thing(这也可以节省编译时间)

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

尝试找出定义此功能的位置,也许您的配置未包含所有必需的选项。 如果可能,请使用2.6.38.8内核,该错误可能已在此处修复。 无论如何,为什么不使用更新的内核版本?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM