当前位置:首页>Linux>RK3506 Linux系统开发(五):RK3506 Linux 编译和烧写

RK3506 Linux系统开发(五):RK3506 Linux 编译和烧写

  • 2026-10-11 06:02:39
RK3506 Linux系统开发(五):RK3506 Linux 编译和烧写

概述

本文描述RK3506 Linux SDK的编译和烧写。

编译环境准备

前面我们讲述了安装vscode和设置步骤。对于刚入门的小伙伴,对于ubuntu的熟练程度还不够,因此我们使用vmware + vscode ssh的方式,搭建开发环境,RK3506的源码放入vmware虚拟机,平时定制开发的时候,我们使用vscode的ssh方式,远程修改RK3506的源码,下面是环境搭建的步骤

1、解压RK3506 Linux的源码放入vmware ubuntu中,如下所示:

2、在wmware ubuntu中安装ssh服务器,

sudo apt install openssh-server net-tools

3、获取vmware ubuntu的网卡的ip地址,按顺序执行箭头所指的地方,获得ubuntu的网卡地址为192.168.199.128

4、打开vscode。点击箭头所指的地方

5、点击箭头所指的地方,打开ssh配置

弹出如下的对话框

之前我们获得了ubuntu的网卡地址。输入如下的信息

其中,yanl1229是我的主机名字,替换为自己安装的虚拟机的主机名即可(登录时的用户名),然后回车,弹出保存ssh账户的信息。

我选择为第一个。至此ssh登录设置完成,在vsocde的右侧可以看到:

然后点击箭头所指的地方,开始ssh服务器链接

选择后,弹出如下的对话框,选择linux平台

然后选择Continue继续

输入ssh 服务器的地址,也就是ubuntu的登录密码,然后等待链接完成,成功后,如下所示:

链接完成后。我们点击Open Folder,打开RK3506_Linux代码

选择RK3506 Linux后,点击OK,最后的打开效果,如下所示:

编译

1、产品配置文件的选择

当我们首次拿到官方的sdk时,官方的sdk只保留了evb相关的产品配置。我们可以根据自己的硬件平台最小系统的组成,选择合适的产品配置文件:

1)最小系统的电源设计:

电源设计,主要是关注电源的输出,在RK3506上官方提供了两种电源的设计实现,分离器件和使用pmic。分离器件,系统的电源不受软件的控制,由硬件控制实现,使用pmic的芯片,则使用软件编程的方式,实现对系统电源的控制;例如我使用的硬件平台,使用的分离器件的电源管理方式

2)flash的类型

RK3506 可以分为RK3506 G2 和RK3506 B RK3506J等型号,对于我使用的是RK3506 G2平台,他支持sd/emmc,spi Flash。我默认使用SPI Flash作为系统镜像的存储位置;因此在选择的时候,使用带有nand flash标识的产品配置文件,作为参考;

3)ddr的配置

RK3506 支持外接DDR和内置DDR, 我使用的平台是RK3506 G2,他支持内置DDR,因此选择产品配置文件的时候,选择带有RK3506 G2的标识作为参考;

通过上述的选择要求,我们最终选择如下的产品配置文件:

RK3506_Linux/device/rockchip/.chips/rk3506/rockchip_rk3506_g_evb2_defconfig

RK_ROOTFS_UBI=yRK_ROOTFS_INSTALL_MODULES=yRK_WIFIBT_CHIP="AP6256"# RK_ROOTFS_LOG_GUARDIAN is not setRK_UBOOT_CFG_FRAGMENTS="rk3506_tb"RK_UBOOT_SPL=yRK_KERNEL_CFG="rk3506_defconfig"RK_KERNEL_CFG_FRAGMENTS="rk3506-display.config"RK_KERNEL_DTS_NAME="rk3506g-evb2-v10"RK_BOOT_COMPRESSED=yRK_BOOT_FIT_ITS_NAME="thunderboot.its"RK_RECOVERY_FIT_ITS_NAME="thunderboot4recovery.its"RK_FLASH_SIZE=2048RK_EXTRA_PARTITION_1_SRC="rk3506_oem"RK_PARAMETER="parameter-128M.txt"RK_USE_FIT_IMG=y

2、编译步骤

顺序执行如下的步骤,打开vscode中的终端

在vscode RK3506_Linux终端中执行如下的指令

./build.sh lunch

我们选择9,回车后,生成编译配置文件。生成路径如下所示:

配置完成后,首次编译,我们直接不带任何参数,直接执行

./build.sh

其他编译选项

除了支持全部编译外,我们还可以单独选择编译bootloader,kernel和rootfs

bootloader编译选项

./build.sh bootloader

kernel编译选型

./build.sh kernel

rootfs的编译

./build.sh rootfs

打包为update.img

./build.sh updateimg

烧写

编译完系统后,我们打开烧写工具,如下所示:

在烧写系统前,我们需要将板子设置为烧写模式,RK3506支持两种烧写模式Maskrom和Loader。如果你的板子之前从未烧写过镜像。上电后,由于存储未发现启动的镜像,系统自动进入maskrom模式,如下所示:

我们也可以手动进入maskrom烧写模式,按下boot按键,然后给板子重新上电,CPU自动进入maskrom模式;maskrom还还有一个好处,就是当我们的系统变砖进入不了loader模式的时候,可以使用maskrom模式下,继续烧写系统。

Loader模式

Loader模式是RK自己在uboot中定制开发实现的,Loader进入方式为:

按下recovery按键,然后给板子供电,进入Loader模式,烧写工具显示如下:

烧写 update.img镜像

点击固件按钮,弹出选择固件文件的对话框

选择好烧写的固件后,点击打开,完成加载后,如下所示:

然后点击升级按钮,开始烧写

分区烧写

我们在开发过程,比如我们开发驱动代码,文件系统不进行修改,那么我们可以使用分区烧写,以下以boot的分区烧写为例讲述烧写的方法,其他的分区操作方法是一样的,这里不再讲述。

1、板子进入烧写模式

2、点击下载镜像按钮

4、导入配置信息

鼠标右键。弹出导入信息,然后导入RKDevTool\RKDevTool_Release\rk3506-config.cfg配置文件

导入完成后,弹出如下的信息

3、读取设备分区表

点击设备分区表按钮,读取设备分区表,如下所示:

4、选择boot镜像

点击箭头所指的地方,弹出选择boot镜像对话框

选择完镜像后,选中烧写boot的选项

然后点击执行,进入烧写

烧写完成后,系统自动重启;

总结

本文描述了RK3506 Linux SDK的编译和烧写的方法,下一篇,讲述RK3506 Linux的串口驱动的调试和应用开发。

最新文章

随机文章