uboot的编译(基于正点原子ALPHA开发板)
1.首先进入uboot根目录
2.在Makefile中未设置架构(ARCH)和交叉编译器(CROSS_COMPILE)的情况下
指定ARCH和CROSS_COMPILE参数传给Makefile,分别使用下列命令编译uboot:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
(1)清理工程
(2)使用默认配置文件mx6ull_14x14_ddr512_emmc_defconfig在uboot根目录生成.config文件
(3)通过Makefile和.config文件编译uboot
3.在Makefile中设置架构(ARCH)和交叉编译器(CROSS_COMPILE)的情况下
打开uboot根目录的Makefile,在uboot版本信息后添加ARCH和CROSS_COMPILE:
#
# SPDX-License-Identifier: GPL-2.0+
#
VERSION = 2016
PATCHLEVEL = 03
SUBLEVEL =
EXTRAVERSION =
NAME =
ARCH = arm
CROSS_COMPILE = arm-linux-gnueabihf-
# *DOCUMENTATION*
这样编译时就不用传ARCH和CROSS_COMPILE参数给Makefile了,直接分别使用下列命令编译uboot:
make distclean
make mx6ull_14x14_ddr512_emmc_defconfig
make V=1 -j12
(1)清理工程
(2)使用默认配置文件mx6ull_14x14_ddr512_emmc_defconfig在uboot根目录生成.config文件
(3)通过Makefile和.config文件编译uboot
4.将编译命令写在shell脚本中,省时省力:
创建脚本
vim make.sh
输入:
#!/bin/bash
make distclean
make mx6ull_14x14_ddr512_emmc_defconfig
make V=1 -j12
保存退出
:wq
给make.sh添加可执行权限:
chmod +x make.sh
输入:
./make.sh
即可编译uboot了
==================================================
执行make mx6ull_14x14_ddr512_emmc_defconfig时会输出:
qiujun@qiujun:~/linux/uboot/alpha$ make mx6ull_14x14_ddr512_emmc_defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
#
# configuration written to .config
#
可见.config文件是由xxx_defconfig文件和scripts/下的一系列文件配置成的