“模板:RKExportPackFirmware”的版本间的差异
来自ARM Wiki
Sunxiaolin(讨论 | 贡献) (创建页面,内容为“===导出rootfs=== 提供两种方式导出rootfs,基于rsync的export_rootfs命令方式,和基于系统recovery模式的dd命令方式。使用性能好的U...”) |
Sunxiaolin(讨论 | 贡献) (→在Windows下打包完整固件) |
||
第26行: | 第26行: | ||
烧录工具RKDevTool.exe可用于升级固件和解包固件;打包工具脚本mkupdate.bat用于将各分区镜像打包成一个完整的固件。 | 烧录工具RKDevTool.exe可用于升级固件和解包固件;打包工具脚本mkupdate.bat用于将各分区镜像打包成一个完整的固件。 | ||
− | * | + | * 将烧录、打包工具windows.zip解压到当前文件夹 |
− | * | + | * 使用烧录工具windows\RKDevTool\RKDevTool_Release\RKDevTool.exe的高级功能解包初始固件update.img,解包后各个分区镜像和打包配置文件保存在windows\RKDevTool\RKDevTool_Release\Output中 |
[[文件:Screenshot_from_2020-12-28_15-06-14.png|800px]]<br /> | [[文件:Screenshot_from_2020-12-28_15-06-14.png|800px]]<br /> | ||
− | * | + | * 根据需要替换指定分区镜像,比如替换根文件系统分区镜像windows\RKDevTool_Release\Output\Android\Image\rootfs.img |
− | * | + | * 将整个windows\RKDevTool\RKDevTool_Release\Output\Android\Image\目录移动到windows\RKDevTool\rockdev\目录下 |
− | * | + | * 将打包配置文件windows\RKDevTool\RKDevTool_Release\Output\Android\package-file移动替换到windows\RKDevTool\rockdev\目录中 |
− | * | + | * 双击执行对应芯片平台的打包脚本,比如windows\RKDevTool\rockdev\rk3399-mkupdate.bat,完成后完整固件update.img保存在windows\RKDevTool\rockdev\目录中 |
[[文件:Screenshot_from_2020-12-28_15-01-24.png|800px]]<br /> | [[文件:Screenshot_from_2020-12-28_15-01-24.png|800px]]<br /> | ||
+ | |||
+ | ===在Linux下打包完整固件=== | ||
+ | |||
+ | 烧录工具upgrade_tool可用于升级固件;unpack.sh用于将完整固件解包成各个分区镜像;打包工具脚本mkupdate.sh用于将各分区镜像打包成一个完整的固件。 | ||
+ | |||
+ | * 将烧录、解包、打包工具linux.tar.gz解压到当前目录 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | tar xvf linux.tar.gz | ||
+ | </syntaxhighlight> | ||
+ | * 解包update.img | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | cd linux/Linux_Pack_Firmware/rockdev | ||
+ | ln -sfr ../../../../update.img update.img | ||
+ | ./unpack.sh | ||
+ | </syntaxhighlight> | ||
+ | 完成后输出文件output/保存在当前目录下。<br /> | ||
+ | [[文件:Screenshot_from_2020-12-31_11-27-13.png|800px]]<br /> | ||
+ | * 根据需要替换指定分区镜像,比如替换根文件系统分区镜像output/Image/rootfs.img | ||
+ | * 进行必要的移动拷贝,使用初始固件的分区参数、各分区镜像、打包配置文件 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | mv output/parameter.txt output/Image/ | ||
+ | mv output/MiniLoaderAll.bin output/Image/ | ||
+ | mv output/package-file . | ||
+ | ln -sfr output/Image/ Image | ||
+ | </syntaxhighlight> | ||
+ | * 根据芯片平台执行对应的打包脚本,完成后完整固件update.img保存在当前目录 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | ./rk3399-mkupdate.sh | ||
+ | </syntaxhighlight> | ||
+ | [[文件:Screenshot_from_2020-12-31_11-48-11.png|800px]]<br /> |
2020年12月31日 (四) 12:08的版本
导出rootfs
提供两种方式导出rootfs,基于rsync的export_rootfs命令方式,和基于系统recovery模式的dd命令方式。使用性能好的U盘或大容量的移动硬盘并格式成ext4格式可提升导出速度。
- 使用export_rootfs命令导出
系统下已添加export_rootfs命令。将U盘或硬盘接入目标板,使用mount命令找出挂载路径或手动挂载,终端命令行下使用root用户执行:
export_rootfs /media/norco/upan/
等待程序执行完成即可,分区镜像保存在/media/norco/upan/路径下。
- 串口终端下,进入recovery模式,使用dd命令进行克隆
在串口终端下使用root用户执行:
reboot recovery
进入recovery模式,使用blkid命令及cat /proc/partitions命令找出系统分区,一般为/dev/mmcblk1p8。将U盘或硬盘接入目标板,使用mount命令找出挂载路径或手动挂载,终端命令行下执行:
dd if=/dev/mmcblk1p8 of=/media/usb0/rootfs.img conv=sparse &
e2fsck -p -f /media/usb0/rootfs.img
resize2fs -M /media/usb0/rootfs.img
最终/media/usb0/rootfs.img即为系统分区镜像。
在Windows下打包完整固件
烧录工具RKDevTool.exe可用于升级固件和解包固件;打包工具脚本mkupdate.bat用于将各分区镜像打包成一个完整的固件。
- 将烧录、打包工具windows.zip解压到当前文件夹
- 使用烧录工具windows\RKDevTool\RKDevTool_Release\RKDevTool.exe的高级功能解包初始固件update.img,解包后各个分区镜像和打包配置文件保存在windows\RKDevTool\RKDevTool_Release\Output中
- 根据需要替换指定分区镜像,比如替换根文件系统分区镜像windows\RKDevTool_Release\Output\Android\Image\rootfs.img
- 将整个windows\RKDevTool\RKDevTool_Release\Output\Android\Image\目录移动到windows\RKDevTool\rockdev\目录下
- 将打包配置文件windows\RKDevTool\RKDevTool_Release\Output\Android\package-file移动替换到windows\RKDevTool\rockdev\目录中
- 双击执行对应芯片平台的打包脚本,比如windows\RKDevTool\rockdev\rk3399-mkupdate.bat,完成后完整固件update.img保存在windows\RKDevTool\rockdev\目录中
在Linux下打包完整固件
烧录工具upgrade_tool可用于升级固件;unpack.sh用于将完整固件解包成各个分区镜像;打包工具脚本mkupdate.sh用于将各分区镜像打包成一个完整的固件。
- 将烧录、解包、打包工具linux.tar.gz解压到当前目录
tar xvf linux.tar.gz
- 解包update.img
cd linux/Linux_Pack_Firmware/rockdev
ln -sfr ../../../../update.img update.img
./unpack.sh
- 根据需要替换指定分区镜像,比如替换根文件系统分区镜像output/Image/rootfs.img
- 进行必要的移动拷贝,使用初始固件的分区参数、各分区镜像、打包配置文件
mv output/parameter.txt output/Image/
mv output/MiniLoaderAll.bin output/Image/
mv output/package-file .
ln -sfr output/Image/ Image
- 根据芯片平台执行对应的打包脚本,完成后完整固件update.img保存在当前目录
./rk3399-mkupdate.sh