1 初次编译
uboot的编译可分为三个步骤:安装必要工具、配置、编译
一、 安装必要工具
在进行开发之前,还需要一些其他的必要库,我们使用以下命令逐一安装:
elf@ubuntu:~$ sudo apt-get install build-essential
elf@ubuntu:~$ sudo apt-get install libncurses*
elf@ubuntu:~$ sudo apt-get install lzop
elf@ubuntu:~$ sudo apt-get install net-tools
二、 uboot配置
uboot配置是针对不同的功能来选择不同的配置项。uboot功能有很多,我们在开发过程中可能需要根据板卡的不同、平台的不同或者项目需求差异对uboot功能支持进行调整,所以就可以通过uboot配置对uboot系统进行功能增加或裁剪。这些功能配置项存储在configs/目录下的配置文件(config_file)中,其中不同的配置文件中存储着不同的功能配置组合,对应不同的板卡、平台或项目工程。我们使用make <config_file>命令,就可根据config_file配置项在根目录下生成或者更新.config文件,在编译时,编译器根据编译规则按照.config中的配置进行编译,具体uboot怎么配置,我们在下面章节有讲解,本章节主要演示编译流程,ELF1开发板的配置文件为imx6ull_elf1_defconfig。
三、 编译
如果曾经编译过,在编译之前可以使用make clean命令清除一下中间文件,也可以使用make distclean进行清除,make clean清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件,而make distclean会清除上次编译生成的所有文件,包括uboot的配置文件.config,所以如果使用make distclean进行清除,就需要在重新编译之前,再次执行make imx6ull_elf1_defconfig生成.config。
这里我们第一次编译,执行如下命令生成配置文件.config:
elf@ubuntu:~/work/uboot-imx-2016.03-elf1$ make imx6ull_elf1_defconfig
直接使用make命令编译即可:
. /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
elf@ubuntu:~/work/uboot-imx-2016.03-elf1$ make -j4
其中-j4表示使用4个处理器核心(我们安装虚拟机时,配置的处理器核心数就是4,所以这里最大也只能用4个核心)进行编译,这样编译会快一些。
编译完成之后在uboot根目录生成u-boot.imx文件,即是我们最终要烧写的uboot镜像文件。
编译步骤很简单,我们还可以进一步简化编译操作,就是将这些编译步骤放到一个shell脚本中,直接执行脚本进行编译。我们直接使用建立好的build.sh进行编译即可。编译之前,我们看一下脚本内容:
其中第2行:CPU是一个变量,通过export CPU='grep -c processor /proc/cpuinfo'
获取到当前机器的处理器核心数量赋值给变量CPU,在最后第6行make -j${CPUS}编译时引用此变量。
第3行:是配置交叉编译环境,但是注意,在脚本中配置的交叉编译环境只能作用于此脚本运行期间。而在我们的终端界面命令行配置的交叉编译环境则会一直作用在整个终端工作周期内,只要不关闭终端界面或者更换用户此环境就有效。
第4行:清除上次编译生成的所有文件。
第5行:配置开发板。
第6行:开始编译。
执行脚本进行编译:
elf@ubuntu:~/work/uboot-imx-2016.03-elf1$ ./build.sh
|