构建适用于全志H616/H618芯片的Linux
本文最后更新于:2025年8月24日 下午
前言
网上对于全志 H616/H618 芯片构建Linux系统的文章太少了,于是打算摸索其中的方法,经过多次失败与漫长测试后,从中总结出了一些知识,于是写下这篇文章进行记录,仅供参考。
本文章使用Ubuntu 22.04.5系统进行构建,其他系统请查看文档:Toolchain。
手动构建各分区文件
交叉编译工具链
使用apt源的交叉编译工具链:
对于32位架构:
1 | |
对于64位架构:
1 | |
使用Linaro提供的交叉编译工具链:
下载所需工具链:Builds & Downloads
解压交叉编译工具链到已知路径并配置好环境变量:
1 | |
构建U-Boot
安装以下工具:
1
sudo apt-get install -y swig python3-dev device-tree-compiler构建ATF
对于64位架构的设备在构建U-Boot之前需要先构建arm-trusted-firmware(简称 ATF)。
1
git clone https://github.com/ARM-software/arm-trusted-firmware.git对于H616 / H618 芯片使用以下命令编译ATF:
1
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_h616 DEBUG=1 bl31sun50i_h616为全志 H616&H618 芯片代号。
Built /home/dongxun/Desktop/H618/linux-sunxi/trusted-firmware-a/build/sun50i_h616/debug/bl31.bin successfully
可以在ATF中使用以下命令查看支持哪些平台:
1
find plat/allwinner -name platform.mk1
2
3
4plat/allwinner/sun50i_a64/platform.mk
plat/allwinner/sun50i_h6/platform.mk
plat/allwinner/sun50i_r329/platform.mk
plat/allwinner/sun50i_h616/platform.mk全志各芯片代号:Allwinner ARMv8 SoCs
SoC TF-A build target A64 sun50i_a64 H5 sun50i_a64 H6 sun50i_h6 H313 sun50i_h616 H616 sun50i_h616 T507 sun50i_h616 R329 sun50i_r329 指定BL31文件路径:
1
export BL31=$(pwd)/build/sun50i_a64/debug/bl31.bin构建u-boot
克隆u-boot项目:
1
git clone https://github.com/u-boot/u-boot.git使用以下命令获取所有标签:
1
git tag -l切换到其他版本:
1
git checkout v2024.01配置主板defconfig文件,我这里以修改orangepi_zero3_defconfig为例,文件存放路径:
u-boot/configs/orangepi_zero3_defconfig由于我的主板内存(DDR3)与香橙派Zero3(LPDDR4)存在差异,需要修改内存配置部分:
1
2
3
4
5
6
7
8
9
10
11
12
13
14...
CONFIG_DRAM_SUN50I_H616_DX_ODT=0x03030303
CONFIG_DRAM_SUN50I_H616_DX_DRI=0x0e0e0e0e
CONFIG_DRAM_SUN50I_H616_CA_DRI=0x1f12
CONFIG_DRAM_SUN50I_H616_TPR0=0xc0001002
CONFIG_DRAM_SUN50I_H616_TPR10=0x2f1107
CONFIG_DRAM_SUN50I_H616_TPR11=0xddddcccc
CONFIG_DRAM_SUN50I_H616_TPR12=0xeddc7564
CONFIG_MACH_SUN50I_H616=y
CONFIG_SUNXI_DRAM_H616_DDR3_1333=y
CONFIG_DRAM_CLK=792
...
CONFIG_AXP_DCDC3_VOLT=1360
...内存时序测试
主板defconfig文件中的内存时序参数可以使用DragonHD工具对主板进行测试得出,测试时主板需要进入FEI模式,并使用TTL串口线接入主板上的调试串口,内存测试信息会显示在串口日志中,如下图:

对于32位架构(armhf)使用以下命令构建u-boot:
1
make CROSS_COMPILE=arm-linux-gnueabihf- <board_name>_defconfig对于64位架构(arm64)使用以下命令构建u-boot:
1
make CROSS_COMPILE=aarch64-linux-gnu- <board_name>_defconfig
构建Kernel
暂未探索…
使用Build工具
针对全志H616的Armbian-Build项目:
bigtreetech build:适用于大树科技出品的全志H616 CB1开发板。
其他适用于全志H616的Build项目:
YuzukiChameleon:适用于变色龙全志H616开发板。
Blueberry:适用于蓝莓派全志H616开发板。
针对全志H618的Armbian-Build项目:
NickAlilovic build:适用于全志H616/H618等多款芯片的电视盒子主板。
其他适用于全志H618的Build项目:
orangepi-build:适用于香橙派其下多款开发板。
aw-image-build:适用于野火鲁班猫全志系列开发板。
walnutpi-build:适用于核桃派1代开发板。
BPI-M4B-bsp:适用于香蕉派M4开发板。