MBOX-3399M编译DTS
从分区查看→提取原DTB→编译新DTB→替换DTB 完整成功步骤
一、基础准备:查看分区信息(确认DTB目标分区)
adb shell ls -l /dev/block/by-name/
- 作用:确认开发板DTB对应的分区(如示例中的
mmcblk2p6),避免写入错误分区。
二、提取开发板原DTB(备份/参考用)
- 开发板端导出原DTB:
adb shell "dd if=/sys/firmware/fdt of=/data/local/tmp/rk3399.dtb"
- 作用:将当前运行的DTB文件导出到开发板临时目录。
- 电脑端拉取原DTB:
adb pull /data/local/tmp/rk3399.dtb "C:\Users\Byron\Downloads\MBOX-3399M\"
- 作用:将开发板上的原DTB拉取到电脑本地,用于备份或修改参考。
三、编译新DTB文件(按需选择编译方式)
dtc -I dtb -O dts rk3399.dtb -o rk3399.dts
- 说明:
dtc是设备树编译工具(需提前安装,内核源码目录下也可找到:scripts/dtc/dtc);-I dtb:输入格式为DTB文件;-O dts:输出格式为DTS文件;- 执行后得到可编辑的
rk3399.dts文件,可在该文件中修改硬件配置(如外设参数、GPIO定义等)。
# 查看dtb的blob版本(对应编译时的dtc版本)
dtc -I dtb -O dts -v rk3399.dtb | grep -i "version"
部分旧版本软件源包含dtc 1.5.0,可指定版本安装:
# 1. 查看源中可用的dtc版本
apt-cache show device-tree-compiler | grep "Version"
# 2. 安装1.5.0版本(若源中存在)
apt install -y device-tree-compiler=1.5.0
若需对遥控器用户码进行适配调整,可参考以下专属配置指南:
通过DTS配置实现遥控器用户码的定制化适配
方式1:单独编译新DTB(仅更新设备树)
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- rockchip/rk3399-smdt.dtb -j$(nproc)
- 作用:编译自定义修改后的
rk3399-smdt.dtb文件,输出路径为arch/arm64/boot/dts/rockchip/。
方式2:同时编译内核镜像+新DTB(内核+设备树同步更新)
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image rockchip/rk3399-smdt.dtb -j$(nproc)
- 作用:一次性编译内核镜像(Image)和新DTB,适合内核与设备树需同步适配的场景。
四、替换开发板DTB(核心步骤)
- 电脑端推送新DTB到开发板:
adb push "C:\Users\Byron\Desktop\fsdownload\rk3399-smdt.dtb" /tmp/
- 作用:将电脑本地编译好的新DTB推送到开发板
/tmp临时目录(权限友好,适合后续写入)。
- 开发板端写入新DTB到目标分区:
adb shell "su -c 'dd if=/tmp/rk3399-smdt.dtb of=/dev/block/mmcblk2p6 && sync'"
- 作用:以root权限将新DTB写入目标分区,
sync确保数据完全刷入存储,避免写入不完整。

浙公网安备 33010602011771号