1

我已经在 Ubuntu Linux 上下载并解压了 u-boot-1.1.6。我只想使用 GCC 编译源代码(不针对任何嵌入式平台的交叉编译)。

我尝试运行提供的MAKEALLmakefile,但“powerpc-linux-gcc:未找到”正在发生。

我的理解与源代码应该编译的平台无关。

在 x86 上编译需要做哪些必要的 makefile 和环境更改?

我采用了最近的代码。仍然面临一些问题

我已按照以下步骤在 x86 上编译它。

  1. make clean;
  2. make coreboot-x86_config
  3. ./MAKEALL -C x86

在第 3 步中,我观察到以下内容:

ravitiwari@RAVI-HP-Pavilion-dv2000-GJ175PA-ACJ:~/u-boot-2013.04$ make clean
ravitiwari@RAVI-HP-Pavilion-dv2000-GJ175PA-ACJ:~/u-boot-2013.04$ make coreboot-x86_config
Configuring for coreboot-x86 - Board: coreboot, Options: SYS_TEXT_BASE=0x01110000
ravitiwari@RAVI-HP-Pavilion-dv2000-GJ175PA-ACJ:~/u-boot-2013.04$ ./MAKEALL -C x86
Configuring for coreboot-x86 - Board: coreboot, Options: SYS_TEXT_BASE=0x01110000
    make[1]: ** [interrupts.o] Error 127
    make: ** [arch/x86/cpu/libx86.o] Error 2
    make[1]: ** [coreboot.o] Error 127
    make: ** [arch/x86/cpu/coreboot/libcoreboot.o] Error 2
    make[1]: ** [bootm.o] Error 127
    make: ** [arch/x86/lib/libx86.o] Error 2
    size: './u-boot': No such file
    /bin/bash: sparse: command not found
    make[1]: ** [interrupts.o] Error 127
    make: ** [arch/x86/cpu/libx86.o] Error 2
    make: ** Waiting for unfinished jobs....
    /bin/bash: sparse: command not found
    make[1]: ** [coreboot.o] Error 127
    make: ** [arch/x86/cpu/coreboot/libcoreboot.o] Error 2
    /bin/bash: sparse: command not found
    make[1]: ** [bootm.o] Error 127
    make: ** [arch/x86/lib/libx86.o] Error 2
    make: INTERNAL: Exiting with 4 jobserver tokens available; should be 3!

    --------------------- SUMMARY ----------------------------

    Boards compiled: 1
    Boards with errors: 1( coreboot-x86 )
4

1 回答 1

2

打扫干净;制作coreboot-x86_config;make 更有可能对您有用。

根据我的经验,u-boot 是为单个特定的嵌入式平台构建的。即使您的主机是 x86 也是如此,因此您已经安装了 /usr/bin/gcc。

你偶然发现的(我通过在顶层运行 ./MAKEALL 看到它)想要构建所有可用的嵌入式平台。但它仍将构建特定平台,这是 U-Boot 任务所固有的。它默认使用 powerpc 工具链 (powerpc-linux-gcc) 而不是 x86 工具链。我的建议是选择一个特定的基于 x86 的平台并构建它。您将在控制台看到各种编译输出,显示正在发生的事情。

MAKEALL 将首先为多个其他平台构建,然后丢弃构建结果。您可以执行 .MAKEALL -c x86 但这会隐藏编译输出。对于其他 CPU,您需要安装适当的交叉编译器。

于 2013-05-04T13:25:21.240 回答