RK356X RK3588 单独编译kernel 与烧录

RK356X RK3588 单独编译kernel 与烧录 可以快速提高我们开发与调试速度

网上可查到的方法如下:

RK3568 Android12:

1.添加kernel-4.19/makekernel.sh

#!/bin/sh
make -j24 ARCH=arm64 CC=../prebuilts/clang/host/linux-x86/clang-r416183b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r416183b/bin/ld.lld rockchip_defconfig android-11.config && make ARCH=arm64 CC=../prebuilts/clang/host/linux-x86/clang-r416183b/bin/clang LD=../prebuilts/clang/host/linux-x86/clang-r416183b/bin/ld.lld BOOT_IMG=../rockdev/Image-rk3568_s/boot.img rk3568-evb2-lp4x-v10.img -j16

2.执行后会产生kernel-4.19/boot.img可以进行烧录

3.adb reboot loader 进入loader烧录模式

4.打开瑞芯微开发工具,先点击设备分区表读取各分区

boot再去选择boot.img 选强制按地址写 再点执行即可烧录替换

这是RK3568在网上能查到的方法。

RK3588 Android12:

RK3588 网上查不到于是一直

于是研究./build.sh -CK

其中生效的是这一句

-----

cd $LOCAL_KERNEL_PATH  && make $ADDON_ARGS ARCH=$KERNEL_ARCH $KERNEL_DEFCONFIG && make $ADDON_ARGS ARCH=$KERNEL_ARCH $KERNEL_DTS.img -j$BUILD_JOBS && cd -

------

打印ADDON_ARGS KERNEL_ARCH KERNEL_DTS这些变量

1.添加kernel-4.19/makekernel.sh

make -j24 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1  rockchip_defconfig android-11.config 
&& make CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1 ARCH=arm64   BOOT_IMG=../rockdev/Image-rk3588_s/boot.img rk3588-kjd-evb4-lp4-v10.img -j16

执行报错缺少clang

重新查看build.sh

发现有设置环境变量

挪过来:

kernel-4.19/makekernel.sh

#!/bin/sh
export PATH=../prebuilts/clang/host/linux-x86/clang-r416183b/bin:$PATH

make -j24 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1  rockchip_defconfig android-11.config && make CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1 ARCH=arm64   BOOT_IMG=../rockdev/Image-rk3588_s/boot.img rk3588-kjd-evb4-lp4-v10.img -j16

执行后编译通过,boot.img烧录后也能正常启动

<think>好的,我现在需要帮用户解决如何针对RK3566芯片单独编译DTS文件并将结果刷入开发板的问题。首先,我需要回忆一下DTS编译的基本流程,以及RK3566相关的开发环境设置。 根据用户提供的引用内容,特别是引用[2]和引用[4],用户提到DTS文件在RK3566开发板中的位置和编译过程。例如,引用[2]指出DTS文件位于kernel/arch/arm64/boot/dts/rockchip/目录下,编译时可能需要处理相关的.dtsi文件。而引用[4]提到PRODUCT_KERNEL_DTS指定了主DTS文件,比如rk3568-evb1-ddr4-v10-linux.dts,这说明编译时需要指定正确的DTS文件路径。 首先,用户需要单独编译DTS文件。通常,Linux内核编译过程中,DTS会被编译成DTB文件。所以,单独编译DTS可能需要使用内核编译命令,比如make dtbs,但需要指定ARCH和CROSS_COMPILE等参数。另外,用户可能需要知道如何配置内核源码环境,确保依赖项安装正确,比如设备树编译器dtc。 接下来是刷入开发板的步骤。RK3566开发板通常使用Rockchip的刷机工具,比如rkdeveloptool或者通过Android的fastboot。但用户可能是在Buildroot或Linux环境下,所以需要确认具体的烧写方法。引用[3]提到荣品开发板使用预编译的buildroot,可能涉及分区烧写,比如将新的DTB文件替换到boot分区中。 需要注意的是,单独编译DTS生成DTB后,如何替换原有DTB文件。可能需要将生成的dtb文件通过adb push或者scp传到开发板,然后替换/boot/dtbs/目录下的对应文件,或者重新打包boot.img。不过具体步骤可能因系统而异,比如Buildroot和Android的处理方式不同。 另外,用户可能需要知道如何确认当前使用的DTS文件,可以通过/proc/device-tree/查看,或者使用命令fdtdump查看dtb内容。在编译过程中,如果出现错误,需要检查DTS语法,以及引用的dtsi文件是否正确,如引用[2]中提到的预处理问题。 可能的问题点包括:内核版本是否匹配,交叉编译工具链是否正确,DTS文件路径是否正确,以及刷入DTB后是否会导致启动失败,因此备份原DTB很重要。用户可能需要指导如何进入恢复模式或使用烧录工具救砖。 最后,生成相关问题需要考虑用户可能的后续疑问,比如如何验证DTB是否生效,常见编译错误处理,优化DTS配置的方法,以及如何参内核开发提交DTS修改等。</think>### RK3566单独编译DTS及刷入开发板步骤 #### 一、准备工作 1. **内核源码环境** - 确保已获取RK3566对应的Linux内核源码,路径中需包含设备树文件(如`tspi-rk3566-core-v10.dtsi`)[^2]; - 确认交叉编译工具链已正确配置(如`aarch64-linux-gnu-`)。 2. **定位DTS文件** - RK3566主DTS文件通常位于: `kernel/arch/arm64/boot/dts/rockchip/rk3566-xxx.dts`(xxx为开发板型号)[^4]。 --- #### 二、单独编译DTS文件 1. **编译命令** 在内核源码根目录执行: ```bash make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs ``` - 该命令仅编译设备树文件,生成`.dtb`二进制文件; - 输出路径:`kernel/arch/arm64/boot/dts/rockchip/xxx.dtb`。 2. **验证编译结果** 使用`fdtdump`工具检查DTB内容: ```bash fdtdump xxx.dtb | less ``` --- #### 三、刷入开发板 1. **替换DTB文件** - **方法1:直接替换(适用于已启动系统)** ```bash adb push xxx.dtb /boot/dtbs/ # 通过ADB传输 sync && reboot # 重启生效 ``` - **方法2:烧录分区(适用于未启动系统)** 使用Rockchip工具`rkdeveloptool`烧录到`resource`分区: ```bash rkdeveloptool write-partition resource xxx.dtb ``` 2. **强制重编译(完整固件打包)** 若需将DTB集成到固件中: ```bash ./build.sh --dts rk3566-xxx.dts # 根据SDK编译脚本调整 ``` --- #### 四、注意事项 1. **DTS依赖关系** - 主DTS文件可能包含多个`.dtsi`头文件(如`tspi-rk3566-core-v10.dtsi`)[^2],需同步修改; 2. **版本兼容性** - 确保内核版本DTS定义匹配,避免因硬件描述冲突导致启动失败; 3. **备份原DTB** - 刷写前备份原始DTB文件,以便快速恢复。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hmbbPdx_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值