在x86上编译U-BOOT引导加载程序

时间:2013-05-04 11:29:53

标签: compilation embedded cross-compiling embedded-linux u-boot

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

我尝试运行提供的MAKEALL makefile,但“powerpc-linux-gcc:Not Found”正在发生。

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

在x86上进行编译需要做些什么必要的makefile和环境更改?

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

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

  1. make clean;
  2. make coreboot-x86_config
  3. ./MAKEALL -C x86
  4. 在第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 )
    

1 个答案:

答案 0 :(得分:2)

清洁; make coreboot-x86_config;使 更有可能对你有用。

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

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

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