Single

H618 u-boot移植记录

前言

这个系列是记录一下自己做BSP,我准备先让系统启动起来,最后再调驱动。
这几天尝试着编译了H618的安卓和Ubuntu,只是正常能用的状态,现在尝试着从u-boot开始搭建H618的镜像

配置环境

sudo apt install cmake gcc bison flex

首先是前两天有记录到,orangepi的那个仓库是从
https://github.com/orangepi-xunlong/u-boot-orangepi/tree/v2021.07-sunxi
这个地方拉取的u-boot,所以也从这里获取镜像,(如果这里一直下不下来,可以酌情添加参数 -c http.proxy=”http://ip:port”,但是具体怎么用需要自己去查)

mkdir -p Qubot-H618-BSP
cd Qubot-H618-BSP
git clone -b v2021.07-sunxi https://github.com/orangepi-xunlong/u-boot-orangepi u-boot-sunxi

根据opi官方的wiki,编译H618 u-boot源码使用的交叉编译工具链为:
gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu
所以下载编译链工具:

mkdir toolchains
cd toolchains
wget https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu.tar.xz
tar -xf gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu.tar.xz
rm gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu.tar.xz

添加环境变量

nano ~/.bashrc

在最后一行添加(这里路径要根据你的实际情况改):

export PATH=$PATH:/home/pi/Qubot-H618-BSP/toolchains/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin

因为ARMv7和ARMv8支持ATF启动,所以还需要获得ATF源码包:

git clone https://github.com/ARM-software/arm-trusted-firmware.git

进入目录编译

cd arm-trusted-firmware
make CROSS_COMPILE=aarch64-none-linux-gnu- PLAT=sun50i_h616 DEBUG=1 bl31

编译成功

配置u-boot

接下来就开始配置u-boot,既然要做我们自己的源码,那就需要新建自己的defconfig文件和dts文件

cd ../u-boot-sunxi
cp configs/orangepi_zero3_defconfig configs/qubot_m2h_defconfig

可以看到,qubot_m2h_defconfig里面有一项:

CONFIG_DEFAULT_DEVICE_TREE="sun50i-h616-orangepi-zero3"

将它改成sun50i-h616-qubot-m2h

CONFIG_DEFAULT_DEVICE_TREE="sun50i-h616-qubot-m2h"

vscode里面ctrl+p,可以找到sun50i-h616-orangepi-zero3文件在~/Qubot-H618-BSP/u-boot-sunxi/arch/arm/dts/目录下面

复制一份副本,名字改成sun50i-h616-qubot-m2h.dts

cp ~/BPI-H618-BSP/u-boot-sunxi/arch/arm/dts/sun50i-h616-orangepi-zero3.dts ~/BPI-H618-BSP/u-boot-sunxi/arch/arm/dts/sun50i-h616-qubot-m2h.dts

然后把里面的设备名字型号等字样改成你自己的,保存

将同目录的Makefile文件中的CONFIG_MACH_SUN50I_H616部分删掉(红框中的)

加上要生成的dtb

sun50i-h618-qubot-m2h.dtb

编译u-boot

配置版型

make CROSS_COMPILE=aarch64-none-linux-gnu-  BL31=~/Qubot-H618-BSP/arm-trusted-firmware/build/sun50i_h616/debug/bl31.bin qubot_m2h_defconfig

编译

make CROSS_COMPILE=aarch64-none-linux-gnu-  BL31=~/Qubot-H618-BSP/arm-trusted-firmware/build/sun50i_h616/debug/bl31.bin -j12

编译成功,可以看到u-boot目录下有uboot等文件

最后dd进sd卡里面

sudo dd if=Qubot-H618-BSP/u-boot-sunxi/u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1K seek=8

插到板子上面,可以看到日期是对的,8月2号,由于u-boot后面没有东西,就启动失败了

编译结束,剩下的就是kernel的编译了

参考
https://blog.csdn.net/m0_54251560/article/details/131586527

暂无评论

发表评论