使用efi的“grub_efi_get_variable”函数构建GRUB2模块时出错

时间:2014-10-29 01:51:47

标签: grub uefi

这是在我的Makefile.core.def中:     ...     ...     module = {       name = mymod;       common = net / mymod.c;     };     ...     ...

当我尝试构建时,我得到:     mv syminfo.lst.new syminfo.lst     cat syminfo.lst |排序| gawk -f /build/boot_project/src/grub/grub2/grub-core/genmoddep.awk> moddep.lst || (rm -f moddep.lst;退出1)     mymod中的grub_efi_get_variable未定义     make [5]:*** [moddep.lst]错误1

mymod.c has "#include <grub/efi/efi.h>" and tries to use "grub_efi_get_variable" function.  I see that in syminfo.lst
> more syminfo.lst
...
undefined mymod grub_efi_get_variable
...

有人可以了解错误以及如何修复?

谢谢,

PS我在/ build / boot_project / src / grub / grub2 / grub-core /中编辑了Makefile.core.def和Makefile.core.am以包含我的模块并在/ build / boot_project / src /中运行autogen.sh grub /重新生成Makefile.in,然后我在/ build / boot_project / src / grub /

中运行dmake

1 个答案:

答案 0 :(得分:1)

使用--with-platform = efi运行配置。无论如何,我注意到Makefile.core.am已为模块mymod启用了所有平台。所以我编辑了Makefile.core.def:module = {name = mymod; common = net / mymod.c; enable = efi};重新运行autogen.sh后,只有带有efi的平台被添加到Makefile.core.am并且构建工作正常。