1SD启动卡制作
1.1 SD启动卡制作
将产品资料“4-软件资料ToolsWndows”目录下的瑞芯微创建升级磁盘工具SDDis
kTool_v1.69.2ip解压至Windows非中文工作目录下
右键SD_Firmware_Toolexe,然后点击“以管理员身份运行(A)”打开工具。
将Micro SD卡通过读卡器插至PC机USB接口,在“第一步:选择可移动设备”中 选择可移动磁盘设备,然后点击“恢复磁盘”进行格式化,如下图所示
请确认所选的可移动磁盘设备无误,在弹出窗口中点击“是(Y”进行格式化。
等待格式化完成后,在弹出窗口中点击“确定”。
将产品资料“4-软件资料LinuxMakesdboot版本号”目录下的Linux系统镜像拷贝 至非中文路径的目录。在瑞芯微创建升级磁盘工具窗口中勾选“SD启动”选项,点击“选 择固件”选择目标Linux系统镜像文件,点击“开始创建”,在弹出窗口中点击“是(Y)”, 制作SD启动卡。
请耐心等待5min左右,在弹出的窗口中点击“确定”,此时SD启动卡制作完成。
1.2从sD启动卡启动系统
评估板断电,将S0启动卡插至评估板Micro SD卡槽。使用Type-C线连接评估板的 USBTO UART2调试串口到PC机,然后将评估板上电。系统将从SD启动卡启动后自动登 录root用户,调试串口终端会打印如下类似启动信息。
备注:系统上电后,由ARM内部BootRom的引导代码依次从SPINORFLASH(FSPI)、eMMC FLASH(eMMC)、SD卡(SDMMCO)、USB3.00TG接口检测SPL启动程序,从第一个包含SPL 启动程序的设备开始启动。SPL启动后,将优先从SD系统卡(非常规SD卡)引导U-Boot、 Linux内核镜像,若未插入Linux系统启动卡,将从原启动设备进行引导
详情请查阅“6-开发参考资料Rockchip官方参考文档CommonMMC”目录下的官 方参考文档《Rockchip_Developer_Guide_SD_Bot_CN》。
系统启动后自动登录root用户,调试串口终端会打印如下类似启动信息,"Bootdev(a tags):mme 1"表示从Linux系统启动卡启动。
2固化Linux系统至eMMC
2.1通过so升级卡固化系统至eMMC
将Micro SD卡通过读卡器插至PC机USB接口,打开瑞芯微创建升级磁盘工具,在
“第一步:选择可移动设备”中选择可移动磁盘设备,然后点击“恢复磁盘”进行格式 化,如下图所示。
在弹出窗口中点击“是M)”,等待格式化完成后,在弹出窗口中点击“确定”。
将产品资料“4-软件资料UinuaMakesdboot版本号”目录下的Linux系统镜像拷贝 至非中文路径的目录下。在瑞芯微创建升级磁盘工具的“第二步:选择功能模式”勾选 “固件升级”,点击“选择固件”选择目标镜像文件,点击“开始创建”,在弹出的窗口 中点击“是(M)”,制作SD升级卡
请耐心等待5min左右,在弹出的窗口中点击“确定”,SD升级卡制作完成。
评估板断电,将SD升级卡插至评估板Micro SD卡槽,评估板上电后系统将会自动 固化Linux系统至eMMC。当系统固化完成后,调试串口终端会打印如下信息
评估板无需断电,取出SD升级卡,评估板将自动从eMMC启动系统。系统启动后自 动登录root用户,调试串口终端会打印如下类似启动信息,"Bootdev(atags):mme 0"表 示从eMMC启动。
2.2通过USB固化系统至eMMC
将产品资料“4-软件资料ToolsWndows”日录下的瑞芯微驱动助手DriverAssitant_
v5.12.2ip解压至Windows非中文工作目录下,双击运行Driverln stall.exe。
请先点击“驱动卸载”选项,在弹出的窗口点击“确定”。
备注:使用瑞芯微开发工具RKDevTool固化Lnux系统镜像至eMMC时,需安装Rockusb 驱动,PC机才能正常识别设备,因此需先卸载驱动,再重新安装
然后点击“驱动安装”选项,在弹出的窗口点击“确定”完成驱动安装。
将产品资料“4-软件资料ToolsWhdows”目录下的瑞芯微开发工具RKDevTool-v1.
1.2ip解压至Windows工作目录下,该工具可将Linux系统镜像通过USB3.0 OTG接口固 化至eMMC。进入"RKDevToolv1.1RKDevToolRKDevTool_Release"目录,双击运行RKDe VTool.exe.
请从Micro SD卡槽取出SD卡,使用Type-C线将评估板USB3.0 OTG接口与PC机U SB接口连接
请在瑞芯微开发工具界面点击“升级固件”,然后点击“固件”,选择需要固化至e MMC的Linux系统镜像。
将评估板断电,长按USERO(KEY3)按键,再将评估板重新上电,当检测到USERO(KEY3) 按键为低电平时,ARM将进入Loader模式,即可通过USB3.00TG接口进行固件升级。
此时瑞芯微开发工具界面将会出现提示信息“发现一个MASKROM设备”或“发现 一个LOADER设备”,然后松开按键。
备注:
(1)若eMMC未固化系统镜像,提示“发现一个MASKROM设备”
(2)若eMMC已固化系统镜像,提示“发现一个LOADER设备”
点击“升级”,工具将自动固化Linux系统镜像至eMMC。
直至出现如下界面,提示“下载固件成功”的信息,表示系统固化成功。此时评估板 将自动重启,启动完成后,瑞芯微开发工具界面提示“发现一个MSC设备”。
同时,系统启动后自动登录root用户,调试串口终端会打印如下类似启动信息,"B ootdev(atags):mme 0"表示从eMMC启动。
3 Linux系统启动卡和eMMC分区说明
3.1系统分区说明
评估板启动,进入评估板系统后执行如下命令,查看Unux系统启动卡和eMMC在文 件系统的挂载信息,其中mmcblkOpX表示eMMC设备的分区,mmcblk1pX表示Linux系 统启动卡的分区。
Target#
fdisk-I
为了保证文件系统健壮性,一般不推荐使用rootfs分区做频繁的数据读写,推荐使用 userdata分区作为日常数据存储。
从Linux系统启动卡启动系统,进入评估板文件系统,执行如下命令可查看相关分区 大小,其中可看到rootfs分区剩余大小约为5.5GByte,userdata分区剩余大小约为25GByte. 备注:从Linux系统启动卡启动系统后,userdata分区会自动挂载,格式为ext2。
Target#
df -TH
3.2分区配置说明
我司提供的LinuSDK开发包己包含系统分区配置文件parameter-buildroot-fit.txt,位 于LinuxSDK开发包"device/rockchip/rk356x/“目录下。
parameter-buildroot-fit.bxt文件分区配置信息如下图所示。
当前系统会根据系统分区配置文件parameter-buildroot-fit.tbct划分每个分区的大小, 因此可通过修改parameter-buldrootfit.tbt文件来改变分区大小。本次以修改userdata分 区与roots分区为例,演示减少rootfs分区512MByte容量,并扩大userdata分区512MByte 容量。
在LinuxSDK源码目录下,执行如下命令,修改"device/rockchip/rk356/parameter-
buildroot-fit.tot"文件。
Host#vim device/rockchip/k356x/parameter-buldroot-fit.tbct
parameter-buildroot-fit.txt文件修改内容如下:
CMDLNE:mtdpartsark29xnand0x00002000@0.00004000(uboot).000002000@0×00006000(misc),0 0002000@000008000(boot),0x00020000@000028000(ecoverl,0x00010000@000048000|backu p),0-00b00000@0x00058000(rots),0×0004000@000658000|oem),0x00010000@0×00b9800|am p.-@0x00ba8000|userdatagow)
备注:
(1)注意parameter-buldroot-ft.txt文件中一个扇区大小为512Byte。
(2)各分区中,"@"符号前面的字符表示分区容量,"@"符号后面的字符表示分区起始 地址。以rootfs分区的“0×00b00000@0×00058000”为例,"0x00b00000"表示分区容量, "Ox00058000"表示分区起始地址。
(3)默认情况下,rootfs分区大小为6GByte,现将rootfs分区容量减少512MByte, userdata分区容量增大512MByte。因此,roots分区大小需将"0x00c00000"修改为 "Ox00b00000",起始地址不变
(4)由于修改了rootfs分区大小,因此需同步修改其余相关分区的起始地址。其中, oem分区大小不变,起始地址修改为"0x00b58000":amp分区大小不变,起始地址修 改为"0x00b98000":剩余空间容量用作userdata分区,userdata分区的起始地址修改 为"0×00ba8000"。
修改完成并保存退出,请参考用户手册《Linux系统使用手册》“LUinux系统镜像编译、 生成”章节编译生成Linux系统镜像update.img。然后请参考本文档的SD启动卡制作和 固化Linux系统至eMMC章节,制作SD启动卡并固化Linux系统至eMMC。
使用SD启动卡启动评估板,进入评估板文件系统后执行如下命令,查看Linux系统 启动卡和eMMC在文件系统的挂载信息,其中mmcblkOpX表示eMMC设备的分区, mmcblk1pX表示Linux系统启动卡的分区。对比“系统分区说明”小节的默认分区信息, 可看到rootfs分区(mmcblk1p6、mmcblk0p6),userdata分区(mmcblk1p9、mmcblkOp9)大 小按照修改的容量发生改变,如下所示。
Tar get#
fdisk -I
4Linux系统OTA升级说明
OTA(Over-the-AIr)即空间下载技术,它功能强大,可以无损失升级系统。本章节主 要介绍如何使用OTA升级,其中包括本地升级程序recovery执行升级的流程及技术细节。
备注:目前仅支持从eMMC启动系统进行OTA升级。 Linux系统升级流程具体如下图所示。
4.1升级固件准备
请先参考用户手册《Linux系统使用手册》正确安装、编译LinuSDK,生成U-Boot、 Kernel、Buldroot、Recovery等镜像。
OTA升级中使用的升级固件为update.img。用户亦可根据需要参考如下方法修改Lin uSDK源码目录"tools/linux/Lnux_Pack_Firmware/rockdev/package-file"文件,对升级固件 update.img局部分区进行升级。
备注:为减少升级固件update.img大小,推荐使用局部分区升级方式进行Linux系统升 级。
在LinuxSDK源码"Tk356x_linux_release_y1.3.1_20221120/took/Iinux/Linux_Pack_Firmw are/rockdev/"目录下,执行如下命令,修改packagefile文件,将相关不需要升级的分区 进行注释。本次以局部升级update .img升级固件中的U-Boot与内核为例
Host#cd /home/tronlong/RK3568/rk356x_linux_release_y1.3.1_20221120/tools/linux/Lin ux_Pack_Firmware/rockdev/
Host#vi package-fle
package-file文件修改内容如下:
修改完成后请保存退出,执行如下命令,进入 UinuSDK源码目录,将package-file文 件指定的分区镜像打包生成 update.img 升级固件,其位于 rockdev目录下。 备注:package-file 文件配置不同,打印信息会有所不同。
Host# cd /home/tronlong/RK3568/rk356x_Jinux_release_v1.3.1_20221120/ Host# ./build.shupdateimg
4.2 Linux系统升级
请将update.img升级固件拷贝至评估板文件系统userdata目录下,执行如下命令, 进入recovery模式并进行Linux系统升级,打印信息如下。
备注:升级过程中,评估板将会重启两次,第一次重启是为了进入recovery模式进行系
统升级,第二次重启是系统升级完成后评估板进行重启。
Target#
updateota /user data/update.img
若update.img升级固件中有对recovery分区进行升级,升级过程中系统会先更新re covery分区,然后再重启进入recovery模式进行系统升级,打印信息如下所示。
Linux系统升级完成,评估板重新启动后将自动登录评估板文件系统,打印信息如下。
注意:
(1)如需将多个分区升级时,update.img升级固件会较大,eMMC容量为8GByte配 置的核心板,其userdata分区容量可能无法满足升级固件的大小,导致update.img 升级固件无法完整拷贝至userdata目录下,从而导致OTA升级失败。因此,推荐对 升级固件分区进行裁剪(分多次升级),或参考“Linux系统启动卡和eMMC分区说 明”章节的“分区配置说明”小节,拓展userdata分区的容量
(2)打包update.img升级固件时,推荐将无需升级的分区注释,仅保留需要升级的分 区,可减少updateimg升级固件大小。
(3)如在package-fle文件中配置了recovery分区升级,则recoveryimg将不会在rec overy模式中升级,为了预防在升级recoveryimg过程中掉电导致后面其他分区无法 正常升级的问题,recovery分区在当前运行的默认系统下进行升级,即执行"update ota /userdata/update.img”命令后会先检测update.img升级固件中是否有打包recove ryimg,若有则先升级recovery分区,再进入recovery模式升级其他分区固件:若没 有则直接进入recovery模式进行固件升级
(4)misc分区不推荐打包至update.img升级固件中,在升级程序中该分区将被忽略,
即使升级misc分区,升级成功后recovery程序仍会清空misc分区中所有命令及参 数,从而导致无法达到预期结果。
(5)更多详情可参考产品资料“6-开发参考资料Rockchip官方参考文档UinuxRecove ry”目录下的《Rockchip_Develbper_Guide _Uinux_Recovery_CN》或《Rockchip_Devel oper_Guide_Linux_Recovery_EN》文档。