我尝试编译不做任何更改的内核,但它返回错误:
arch/x86/boot/compressed/head_32.o: In function `efi32_config':
(.data+0x58): undefined reference to `efi_call_phys'
make[3]: *** [arch/x86/boot/compressed/vmlinux] Error 1
make[2]: *** [arch/x86/boot/compressed/vmlinux] Error 2
make[1]: *** [bzImage] Error 2
答案1
解答:修改linux-source-3.13.0/arch/x86/boot/compressed/head_32.S文件内容:
.data
efi32_config:
.fill 11,8,0
.long efi_call_phys
.long 0
.byte 0
如下:
#ifdef CONFIG_EFI_STUB
.data
efi32_config:
.fill 11,8,0
.long efi_call_phys
.long 0
.byte 0
#endif
您还可以在以下网址找到解决方案: https://kernel.opensuse.org/cgit/kernel/commit/?h=stable&id=3db4cafdfd05717dc939780134e53023a3c1f15f