我已经下载并解压了Ubuntu Linux上的u-boot-1.1.6。我只是想使用GCC编译源代码(不针对任何嵌入式平台的交叉编译)。
我尝试运行提供的MAKEALL
makefile,但"powerpc-linux-gcc: Not Found"正在发生。
我的理解是无论什么平台的源代码都应该编译。
在x86上编译需要做哪些必要的makefile和环境更改?
我已经拿了最近的代码。仍然面临一些问题
我按照以下步骤在x86上编译它。
-
make clean;
-
make coreboot-x86_config
-
./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 )
make clean;使coreboot-x86_config;使更有可能对你有用。
根据我的经验,u-boot是为单个特定的嵌入式平台构建的。甚至当您的主机是x86时也是如此,因此您已经安装了/usr/bin/gcc。你偶然发现的东西(我通过在顶层运行./MAKEALL看到它)想要构建所有可用的嵌入式平台。但它仍将构建特定的平台,这是U-Boot任务固有的。它默认使用powerpc工具链(powerpc-linux-gcc)而不是x86工具链。我的建议是选择一个特定的基于x86的平台,然后构建它。您将在控制台中看到各种编译输出,显示发生了什么。
MAKEALL将首先为多个其他平台构建,然后丢弃构建结果。你可以这样做.MAKEALL -c x86但这隐藏了编译输出。对于其他CPU,您需要安装适当的交叉编译器。