0.准备
有一个Exynos 4412的开发板,正好趁着放假,想移植一个新的uboot和一个新的linux内核,说干就干,顺便把遇到的问题记录下来
uboot版本为2020.01,下载地址:
ftp://ftp.denx.de/pub/u-boot/
kernel版本为5.4.9,下载地址:
https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/
交叉编译器下载地址:
https://www.linaro.org/downloads/
1.交叉编译器的安装
在/usr/local/下面创建一个arm的文件夹,把交叉编译工具解压到arm文件夹下。
将该路径添加到环境变量中。
执行source命令
查看交叉编译器是否安装成功
查看交叉编译器版本
2.编译uboot
解压uboot源码,在Makefile文件中修改如下内容
首先配置一个config,确认编译环境
编译完成,编译环境没有问题,下面进行Exynos 4412开发板相关的配置,编译Exynos 4412开发板用的uboot
3.uboot的配置
创建板级目录和板级文件
修改目录下的相应文件
修改Makefile文件
修改Kconfig文件
在configs文件夹下创建defconfig文件
修改其内容
在arch/arm/mach-exynos/Kconfig文件中添加如下内容
4.添加设备树
在arch/arm/dts下添加与开发板对应的设备树文件
5.添加三星加密方式
将CodeSign4SecureBoot文件夹和sdfuse_q文件夹拷贝到uboot目录下
修改Makefile文件,支持sdfuse_q编译,添加如下内容
- 注意:如果执行了make distclean 则需要重新拷贝CodeSign4SecureBoot
编写执行脚本
执行脚本编译
uboot编译完成,后面进行相关驱动的移植。
来源:oschina
链接:https://my.oschina.net/u/4060728/blog/3178555