“模板:RKExportPackFirmware”的版本间的差异

来自ARM Wiki
跳转至: 导航搜索
在Windows下烧录固件
 
(未显示同一用户的10个中间版本)
第1行: 第1行:
===导出rootfs===
+
===导出主板上的根文件系统分区镜像rootfs.img===
  
提供两种方式导出rootfs,基于rsync的export_rootfs命令方式,和基于系统recovery模式的dd命令方式。使用性能好的U盘或大容量的移动硬盘并格式成ext4格式可提升导出速度。
+
1. 将U盘的第一个分区格式化成ext4格式
  
*使用export_rootfs命令导出
+
2. 在U盘的第一个分区根目录下创建export_rootfs文件
系统下已添加export_rootfs命令。将U盘或硬盘接入目标板,使用'''mount'''命令找出挂载路径或手动挂载,终端命令行下使用root用户执行:
+
 
<syntaxhighlight lang="bash">
+
3. 将U盘插到主板上,重新给主板上电
export_rootfs /media/norco/upan/
+
 
</syntaxhighlight>
+
4. 等待rootfs.img自动导出,此时系统会进入recovery模式,不会进入正常系统界面。导出完成后,系统会自动重启进入正常系统界面
等待程序执行完成即可,分区镜像保存在'''/media/norco/upan/'''路径下。
+
 
*串口终端下,进入recovery模式,使用dd命令进行克隆
+
5. U盘中的rootfs.img即为根文件系统分区镜像
在串口终端下使用root用户执行:
+
 
<syntaxhighlight lang="bash">
+
===在Windows电脑主机上制作完整固件===
reboot recovery
+
 
</syntaxhighlight>
+
1. 解包完整固件update.img
进入recovery模式,使用'''blkid'''命令及'''cat /proc/partitions'''命令找出系统分区,一般为'''/dev/mmcblk1p8'''。将U盘或硬盘接入目标板,使用'''mount'''命令找出挂载路径或手动挂载,终端命令行下执行:
+
 
<syntaxhighlight lang="bash">
+
* 将下载的烧录包解压到当前文件夹,进入tools目录,将烧录工具windows.zip解压到当前文件夹,进入windows\RKDevTool\rockdev目录,双击执行nc-unpack.bat解包脚本,等待解包完成后各分区镜像保存在Output\Image目录中
dd if=/dev/mmcblk1p8 of=/media/usb0/rootfs.img conv=sparse &
+
[[文件:Screenshot_from_2023-02-01_13-45-54.png|800px]]<br />
e2fsck -p -f /media/usb0/rootfs.img
+
 
resize2fs -M /media/usb0/rootfs.img
+
2. 替换根文件系统分区镜像rootfs.img
</syntaxhighlight>
+
* 将导出的根文件系统分区镜像rootfs.img拷贝替换到Output\Image目录中
最终'''/media/usb0/rootfs.img'''即为系统分区镜像。
+
[[文件:Screenshot_from_2023-02-01_13-50-33.png|800px]]<br />
 +
 
 +
3. 打包完整固件update.img
 +
* 双击执行nc-pack.bat打包脚本,等待打包完成后完整固件update.img保存在Output目录中
 +
[[文件:Screenshot_from_2023-02-01_13-56-02.png|800px]]<br />
 +
 
 +
===在Windows电脑主机上烧录固件===
 +
 
 +
'''安装驱动'''
 +
 
 +
将下载的烧录包解压到当前文件夹,进入tools目录,将烧录工具windows.zip解压到当前文件夹,进入windows目录,将驱动DriverAssitant_v*.zip解压到当前文件夹,进入DriverAssitant_v*目录,双击DriverInstall.exe安装驱动。
 +
[[文件:Screenshot_from_2023-02-13_15-09-00.png|800px]]<br />
 +
 
 +
'''运行烧录工具'''
  
===在Windows下打包完整固件===
+
进入tools\windows\RKDevTool\RKDevTool_Release目录,双击RKDevTool.exe运行烧录工具。
  
烧录工具RKDevTool.exe可用于升级固件和解包固件;打包工具脚本mkupdate.bat用于将各分区镜像打包成一个完整的固件。
+
'''连接烧录线'''
  
* 将烧录、打包工具windows.zip解压到当前文件夹
+
将主板和Windows电脑通过一根USB烧录线进行连接。
* 使用烧录工具windows\RKDevTool\RKDevTool_Release\RKDevTool.exe的高级功能解包初始固件update.img,解包后各个分区镜像和打包配置文件保存在windows\RKDevTool\RKDevTool_Release\Output中
 
[[文件: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 />
 
  
===在Windows下使用烧录工具RKDevTool.exe===
+
'''让主板进入烧录模式'''
  
烧录工具RKDevTool.exe可用于升级固件和解包固件。
+
在主板系统终端下执行命令:
* 将烧录、解包、打包工具windows.zip解压到当前文件夹
 
* 解压DriverAssitant_v*.zip驱动并进行安装
 
* 双击执行RKDevTool.exe烧录工具程序
 
* 给主板上电,让主板进入正常工作模式,主板设备会被识别成一个ADB设备
 
[[文件:Screenshot_from_2021-01-04_14-54-40.png|800px]]<br />
 
* 点击切换按钮,主板会自动重启进入烧录模式,主板会被识别成一个LOADER设备
 
[[文件:Screenshot_from_2021-01-04_14-22-04.png|800px]]<br />
 
* 点击“升级固件” --> 点击“固件”并选中完整固件update.img --> 点击“升级”
 
[[文件:Screenshot_from_2021-01-04_14-19-08.png|800px]]<br />
 
升级完成后,设备自动重启进入正常模式,烧录后第一次启动时间会比较长。
 
* 在驱动安装好并连接好USB烧录线连接后,也可以通过在主板的系统终端下执行如下命名,让主板直接进入烧录模式
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
reboot loader
 
reboot loader
 
</syntaxhighlight>
 
</syntaxhighlight>
主板设备会被识别成一个maskrom设备或者loader设备。
+
 
 +
主板会被烧录工具识别成一个LOADER设备或MASKROM设备。<br />
 +
[[文件:Screenshot_from_2023-02-13_16-37-25.png|800px]]
 +
 
 +
'''烧录完整固件update.img'''
 +
 
 +
点击“升级固件” --> 点击“固件”并选中完整固件update.img --> 点击“升级”<br />
 +
[[文件:Screenshot_from_2023-02-13_16-46-50.png|800px]]<br />
 +
烧录完成后,设备自动重启进入正常工作模式。
 +
 
 +
'''单独烧录内核分区镜像boot.img'''
 +
 
 +
在设备处于LOADER模式下,可以单独烧录boot分区镜像或rootfs等其他分区镜像,点击“设备分区表”可以看到设备的分区信息。<br />
 +
[[文件:Screenshot_from_2023-02-13_17-11-25.png|800px]]<br />
 +
 
 +
只勾选boot一栏 --> 确认地址与设备分区地址一致 --> 选中boot.img所在路径 --> 点击“执行”<br />
 +
[[文件:Screenshot_from_2023-02-13_17-13-03.png|800px]]<br />
 +
 
 +
烧录完成后,设备会自动重启或需手动断电重启,进入正常工作模式。
  
 
===在Linux下打包完整固件===
 
===在Linux下打包完整固件===
第84行: 第97行:
 
[[文件:Screenshot_from_2020-12-31_11-48-11.png|800px]]<br />
 
[[文件:Screenshot_from_2020-12-31_11-48-11.png|800px]]<br />
  
===在Linux下使用烧录工具upgrade_tool===
+
===在Linux下烧录固件===
  
 
烧录工具upgrade_tool可用于升级固件。
 
烧录工具upgrade_tool可用于升级固件。
* 连接好USB烧录线连接后,在主板的系统终端下执行如下命名,让主板进入烧录模式
+
* 连接好USB烧录线连接后,在主板的系统终端下执行如下命令,让主板进入烧录模式
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
reboot loader
 
reboot loader

2023年2月13日 (一) 17:55的最新版本

导出主板上的根文件系统分区镜像rootfs.img

1. 将U盘的第一个分区格式化成ext4格式

2. 在U盘的第一个分区根目录下创建export_rootfs文件

3. 将U盘插到主板上,重新给主板上电

4. 等待rootfs.img自动导出,此时系统会进入recovery模式,不会进入正常系统界面。导出完成后,系统会自动重启进入正常系统界面

5. U盘中的rootfs.img即为根文件系统分区镜像

在Windows电脑主机上制作完整固件

1. 解包完整固件update.img

  • 将下载的烧录包解压到当前文件夹,进入tools目录,将烧录工具windows.zip解压到当前文件夹,进入windows\RKDevTool\rockdev目录,双击执行nc-unpack.bat解包脚本,等待解包完成后各分区镜像保存在Output\Image目录中

Screenshot from 2023-02-01 13-45-54.png

2. 替换根文件系统分区镜像rootfs.img

  • 将导出的根文件系统分区镜像rootfs.img拷贝替换到Output\Image目录中

Screenshot from 2023-02-01 13-50-33.png

3. 打包完整固件update.img

  • 双击执行nc-pack.bat打包脚本,等待打包完成后完整固件update.img保存在Output目录中

Screenshot from 2023-02-01 13-56-02.png

在Windows电脑主机上烧录固件

安装驱动

将下载的烧录包解压到当前文件夹,进入tools目录,将烧录工具windows.zip解压到当前文件夹,进入windows目录,将驱动DriverAssitant_v*.zip解压到当前文件夹,进入DriverAssitant_v*目录,双击DriverInstall.exe安装驱动。 Screenshot from 2023-02-13 15-09-00.png

运行烧录工具

进入tools\windows\RKDevTool\RKDevTool_Release目录,双击RKDevTool.exe运行烧录工具。

连接烧录线

将主板和Windows电脑通过一根USB烧录线进行连接。

让主板进入烧录模式

在主板系统终端下执行命令:

reboot loader

主板会被烧录工具识别成一个LOADER设备或MASKROM设备。
Screenshot from 2023-02-13 16-37-25.png

烧录完整固件update.img

点击“升级固件” --> 点击“固件”并选中完整固件update.img --> 点击“升级”
Screenshot from 2023-02-13 16-46-50.png
烧录完成后,设备自动重启进入正常工作模式。

单独烧录内核分区镜像boot.img

在设备处于LOADER模式下,可以单独烧录boot分区镜像或rootfs等其他分区镜像,点击“设备分区表”可以看到设备的分区信息。
Screenshot from 2023-02-13 17-11-25.png

只勾选boot一栏 --> 确认地址与设备分区地址一致 --> 选中boot.img所在路径 --> 点击“执行”
Screenshot from 2023-02-13 17-13-03.png

烧录完成后,设备会自动重启或需手动断电重启,进入正常工作模式。

在Linux下打包完整固件

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/保存在当前目录下。
Screenshot from 2020-12-31 11-27-13.png

  • 根据需要替换指定分区镜像,比如替换根文件系统分区镜像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

Screenshot from 2020-12-31 11-48-11.png

在Linux下烧录固件

烧录工具upgrade_tool可用于升级固件。

  • 连接好USB烧录线连接后,在主板的系统终端下执行如下命令,让主板进入烧录模式
reboot loader
  • 将烧录、解包、打包工具linux.tar.gz解压到当前目录,并进行简单设置
tar xvf linux.tar.gz
cd linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool && chmod a+x upgrade_tool && sudo cp upgrade_tool /usr/local/bin
mkdir ~/.config/upgrade_tool/
cp config.ini ~/.config/upgrade_tool/
  • 烧录完整固件及各分区镜像的命令
sudo upgrade_tool uf update.img
  # 烧录完整固件
sudo upgrade_tool di -p parameter.txt
  # 烧录分区参数
sudo upgrade_tool di -uboot uboot.img
  # 烧录uboot分区镜像
sudo upgrade_tool di -b boot.img
  # 烧录内核分区镜像
sudo upgrade_tool di -rootfs rootfs.img
  # 烧录根文件系统分区镜像rootfs.img
sudo upgrade_tool di -r recovery.img
  # 烧录recovery镜像
sudo upgrade_tool di -userdata userdata.img
  # 烧录userdata分区镜像