You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Buildroot重新编译自定义DTB及Orange Pi Zero 3启动配置问题

问题解决指南:Buildroot自定义DTB配置与编译问题

1. 解决make不重新编译DTB的问题

Buildroot默认依赖检测不会自动识别设备树文件的修改,要触发DTB重新编译,直接调用内核专属编译目标即可:

make linux-rebuild

执行完成后再运行make,新编译的DTB就会同步到文件系统中。

2. 让U-Boot加载自定义DTB

方法一:修改U-Boot配置

进入Buildroot的menuconfig,依次选择Bootloaders -> U-Boot,在U-Boot custom make options中添加:

CONFIG_DEFAULT_FDT_FILE="sun50i-h616-orangepi-zero3-custom.dtb"

保存配置后重新编译U-Boot:

make uboot-rebuild

方法二:修改启动脚本

如果你的Orange Pi Zero 3使用extlinux启动配置,找到Buildroot板级配置目录下的extlinux.conf(路径通常为board/orangepi/orangepi-zero3/extlinux.conf),修改FDT行内容:

FDT /boot/allwinner/sun50i-h616-orangepi-zero3-custom.dtb

修改完成后执行make更新文件系统。

3. 快速更新DTB到文件系统

仅修改DTB时,无需全量编译,按以下步骤操作:

  1. 单独编译DTB:进入Buildroot输出的内核源码目录(默认路径为output/build/linux-<内核版本号>/),执行:
make ARCH=arm64 sun50i-h616-orangepi-zero3-custom.dtb
  1. 复制编译好的DTB到文件系统目录:
cp output/build/linux-<内核版本号>/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero3-custom.dtb output/target/boot/allwinner/
  1. 重新生成根文件系统镜像:
make target-finalize

注意:替换命令中的<内核版本号>为你实际使用的内核版本;确保自定义DTB文件中已正确引入原设备树(如#include "sun50i-h616-orangepi-zero3.dts"),避免编译报错。

内容的提问来源于stack exchange,提问作者Anton A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 20:39:59