Please enable javascript, or click here to visit my ecommerce web site powered by Shopify.
Jump to: navigation, search

Difference between revisions of "Rock/flash the image/zh cn"

(RKBatchTool 检测不到开发板)
 
(14 intermediate revisions by 4 users not shown)
Line 2: Line 2:
 
__TOC__
 
__TOC__
  
这个页面描述怎么往Radxa Rock的NAND flash上装系统,即大家喜闻乐见的'''刷机'''. 你可以选择完全刷机(就是刷 [[rock/update.img |update.img]]格式的固件)或者只刷特定的某个 [[rock/partitions |分区]]. 你可以从[http://radxa.com/download radxa网站download]下载radxa或者第三方[[rock/prebuilt images| 编译好的固件 ]]或者制作你自己的固件.
+
这个页面描述怎么往Radxa Rock的NAND flash上装系统,即大家喜闻乐见的'''刷机'''. 你可以选择完全刷机(就是刷 [[rock/update.img |update.img]]格式的固件)或者只刷特定的某个 [[rock/partitions |分区]]. 你可以从[http://radxa.com/download radxa网站download]下载radxa(android, lubuntu, 双启动固件)或者第三方[[rock/prebuilt images| 编译好的固件 ]]或者制作你自己的固件.
  
 
== 开始之前 ==
 
== 开始之前 ==
Line 31: Line 31:
 
[[File:RK_Driver_Assistant_Install_Uninstall.jpg]]
 
[[File:RK_Driver_Assistant_Install_Uninstall.jpg]]
  
然后点击 “Install Driver” 。当安装完成时,关闭Radxa Rock开发板,并将开发板与你的计算机连接起来(使用MicroUSB线)(注意不要使用USB3.0接口),然后使开发板进入[[rock/recovery mode| recovery 模式]],此时你的计算机将检测到开发板,并且你将在设备管理器中看到它。
+
然后点击 “Install Driver” 。当安装完成时,关闭Radxa Rock开发板,并将开发板与你的计算机连接起来(使用MicroUSB线)(注意不要使用USB3.0接口),然后使开发板进入[[Rock/Loader mode/zh_cn|Loader模式]],此时你的计算机将检测到开发板,并且你将在设备管理器中看到它。
  
 
[[File:RK_Driver_Assistant_Install_Usb_driver.png]]
 
[[File:RK_Driver_Assistant_Install_Usb_driver.png]]
Line 40: Line 40:
 
==== 手动安装====
 
==== 手动安装====
  
从 [http://dl.radxa.com/rock/tools/windows/usb_driver_v3.5.zip 这里] 下载(usb_driver_v3.5.zip) 文件,并解压该文件,关闭Radxa Rock开发板,然后使用MicroUSB线连接开发板和计算机,并让开发板进入 [[rock/recovery mode| recovery 模式]],然后你的计算机应该检测到开发板,同时你在设备管理器中会看到一个未知设备。
+
从 [http://dl.radxa.com/rock/tools/windows/usb_driver_v3.5.zip 这里] 下载(usb_driver_v3.5.zip) 文件,并解压该文件,关闭Radxa Rock开发板,然后使用MicroUSB线连接开发板和计算机,并让开发板进入 [[Rock/Loader mode/zh_cn|Loader模式]],然后你的计算机应该检测到开发板,同时你在设备管理器中会看到一个未知设备。
  
 
[[File:flash_image_1.jpg]]
 
[[File:flash_image_1.jpg]]
Line 78: Line 78:
 
[[File:flash_image_8.jpg]]
 
[[File:flash_image_8.jpg]]
  
拔掉Radxa Rock开发板的电源,并使用MicroUSB线连接开发板与你的计算机,然后让开发板进入[[rock/recovery 模式]] ,此时程序应该能检测到设备。
+
拔掉Radxa Rock开发板的电源,并使用MicroUSB线连接开发板与你的计算机,然后让开发板进入[[Rock/Loader mode/zh_cn|Loader模式]],此时程序应该能检测到设备。
 
<br/>
 
<br/>
 
[[File:flash_image_9.jpg]]
 
[[File:flash_image_9.jpg]]
Line 87: Line 87:
 
如果烧写操作失败,那么可能是update.img存在错误,你可以尝试重做以上操作或者重新制作update.img!
 
如果烧写操作失败,那么可能是update.img存在错误,你可以尝试重做以上操作或者重新制作update.img!
  
====Using RKAndroidTool to falsh image by selection ====
+
=== 使用RKAndroidTool 烧写选定的镜像 ====
 
从[http://dl.radxa.com/rock/tools/windows/RKDevelopTool_v1.37.zip 这里]下载RKAndroidTools,并解压,然后双击RKAndroidTool.exe,你将看到以下界面:
 
从[http://dl.radxa.com/rock/tools/windows/RKDevelopTool_v1.37.zip 这里]下载RKAndroidTools,并解压,然后双击RKAndroidTool.exe,你将看到以下界面:
  
 
[[File:rkandroidtool_flash_image_1.png]]
 
[[File:rkandroidtool_flash_image_1.png]]
  
拔掉Radxa Rock开发板的电源,连接开发板和计算机,并让开发板进入[[rock/recovery 模式]] ,然后程序会自动检测到设备。
+
拔掉Radxa Rock开发板的电源,连接开发板和计算机,并让开发板进入[[Rock/Loader mode/zh_cn|Loader模式]],然后程序会自动检测到设备。
  
 
[[File:rkandroidtool_flash_image_2.png]]
 
[[File:rkandroidtool_flash_image_2.png]]
Line 111: Line 111:
 
=== 故障排除 ===
 
=== 故障排除 ===
 
==== RKBatchTool 检测不到开发板 ====  
 
==== RKBatchTool 检测不到开发板 ====  
1.Recovery 模式 : USB 设备硬件:  VID_2207&PID_310B <br/>
+
1.Loader模式 : USB 设备硬件:  VID_2207&PID_310B <br/>
 
2.引导进Android:  USB 设备硬件: VID_2207&PID_0006
 
2.引导进Android:  USB 设备硬件: VID_2207&PID_0006
  
Recovery 模式<br/>
+
Loader模式<br/>
我已经手动安装了驱动,并且Recovery模式的USB为PID_310B,“Rockusb device”驱动在Vista上安装成功了,但是RKBatchTool连接不到RK3188的板子,导致无法烧写镜像。
+
我已经手动安装了驱动,并且Loader模式的USB为PID_310B,“Rockusb device”驱动在Vista上安装成功了,但是RKBatchTool连接不到RK3188的板子,导致无法烧写镜像。
  
对于Recovery模式无法连接的问题[已解决]<br/>
+
对于Loader模式无法连接的问题[已解决]<br/>
 
根本原因:RK3188板通过USB3.0 PMMCIA卡连接到笔记本电脑。这是一个USB2.0到USB3.0的兼容性问题,所以USB3.0端口换成USB 2.0端口,然后RKBatchTool应该可以连接到RK3188板子来烧写镜像了。
 
根本原因:RK3188板通过USB3.0 PMMCIA卡连接到笔记本电脑。这是一个USB2.0到USB3.0的兼容性问题,所以USB3.0端口换成USB 2.0端口,然后RKBatchTool应该可以连接到RK3188板子来烧写镜像了。
  
Line 145: Line 145:
  
 
针对开发者:
 
针对开发者:
''The initial RE work of the Rockchip bootloader updating protocol is by naobsd and has been improved by some in '''rkflashtool'''. linuxerwang has made a GUI version of the rkflashtool called '''rkflashkit'''. Please note: both '''rkflashtool''' and '''rkflashkit''' can '''not''' flash the [[rock/update.img]] and can only flash within [[rock/bootloader]] mode and not [[rock/mask rom]] mode because the [[rock/mask rom]] updating protocol is not RE yet. If you are interested in the RE protocol ping naobsd at #radxa on IRC. Since the [[rock/bootloader]] has remained unchanged for a long time it's enough for normal usage. If you don't know what this means, just ignore it.''
+
“早期的Rockchip bootloader刷机协议的逆向工程工作是由 naobsd 完成的,并且由一些在使用 “rkflashtool”的人进行了改进,linuxerwang 制作了一个rkflashtool的GUI版本,叫做 “rkflashkit”,请注意:"rkflashtool" 和 “rkflashkit” 都不能烧写 [[rock/update.img | update.img格式的刷机包]] ,只能在 [[rock/bootloader | bootloader]] 模式下并且不在 [[rock/mask rom | mask rom]] 模式下烧写,因为这个  [[rock/mask rom | mask rom]] 升级协议还没有被逆向工程, 如果你对逆向工程刷机协议有兴趣,可以在  #radxa 的聊天室上找naobsd,[[rock/bootloader | bootloader]] 通常不会变动太大,已经可以保证日常使用了。如果你不明白这段话的意思,只要忽略它就可以了。”
  
 
=== Rockchip的升级工具 ===
 
=== Rockchip的升级工具 ===
  
从 [http://dl.radxa.com/rock/tools/linux/Linux_Upgrade_Tool_v1.16.zip 这里]下载Rockchip的Linux升级工具并解压,然后你会得到一个在Linux下二进制可执行文件,叫做“upgrade_tool”。
+
从 [http://dl.radxa.com/rock/tools/linux/Linux_Upgrade_Tool_V2.1.zip 这里]下载Rockchip的Linux升级工具并解压,然后你会得到一个在Linux下二进制可执行文件,叫做“upgrade_tool”。
  
 
==== 烧写 update.img ====
 
==== 烧写 update.img ====
让板子进入 [[rock/recovery 模式]] 并运行以下命令烧写[[rock/update.img]]:
+
让板子进入[[Rock/Loader mode/zh_cn|Loader模式]]并运行以下命令烧写[[rock/update.img | update.img格式的刷机包]]:
 
   sudo ./upgrade_tool '''uf'''  /path/to/update.img          #(UF Upgrade Flash)
 
   sudo ./upgrade_tool '''uf'''  /path/to/update.img          #(UF Upgrade Flash)
  
Line 169: Line 169:
 
==== 其他====
 
==== 其他====
 
有一些在upgrade_tool中使用的其他命令,比如:
 
有一些在upgrade_tool中使用的其他命令,比如:
     UL: 升级loader
+
     UL: 升级Loader
 
     EF: 擦除nand flash
 
     EF: 擦除nand flash
  
=== Rkflashkit with GUI ===
+
=== 图形化版本工具 - Rkflashkit ===
 
你可以从 [http://dl.radxa.com/rock/tools/linux/rkflashkit_0.1.1_all.deb 这里]下载已经编译好的rkflashkit,或者使用以下命令自己编译它:
 
你可以从 [http://dl.radxa.com/rock/tools/linux/rkflashkit_0.1.1_all.deb 这里]下载已经编译好的rkflashkit,或者使用以下命令自己编译它:
 
   
 
   
Line 192: Line 192:
 
[[File:rkflashkit1.png| 600px]]
 
[[File:rkflashkit1.png| 600px]]
  
连接Radxa Rock开发板和计算机,并且让板子进入[[rock/recovery 模式]] ,你将看到程序在Recovery模式下检测到板子。
+
连接Radxa Rock开发板和计算机,并且让板子进入[[Rock/Loader mode/zh_cn|Loader模式]] ,你将看到程序在Loader模式下检测到板子。
  
 
# 单击 Nand partition,然后你会看到板子的分区列表,然后从其中选择一个你要烧写的分区。
 
# 单击 Nand partition,然后你会看到板子的分区列表,然后从其中选择一个你要烧写的分区。
Line 200: Line 200:
  
  
[[File:rkflashkit2.png| 500px]] [[File:rkflashkit3.png| 500px]]
+
[[File:rkflashkit2.png| 500px]]
 +
[[File:rkflashkit3.png| 500px]]
  
 
== 不用计算机在RR上烧写镜像 ==
 
== 不用计算机在RR上烧写镜像 ==
 
如果你想不用其他任何计算机,在Rockchip Rock板上写镜像,你可以下载镜像,并使用dd写:
 
如果你想不用其他任何计算机,在Rockchip Rock板上写镜像,你可以下载镜像,并使用dd写:
 
     sudo dd if=XXX.img of=/dev/block/mtd/by-name/XXX bs=16384 conv=sync,fsync
 
     sudo dd if=XXX.img of=/dev/block/mtd/by-name/XXX bs=16384 conv=sync,fsync

Latest revision as of 02:37, 16 August 2023

中文(中国大陆)‎

这个页面描述怎么往Radxa Rock的NAND flash上装系统,即大家喜闻乐见的刷机. 你可以选择完全刷机(就是刷 update.img格式的固件)或者只刷特定的某个 分区. 你可以从radxa网站download下载radxa(android, lubuntu, 双启动固件)或者第三方 编译好的固件 或者制作你自己的固件.

开始之前

记住:

   Radxa Rock是刷不死的,正如它的名字一样。除非你把硬件损坏了。

烧写固件所需要的硬件环境:

 * 一块Radxa Rock的开发板(全功能版本或者精简版本)
 * 一台运行windows XP/Windows 7(32位/64位)或者Linux(32位/64位)的计算机
 * 一根用于连接Radxa Rock开发板的OTG口和计算机USB口的microUSB线

Windows

Windows下烧写镜像的工具是由Rockchip提供的。你可以使用RKBatch Tool来烧写镜像文件 update.img,并使用RKDevelop Tool来烧写partitions配置文件 partitions。不过这两种工具都依赖于RK USB驱动,所以你首先需要根据以下步骤安装RK USB驱动:

Install driver

在Windows下有两种方式安装该驱动:

  1. 使用RKDriverAssistant tools安装 - 比较容易的方式
  2. 手动安装

如果你已经安装好了USB驱动,请跳过此步骤。

使用RK Driver Assistant tools安装

在此安装过程中不需要连接Rockchip设备,只需要下载并解压RKDriverAssistant.zip,然后在RKDriverAssistant目录下的DriveInstall.exe上双击运行即可。 如果你之前为其他Rockchip设备安装过Rockchip USB驱动,确保首先点击"Uninstall Driver"。

RK Driver Assistant Install Uninstall.jpg

然后点击 “Install Driver” 。当安装完成时,关闭Radxa Rock开发板,并将开发板与你的计算机连接起来(使用MicroUSB线)(注意不要使用USB3.0接口),然后使开发板进入Loader模式,此时你的计算机将检测到开发板,并且你将在设备管理器中看到它。

RK Driver Assistant Install Usb driver.png

现在驱动应该已经安装成功了。


手动安装

这里 下载(usb_driver_v3.5.zip) 文件,并解压该文件,关闭Radxa Rock开发板,然后使用MicroUSB线连接开发板和计算机,并让开发板进入 Loader模式,然后你的计算机应该检测到开发板,同时你在设备管理器中会看到一个未知设备。

Flash image 1.jpg

选择该未知设备,并右键点击它,然后选择“更新驱动程序软件”。

Flash image 2.jpg

选择“浏览计算机以查找驱动程序”

Flash image 2.5.jpg

选择浏览,并在弹出的窗口中找到之前下载并解压的 (usb_driver_v3.5.zip)文件夹,选择32/64位文件夹其中之一,然后点击OK来安装

Flash image 3.jpg

当驱动安装成功,你将在设备管理器中看到一个Rockusb设备

Flash image 6.jpg

现在驱动程序已经安装成功了。

烧写镜像

要烧写一个镜像文件,我们有两种方式.

  1. 使用 RKBatchTool (工厂用来升级固件的工具,只能烧写update.img,注意会擦除原有的任何东西)
  2. 使用 RKAndroidTool (开发工具,可以按区块烧写)


使用 RKBatchTool 烧写 update.img

这里下载RKBatchTool,然后解压,双击RKBatchTool.exe,你将看到如下界面:

Flash image 7.jpg

选择一个镜像(rockdev/update.img)。如果需要如何制作一个update.img文件的话,查看 update.img
Flash image 8.jpg

拔掉Radxa Rock开发板的电源,并使用MicroUSB线连接开发板与你的计算机,然后让开发板进入Loader模式,此时程序应该能检测到设备。
Flash image 9.jpg

单击“升级”按钮进行烧写,在烧写成功时,你将看到如下界面。
Flash image 10.jpg

如果烧写操作失败,那么可能是update.img存在错误,你可以尝试重做以上操作或者重新制作update.img!

使用RKAndroidTool 烧写选定的镜像 =

这里下载RKAndroidTools,并解压,然后双击RKAndroidTool.exe,你将看到以下界面:

Rkandroidtool flash image 1.png

拔掉Radxa Rock开发板的电源,连接开发板和计算机,并让开发板进入Loader模式,然后程序会自动检测到设备。

Rkandroidtool flash image 2.png

界面上有8个可选项,选择正确的行并且选中左边的选择框,然后你必须单击该行右侧的按钮,选择你想烧写的文件路径。你可以一次选择一个或者多个文件并烧写它们。最后单击“Run”烧写镜像(程序右侧的框里面会显示过程日志)。

Rkandroidtool flash image 3.png

Rkandroidtool flash image 4.png

如果成功的话,板子会自动断开,并且引导到系统。

请注意:

  1. 当你通过“./mkimage.sh.ota”打包镜像文件时,内核是包含在boot.img中的。详情请查看 Rock/Android_Build
  2. 你可以根据需要一次烧写一个或者多个镜像文件

故障排除

RKBatchTool 检测不到开发板

1.Loader模式 : USB 设备硬件: VID_2207&PID_310B
2.引导进Android: USB 设备硬件: VID_2207&PID_0006

Loader模式
我已经手动安装了驱动,并且Loader模式的USB为PID_310B,“Rockusb device”驱动在Vista上安装成功了,但是RKBatchTool连接不到RK3188的板子,导致无法烧写镜像。

对于Loader模式无法连接的问题[已解决]
根本原因:RK3188板通过USB3.0 PMMCIA卡连接到笔记本电脑。这是一个USB2.0到USB3.0的兼容性问题,所以USB3.0端口换成USB 2.0端口,然后RKBatchTool应该可以连接到RK3188板子来烧写镜像了。

烧写失败

烧写后,串口打印:

   DDR Version 1.04 20130517 In DDR3 300MHz Bus Width=32 Col=10 Bank=8 Row=15 CS=2 Die Bus-Width=16 Size=2048MB Memory OK OUT BUILD=====6 SdmmcInit=0 20 F:32 1061 0 0 40 FlashReadRetry error!!,row = fff000 FlashReadRetry error!!,row = fff000

同时无法引导。

如果烧写失败,尝试在烧写前格式化NandFlash。

  • RKAndroidTool - 单击 “Erease IDB”按钮,格式化NandFlash。
  • RKBatchTool - 单击 “Restore”按钮格式化,然后烧写镜像。


Preparing IDB failed

这发生在升级bootloader的时候,如果你需要升级bootloader或update.img中包含了一个新的引导程序,那么你可能会遇到这个问题。板子这是“变砖”了。。。按照这个 unbrick 说明解决它。

Linux

从Android 4.4起,Rockchip提供了一个在Linux系统下的升级工具(闭源)。叫做“upgrade_tool”。 它支持烧写update.img、parameter、bootloader和其他分区,注意它是基于命令行的工具。

rkflashkit 是一个用于烧写瑞芯微设备的开源图形界面版本软件。它不能烧写bootloader或者parameter,只支持烧写内核和其他分区,但是它支持备份这些分区。


针对开发者: “早期的Rockchip bootloader刷机协议的逆向工程工作是由 naobsd 完成的,并且由一些在使用 “rkflashtool”的人进行了改进,linuxerwang 制作了一个rkflashtool的GUI版本,叫做 “rkflashkit”,请注意:"rkflashtool" 和 “rkflashkit” 都不能烧写 update.img格式的刷机包 ,只能在 bootloader 模式下并且不在 mask rom 模式下烧写,因为这个 mask rom 升级协议还没有被逆向工程, 如果你对逆向工程刷机协议有兴趣,可以在 #radxa 的聊天室上找naobsd, bootloader 通常不会变动太大,已经可以保证日常使用了。如果你不明白这段话的意思,只要忽略它就可以了。”

Rockchip的升级工具

这里下载Rockchip的Linux升级工具并解压,然后你会得到一个在Linux下二进制可执行文件,叫做“upgrade_tool”。

烧写 update.img

让板子进入Loader模式并运行以下命令烧写 update.img格式的刷机包

  sudo ./upgrade_tool uf  /path/to/update.img          #(UF Upgrade Flash)

如果你在升级过程中有一个错误,你可以首先使用以下命令来低格nandflash:

   sudo ./upgrade_tool lf       #(LF Lowlevel Format) This will erase everything on nand

烧写 parameter

   sudo ./upgrade_tool di -p /path/to/parameter    #(DI Download Image)

烧写 bootloader

   sudo ./upgrade_tool ul /path/to/bootloader  #(UL Upgrade Loader)

烧写内核(boot.img)

   sudo ./upgrade_tool di -b /path/to/boot.img    #(DI Download Image)

其他

有一些在upgrade_tool中使用的其他命令,比如:

   UL: 升级Loader
   EF: 擦除nand flash

图形化版本工具 - Rkflashkit

你可以从 这里下载已经编译好的rkflashkit,或者使用以下命令自己编译它:

   git clone https://github.com/linuxerwang/rkflashkit 
   cd rkflashkit 
   ./waf debian 

并使用以下命令安装:

   sudo apt-get install python-gtk2 
   sudo dpkg -i rkflashkit_0.1.1_all.deb

使用以下命令运行:

   sudo rkflashkit

你会看到如下的界面:

Rkflashkit1.png

连接Radxa Rock开发板和计算机,并且让板子进入Loader模式 ,你将看到程序在Loader模式下检测到板子。

  1. 单击 Nand partition,然后你会看到板子的分区列表,然后从其中选择一个你要烧写的分区。
  2. 选择你想烧写到这个分区的镜像文件目录
  3. 单击 “Flash image” 按钮,就会开始烧写。
  4. 烧写结束后,单击“Reboot Device”按钮重启板子


Rkflashkit2.png Rkflashkit3.png

不用计算机在RR上烧写镜像

如果你想不用其他任何计算机,在Rockchip Rock板上写镜像,你可以下载镜像,并使用dd写:

    sudo dd if=XXX.img of=/dev/block/mtd/by-name/XXX bs=16384 conv=sync,fsync