Orangepi 3 全志H6 uboot的编译与烧写
环境:Ubuntu18.04 设备:OrangePi 3 16G存储卡
OrangePi_SDK : https://github.com/orangepi-xunlong/OrangePi_Build
使用OrangePi_SDK中shell脚本编译uboot
1)从githun上克隆OrangePi_Build,运行其中的Build_OrangePi.sh按提示选择板型、系统等信息之后会开始从git克隆所需要的源码。
2)为了处理github克隆30多k的速度,把https://github.com/orangepi-xunlong上相关仓库全部Fork一下,然后导入到码云中。接下来修改H6SDK_BuildEnvironment.sh:
把最后一行的ORANGEPI_GIT更改为我自己的码云链接
ORANGEPI_GIT="https://gitee.com/liu_haoqian"
重新运行Build_OrangePi.sh,此时下载速度从30K提高到了800k左右。
3)完成下载后,进入到OrangePiH6_Linux4.9或OrangePiH6_mainline中运行build.sh,在图形化界面中完成配置。
4)编译成功后,再次运行build.sh 选择“Updata uboot”就可以把编译文件烧写到SD卡中。
5)测试uboot:用USB2TTL连上板子的调试串口,可以看到uboot启动信息。
不使用OrangePi_SDK中shell脚本编译uboot
为了方便以后移殖uboot,把OrangePi_SDK中的uboot拿出来单独进行编译,不使用它提供的shell脚本。
1)把OrangePi_SDK中的uboot源码和工具链复制到新的文件夹下。
2)打开终端,cd到uboot目录下,清理工程:
make -j4 ARCH=arm CROSS_COMPILE=/home/lhq/projects/H6_uboot/toolchain/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- distclean
交叉编译器根据自己路径修改
3)编译生成.config文件
make -j4 ARCH=arm CROSS_COMPILE=/home/lhq/projects/H6_uboot/toolchain/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- orangepi_3_defconfig
4)编译uboot
make -j4 ARCH=arm CROSS_COMPILE=/home/lhq/projects/H6_uboot/toolchain/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- V=1
去调V=1可以关闭详细编译信息。
编译完成后,生成了烧写到SD卡的文件:spl/sunxi-spl.bin和u-boot.itb。
5)烧写uboot:使用以下指令将spl/sunxi-spl.bin和u-boot.itb依次烧写到SD中:
sudo dd if=spl/sunxi-spl.bin of=/dev/sdb bs=1024 seek=8
sudo dd if=u-boot.itb of=/dev/sdb bs=1024 seek=40
6)测试:将SD卡插入OrangePi3,连接调试串口,输出正常。成功从emmc启动内核。