(一)下载需要的库
在linux命令行中依次执行下列五条命令:
sudo apt-get update
sudo apt-get install libssl-dev
sudo apt-get install device-tree-compiler
sudo apt-get install u-boot-tools
sudo apt-get install libncurses5-dev
(二)从官网下载u-boot源码包
在https://github.com/Xilinx/u-boot-xlnx下载UBOOT源码压缩包u-boot-xlnx-master.zip,并解压得到类似下图的目录。
(三)修改u-boot文件使其挂载Linaro文件系统
由于我使用的是Linaro桌面版文件系统,而这里的u-boot默认挂载的是uramdisk文件系统,需要修改对应的文件:
文件目录---- u-boot-xlnx-master/include/configs/zynq-common.h---- 在文件中找到sdboot项并修改
修改前:
修改后:
(四)回到u-boot-xlnx-master目录下,执行命令进行配置:
make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- zynq_zed_config
之后执行make命令:
make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-
在执行这一步之后,u-boot可能会报错:
dtc: invalid option -- 'i'
Usage:
dtc [options] <input file>
。。。。。。
错误信息省略
。。。。。。
解决办法:
使用dtc -v 命令查看dtc版本,如果dtc版本较低,将其升级为最新版本。
dtc下载地址:
32位:https://launchpad.net/ubuntu/xenial/i386/device-tree-compiler/1.4.0+dfsg-2
64位:https://launchpad.net/ubuntu/xenial/amd64/device-tree-compiler/1.4.0+dfsg-2
下载对应.dep文件,进行目录内使用dpkg -i device-tree-compiler_1.4.0+dfsg-2_i386.deb 进行安装。
安装后重新编译即可。编译完成后即可看到编译好的u-boot文件,将其拷贝出来并将其文件名改为u-boot.elf 备用。