[Radxa Rock]如何刷机到NAND闪存

这个页面描述怎么往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
分享到: