猪八戒做网站排名,南宁网站外包,北京企业名录一览表,怎么看网站是什么语言做的后台RK为了方便开发与产品定制#xff0c;自己定义了一套固件的分区#xff0c;这些分区信息存放在parameter.txt文件中#xff0c;Firefly参考这个文件定义了自己的Ubuntu分区#xff0c;文件为parameter-ubuntu.txt#xff0c;存放于Linux_SDK的device/rockchip/rk356x目录下…RK为了方便开发与产品定制自己定义了一套固件的分区这些分区信息存放在parameter.txt文件中Firefly参考这个文件定义了自己的Ubuntu分区文件为parameter-ubuntu.txt存放于Linux_SDK的device/rockchip/rk356x目录下另外在Ubuntu固件打包的时候也会用到一个package-file文件文件名为rk356x-ubuntu-package-file存放于Linux_SDK的tools/linux/Linux_Pack_Firmware/rockdev目录下。下面我带领大家简要分析一下这两个文件
一、parameter-ubuntu.txt
进入device/rockchip/rk356x目录cat parameter-ubuntu.txt
FIRMWARE_VER: 1.0
MACHINE_MODEL: RK3568
MACHINE_ID: 007
MANUFACTURER: RK3568
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 0xffffffff
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE: mtdpartsrk29xxnand:0x000020000x00004000(uboot),0x000020000x00006000(misc),0x000100000x00008000(boot),0x000100000x00018000(recovery),0x000100000x00028000(backup),0x00c000000x00038000(rootfs),-0x00c38000(userdata:grow)
uuid:rootfs614e0000-0000-4b53-8000-1d28000054a9以下是摘自瑞芯微文档中的概述
Rockchip android系统平台使用parameter文件来配置一些系统参数比如固件版本存储器分区信息等。其实android系统平台与linux系统平台都一样Parameter文件是非常重要的系统配置文件最好在能了解清楚各个配置功能时再做修改避免出现parameter文件配置异常造成系统不能正常工作的问题。Parameter文件大小有限制最大不能超过64KB。
parameter-ubuntu.txt文件内容的说明
内容说明FIRMWARE_VER: 1.0 固件版本打包updata.img时会使用到升级工具会根据这个识别固件版本。MACHINE_MODEL: RK3568机器型号打包updata.img使用不同的项目可以自己修改用于升级工具显示。在recovery里面升级固件时可以用于判断固件是否匹配。MACHINE_ID: 007产品开发ID可以为字符和数字组合打包updata.img使用不同的项目使用不同的ID可以用于识别机器机型。在recovery里面升级固件时可以用于判断固件是否匹配。MANUFACTURER: RK3568厂商信息打包updata.img使用可以自己修改用于升级工具显示。MAGIC: 0x5041524BMAGIC不能修改一些新的AP使用DTS这一项没有用为了兼容不要删除或修改。ATAG: 0x00200800ATAG不能修改一些新的AP使用DTS这一项没有用为了兼容不要删除或修改。MACHINE: 0xffffffff内核识别用不能修改这个定义和内核匹配。CHECK_MASK: 0x80保留不能修改。TYPE: GPT指定该文件CMDLINE里面定义的分区用于创建GPT使用不会烧录到NVMNANDEMMC等存储器件里面。MACHINE: 0xffffffff内核识别用不能修改这个定义和内核匹配。CMDLINE稍后说明uuid:rootfs614e0000-0000-4b53-8000-1d28000054a9保留不能修改。
列表中的这些除了CMDLINE其他我们几乎很少需要修改
CMDLINE属性是我们关注的地方
CMDLINE: mtdpartsrk29xxnand:0x000020000x00004000(uboot),0x000020000x00006000(misc),0x000100000x00008000(boot),0x000100000x00018000(recovery),0x000100000x00028000(backup),0x00c000000x00038000(rootfs),-0x00c38000(userdata:grow)以下是摘自瑞芯微文档的说明
为了兼容性目前RK所有AP都是用rk29xxnand做标识。单个分区说明 例如0x000100000x00008000(boot)符号之前的数值是分区大小符号之后的数值是分区的起始位置括号里面的字符是分区的名字。所有数值的单位是sector1个sector为512Bytes。上例中boot分区起始位置为0x8000 sectors位置大小为0x10000 sectors(32MB)。为了性能每个分区起始地址需要32KB64 sectors对齐大小也需要32KB的整数倍。如果使用sparse格式的镜像升级时会擦除数据为了兼容性更好对应的分区最好按4MB对齐大小也按4MB整数倍配置。使用GPT分区时parameter里面定义的地址都是真实的逻辑地址LBA例如uboot定义在0x4000那么烧录到EMMC和NAND里面时逻辑地址也是0x4000。最后一个分区需要指定grow参数工具会把剩余的空间都分配给最后一个分区。 下面是Ubuntu固件各个分区作用的说明
uboot分区烧写uboot编译出来的uboot.img。misc分区烧写misc.img。开机检测进入recovery模式。boot 分区烧写kernel编译出来的boot.img包含kernel和设备树信息。recovery分区烧写recovery.img。backup分区预留暂时没有用。后续跟android一样作为recovery的 backup使用。rootfs分区存放ubuntu文件系统只读。userdata分区存放app临时生成的文件或者是给最终用户使用。可读写挂载在/userdata目录下。 二、rk356x-ubuntu-package-file
进入tools/linux/Linux_Pack_Firmware/rockdev目录cat rk356x-ubuntu-package-file
# NAME Relative path
#
#HWDEF HWDEF
package-file package-file
bootloader Image/MiniLoaderAll.bin
parameter Image/parameter.txt
uboot Image/uboot.img
misc Image/misc.img
boot Image/boot.img
recovery Image/recovery.img
rootfs Image/rootfs.img
userdata RESERVED
backup RESERVED不难看出该文件用于指定分区与打包镜像的对应关系以下是打包RK格式的Ubuntu固件日志
neutionwei32b7b9ddcaab:~/project/rk356x_linux_release_20211019$ ./build.sh updateimg
processing option: updateimg
File name is ROC-RK3568-PC-UBUNTU20.04-GPT
Rename the file? [N|y]n
Make update.img
start to make update.img...
Resize rootfs partition size
dumpe2fs 1.44.1 (24-Mar-2018)
Android Firmware Package Tool v1.66
------ PACKAGE ------
Add file: ./package-file
Add file: ./package-file done,offset0x800,size0x11a,userspace0x1
Add file: ./Image/MiniLoaderAll.bin
Add file: ./Image/MiniLoaderAll.bin done,offset0x1000,size0x719c0,userspace0xe4
Add file: ./Image/parameter.txt
Add file: ./Image/parameter.txt done,offset0x73000,size0x1d5,userspace0x1
Add file: ./Image/uboot.img
Add file: ./Image/uboot.img done,offset0x73800,size0x400000,userspace0x800
Add file: ./Image/misc.img
Add file: ./Image/misc.img done,offset0x473800,size0xc000,userspace0x18
Add file: ./Image/boot.img
Add file: ./Image/boot.img done,offset0x47f800,size0x1ff4800,userspace0x3fe9
Add file: ./Image/recovery.img
Add file: ./Image/recovery.img done,offset0x2474000,size0x1e23800,userspace0x3c47
Add file: ./Image/rootfs.img
Add file: ./Image/rootfs.img done,offset0x4297800,size0xa744fc00,userspace0x14e8a0
Add CRC...
Make firmware OK!
------ OK ------
********RKImageMaker ver 1.66********
Generating new image, please wait...
Writing head info...
Writing boot file...
Writing firmware...
Generating MD5 data...
MD5 data generated successfully!
New image generated successfully!
Making ./Image/update.img OK.
Make update image ok!/home/neutionwei/project/rk356x_linux_release_20211019/rockdev/pack/ROC-RK3568-PC-UBUNTU20.04-GPT-20211203-2103.img
Running build_updateimg succeeded.三、注意点
Firefly发布的Linux_SDK在打包固件的时候对于rootfs分区的大小会根据rootfs的实际文件大小进行动态变化换句话说parameter-ubuntu.txt文件中的0x00c000000x00038000(rootfs),-0x00c38000(userdata:grow)内容的rootfs分区大小指定与userdata分区起始地址会动态发生修改这是因为不同的文件系统占用分区的大小差异很大这样操作可避免造成分区浪费