RK3568量产IMG制作

RK3568量产IMG制作

1. 适用范围

本手册提供一种在RK3568 平台量产烧录 SylixOS 镜像的方法。 主要通过修改瑞芯微RK3568 Linux  SDK 环境以便编译打包生成可烧录的 SylixOS 镜像,最后通过瑞芯微提供的烧录工具进行镜像的烧录量产。

本手册以 RK3568 MI 板卡为示例板卡,适用于对嵌入式开发有一定基础的工程师。

2. 准备工作

2.1 准备环境

        LINUX 编译环境

SDK源码

        RK USB驱动

        RK 烧录工具 RKDevTool.exe

        rk356x_sylix_sdk

2.2 安装RK USB驱动

下载 Release_DriverAssistant.zip,解压,然后运行里面的 DriverInstall.exe 。为了所有设备都使用更新的驱动,请先选择驱动卸载,然后再选择驱动安装。

 

 

2.3 SDK 代码获取

 RK356X_LINUX_SDK_V1.2_20210930.tgz 为例,拷⻉到该初始化包后,通过如下命令可检出源码:

mkdir rk356x  

tar xvf RK356X_LINUX_SDK_V1.2_20210930.tgz -C rk356x  

cd rk356x  

.repo/repo/repo sync -l  

.repo/repo/repo sync -c --no-tags  


3. 操作步骤

3.1 U-boot 环境变量修改

量产制作需要增加相关启动命令及分区设置,因此需要对U-boot进行相关修改。

3.1.1 启动命令设置

修改文件:u-boot/include/configs/rk3568_common.h

根据板卡具体启动命令修改,以下命令仅供参考。

#define BOOTCMD_SYLIX \

        "bootcmd_sylixos=mmc dev 0; fatload mmc 0:4 0x200000 bsprk3568_core0_x32.bin;fatload mmc 0:4 0x20000000 bmcore1.bin;fatload mmc 0:4 0x25000000 bmcore2.bin;fatload mmc 0:4 0x30000000 bmcore3.bin;go 0x20000\0"


3.1.2 分区设置

根据板卡实际分区进行修改,以下命令仅供参

5个分区为例,前三个分区为EFI保留分区即0x9d,第四个为fatfs分区即0x0b,第五个为tpsfs分区即0x9c

修改文件:u-boot/include/configs/rk3568_common.h

#define FS_FIX \

        "fs_fix=mmc dev 0; mmc read 0x9400000 1 1;" \

        "mw.b 0x9400080 0x9d; mw.b 0x9400081 0x9d; mw.b 0x9400082 0x9d; mw.b 0x9400083 0x0b; mw.b 0x9400084 0x9c;" \

        "mmc write 0x9400000 1 1;\0"

#define FS_CHECK \

        "fs_check=mmc dev 0; mmc read 0x9400000 1 1; if cmp.b 0x9400080 0x94000A0 2; then run fs_fix; fi;\0"

 

 

3.1.3 添加环境变量

修改文件:u-boot/include/configs/rk3568_common.h

        FS_FIX \

        FS_CHECK \

        BOOTCMD_SYLIX

 

 

3.1.4 修改默认启动命令

修改文件:u-boot/include/configs/rockchip-common.h

#if 0

#if defined(CONFIG_AVB_VBMETA_PUBLIC_KEY_VALIDATE)

#define RKIMG_BOOTCOMMAND                       \

        "boot_android ${devtype} ${devnum};"

#elif defined(CONFIG_FIT_SIGNATURE)

#define RKIMG_BOOTCOMMAND                       \

        "boot_fit;"

#else

#define RKIMG_BOOTCOMMAND                       \

        "boot_android ${devtype} ${devnum};"    \

        "boot_fit;"                             \

        "bootrkp;"                              \

        "run distro_bootcmd;"

#endif

#else

#define RKIMG_BOOTCOMMAND                       \

        "run fs_check;run bootcmd_sylixos"

#endif

 


3.2 Img镜像制作

3.2.1 sdk img

根据实际板卡情况制作sdk img镜像,将rockdev中生成的img镜像拷贝至提供的 rk356x_sylix_sdk/rockdevwe路径中。

rk356x_sylix_sdk可见附件。

注意:parameter.txt 文件不需要拷贝,后续制作量产镜像会自动生成

 

3.2.2 syboot.img 

将板卡 boot目录相关文件拷贝至rk356x_sylix_sdk/sylixos/syboot 目录下。拷贝完成后, 进入rk356x_sylix_sdk目录下,设置构建参数,然后进行构建,生成syboot.img

rk356x$ cd rk356x_sylix_sdk/                   

rk356x/rk356x_sylix_sdk$ source common/envsetup-buildroot-xx.sh

rk356x/rk356x_sylix_sdk$ ./build.sh syboot

根据板卡实际emmc大小执行对应envsetup-buildroot-xx.sh文件

 

3.2.3 syrootfs.img 制作

将需要进行量产的环境拷贝至rk356x_sylix_sdk/sylixos/syrootfs 相对应的目录中,板卡boot目录中相关文件需放至rk356x_sylix_sdk/sylixos/syboot 目录。拷贝完成后,进行构建,生成syrootfs.img

./build.sh syrootfs


3.2.4 sylix-update.img 制作

sylix-update.img镜像制作需要依赖SDK中 Linux_Pack_Firmware工具,因此在制作前需将SDK  tools\linux路径下的Linux_Pack_Firmware 拷贝至rk356x_sylix_sdk/tools/linux目录下。为sylix-update.img的正常制作,当前用户需要有afptool rkImageMaker可执行的权限。

上述操作完成后,进行构建。

./build.sh updateimg

 

构建完成后,在rockdev/pack目录下生成量产镜像sylix-update.img


3.3 量产镜像烧录 

3.3.1 进入烧录模式

连接烧录线,打开 RK 烧录工具 RKDevTool.exe板卡上电进入loadermaksrom烧录模式。

 

3.3.2 选择固件

点击固件,选择生成的sylix-update.img


3.3.3 镜像烧录

固件选择完成后,点击升级进行烧录,烧录完毕后板卡会自动重启,进入SYLIXOS



    • Related Articles

    • Simulator 修改硬盘存储空间

      问:SylixOS 中的虚拟机 Simulator 如何修改硬盘存储空间大小? 首先需要打开 Simulator 然后进行设置,不同平台虚拟机的存储类型可能不一样,选择对应的存储类型按照下图1-4步骤方式重新 新建选择 *.img ,然后更改总大小,最后进入 Simulator 的 shell 中将存储磁盘格式化即可!
    • YEGCloud SylixOS安装方法

      1. 将 SylixOS传到服务器,解压SylixOS VMware版,找到其中的 x86_boot.vmdk, x86_main.vmdk。 scp 文件 username@ip:目录 2.将这两个文件上传到服务器,使用qemu-img命令将vmdk虚拟机磁盘转为qcow2格式。 qemu-img convert -f vmdk -O qcow2 x86_boot.vmdk x86_boot.qcow2 qemu-img convert -f vmdk -O qcow2 ...
    • ROMFS 使用手册

      1. 使用范围 本文档主要介绍基于 SylixOS 的 RomFs 的使用方法。 2. 准备工作      1、SylixOS 硬件设备             2、BSP 源码             3、USB 转串口设备一个 3. 操作步骤             1、在BSP中添加编译项 romfs.S; 拷贝文件 romfs.S 到 BSP 源码 SylixOS\bsp 目录下,在 Makefile 中增加编译项,如图 3.1所示。 图 3.1             2、在 BSP ...
    • Tengine V1.4 适配测试报告

      1. 测试目的 测试当前版本的 SylixOS 对 OAL Tengine 开源 AI 库的适配支持。 2. 测试工具 Ø RealEvo-CMake,RealEvo-IDE Ø Putty串口工具或SecureCRT远程调试工具 3. 测试平台 DELL Vostro 5880 台式机[开发机]  Ø CPU:i7-10700  2.90GHz Ø 内存:16GB Ø 硬盘:2TB Ø 固态盘:250GB   DELL OptiPlex 390 台式机[测试机] ...