使用 coreboot 和 TianoCore 构建 FW 映像失败,并显示“错误:please_install uuid-dev”

使用 coreboot 和 TianoCore 构建 FW 映像失败,并显示“错误:please_install uuid-dev”

我正在尝试使用 coreboot + TianoCore 为 Intel CPU 主板构建固件映像(我以前没有这样做过,但我相信 coreboot + TianoCore 应该是使用开源工具执行此操作的正确方法)。我正在使用 Ubuntu 16.04.7 LTS。

我正在遵循官方的 coreboot 教程:https://doc.coreboot.org/tutorial/part1.html

我已经成功构建了教程中给出的 coreinfo 有效负载,但是当我尝试构建 TianoCore 有效负载(在步骤 4 中)时,出现以下错误:

ubuntu@ubuntu-System-Product-Name:~/coreboot$ make -C payloads/external/tianocore
make: Entering directory '/home/ubuntu/coreboot/payloads/external/tianocore'
test -d /home/ubuntu/coreboot/payloads/external/tianocore/tianocore && (cd /home/ubuntu/coreboot/payloads/external/tianocore/tianocore; rm -rf Build; rm -f Conf/tools_def.txt) || exit 0
cd  /home/ubuntu/coreboot/payloads/external/tianocore/tianocore; \
    echo "    Fetching new commits from the Tianocore repo"; \
    git fetch --multiple origin upstream 2>/dev/null; \
    if ! git rev-parse --verify -q origin/uefipayload_202107 >/dev/null; then \
        echo "    origin/uefipayload_202107 is not a valid git reference"; \
        exit 1; \
    fi; \
    if git status --ignore-submodules=dirty | grep -qv clean; then \
        echo "    Checking out Tianocore revision origin/uefipayload_202107"; \
        git checkout --detach origin/uefipayload_202107; \
    else \
        echo "    Working directory not clean; will not overwrite"; \
    fi; \
    git submodule update --init
    Fetching new commits from the Tianocore repo
Fetching origin
Fetching upstream
    Checking out Tianocore revision origin/uefipayload_202107
HEAD is now at f7fe27d... Add build option to disable Above 4G Decode
echo "Checking uuid-dev..."
Checking uuid-dev...
echo "#include <uuid/uuid.h>" > libtest.c
echo "int main(int argc, char **argv) { (void) argc; (void) argv; return 0; }" >> libtest.c
libtest.c -o libtest >/dev/null 2>&1 && echo " found uuid-dev." || \
    ( echo " Not found."; echo "ERROR: please_install uuid-dev (libuuid-devel)"; exit 1 )
 Not found.
ERROR: please_install uuid-dev (libuuid-devel)
Makefile:71: recipe for target 'checktools' failed
make: *** [checktools] Error 1
make: Leaving directory '/home/ubuntu/coreboot/payloads/external/tianocore'

它说没有安装 uuid-dev。但是我已经使用 安装了 uuid-dev sudo apt-get install uuid-dev,如下所示:

ubuntu@ubuntu-System-Product-Name:~/coreboot$ apt-cache search libuuid
libuuid-perl - Perl extension for using UUID interfaces as defined in e2fsprogs
libuuid1 - Universally Unique ID library
uuid-dev - Universally Unique ID library - headers and static libraries
uuid-runtime - runtime components for the Universally Unique ID library
libdata-uuid-libuuid-perl - uuid.h based UUID generation module
libuuid-tiny-perl - pure Perl module to generate v1, v3, v4, and v5 UUIDs
libuuidm-ocaml-dev - Universally unique identifiers for OCaml
php-uuid - PHP UUID extension

它确认 uuid-dev 已安装,我尝试使用不同的标志、升级等重新安装它几次,但错误并没有消失。此错误已被观察到https://www.reddit.com/r/coreboot/comments/kigu2z/uuiddev_libuuiddev_tianocore/但没有关于如何消除错误的答案。

那么我该如何解决这个错误?

更新:

A) 运行dpkg -s uuid-dev包返回以下状态:

uuid-dev Status: install ok installed

B) 运行apt list --installed返回以下状态:

uuid-dev/xenial-updates,now 2.27.1-6ubuntu3.10 amd64 [installed] 

相关内容