2013-03-19 161 views
0

我試圖編譯Linux內核源2.6.38.4我的Ubuntu計算機上,但快一小時了過程後得到如下錯誤解決此錯誤如何在編譯Linux內核

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 

我想看看它谷歌,但無法找到多少線索,有誰可以讓我知道我該怎麼做才能解決這個問題。

回答

1

一小時編譯內核很奇怪(或者你正在編譯舊的硬件)。嘗試使用-j選擇,而編譯:

make -j8 

它可以運行多個進程來編譯你的源代碼。

回到你的問題。可能你在你的內核配置中缺少一些東西。使用make xconfig並查找xen選項。如果你不需要Xen,只需從配置中刪除所有xen-things(這也將節省編譯期間的時間)

+0

感謝費德里科,會試試看。 – 2013-03-19 17:13:42

0

這是一個鏈接器錯誤。 函數xen_hvm_post_suspend調用xen_unplug_emulated_devices,但鏈接程序在對象文件中找不到它。

試着找出這個函數在哪裏定義,也許你的配置不包括所有必要的選項。 如果可能的話使用2.6.38.8內核,也許bug修復了。 無論如何,你爲什麼不使用更新的內核版本?