在瑞芯微SDK源码上构建自己的356x编译固件

整体配置

路径:sdk源码/device/rockchip/rk356x/
如下图:
在瑞芯微SDK源码上构建自己的356x编译固件_第1张图片
有个BoardConfig-rk3568-evb1-ddr4-v10.mk是rk3568平台下的基础配置文件
在瑞芯微SDK源码上构建自己的356x编译固件_第2张图片
这个文件可以配置uboot、kernel内核默认的defconfig,需要编译的设备树
dts,buildroot的默认配置文件,还有一下镜像的分区列表parameter-buildroot-fit.txt

buildroot的构建

buildroot默认的defconfig路径:sdk/buildroot/configs/
可以看到一个文件名为rockchip_rk3568_defconfig的默认配置文件。
我们可以先copy一份,改为自己板子的专属名称。
如我改为:rockchip_rk3568_hyb_defconfig
默认内容如下(包含了文件系统很多模块和默认的选项):
在瑞芯微SDK源码上构建自己的356x编译固件_第3张图片
如果想在这个基础上添加新的选项的话,建议在当前目录下的rockchip文件夹下新建新的模块化文件,可以命名为xxxx.config

编译buildroot时出现的报错

在瑞芯微SDK源码上构建自己的356x编译固件_第4张图片
在瑞芯微SDK源码上构建自己的356x编译固件_第5张图片
这些报错大多数都是下载失败导致的,我们可以在网上手动下载fribidi-1.0.9.tar.xz这个压缩包,然后将压缩包放在sdl源码包/buildroot/dl路径下
在瑞芯微SDK源码上构建自己的356x编译固件_第6张图片

在瑞芯微SDK源码上构建自己的356x编译固件_第7张图片

kernel配置

默认的内核配置:sdk源码/kernel/arch/arm664/configs/rockchip_rk3568_defconfig
为了定制自己的项目,可以先将该配置文件拷贝一份出来,命名为rockchip_rk3568_hyb_defconfig
设备树也需要配置一个自己项目独有的dts,新建一个文件名为:hyb_rk3568.dts

##hyb-rk35688.dts
/*加上其他的文件*/
#include "rk3568-evb1-ddr4-v10.dtsi"
#include "rk3568-linux.dtsi"

报错信息如下:没有ramdisk这个文件。
在瑞芯微SDK源码上构建自己的356x编译固件_第8张图片
在旧的SDK编译的时候也没有这个报错信息,然后通过编译脚本查找:build.sh —> device/rockchip/common/mk-fitimage.sh —>提及到device/rockchip/.BoardConfig.mk–>这个文件是软链接到我们一开始创建的device/rockchip/rk356x/hyb-rk356x.mk
在瑞芯微SDK源码上构建自己的356x编译固件_第9张图片

uboot

使用默认的rk3568-evb.dts

全局编译

选择你要编译的目标项 《3》

#./build.sh lunch
processing option: lunch

You're building on Linux
Launch menu...pick a combo:

0. default BoardConfig.mk
1. BoardConfig-rk3568-evb1-ddr4-v10.mk
2. BoardConfig.mk
3. hyb-rk3568-buildroot.mk

# 单独编译uboot、kernel、buildroot
#./build.sh uboot
#./build.sh kernel
#./build.sh buildroot

#全部编译
#./build.sh

全部编译都没有报错的话,SDK源码/rockdev/目录下会出现一个镜像img。尝试使用RKDevTool.EXE烧写工具把镜像烧入开发板里。
在瑞芯微SDK源码上构建自己的356x编译固件_第10张图片
如果烧写成功后,能正常启动到文件系统的终端上,其实已经离成功不远了,剩下的就是通过自己的需求去修改kernel、buildroot。

遇到的问题

由于我需要更换kernel的logo,然后更换完后,发现生成不了镜像img。是因为我生成的boot.img的镜像大小大于我在分区列表parameter-buildroot-fit.txtwen文件设置的大小。

CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00010000@0x00008000(boot),
0x00017000@0x00018000(recovery),0x00010000@0x0002f000(backup),0x00da0000@0x0003f000(rootfs),0x00040000@0x00ddf000(oem),
-@0x00e1f000(userdata:grow)

####0x00010000@0x00008000(boot)
		>>>>>>0x00010000是分区大小   65536x512/1024/1024= 32MB
		>>>>>>0x00008000是偏移地址

你可能感兴趣的:(瑞芯微RK驱动调试,linux)