Rock/flash the image/zh cn
Contents
这个页面描述怎么往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下有两种方式安装该驱动:
- 使用RKDriverAssistant tools安装 - 比较容易的方式
- 手动安装
如果你已经安装好了USB驱动,请跳过此步骤。
使用RK Driver Assistant tools安装
在此安装过程中不需要连接Rockchip设备,只需要下载并解压RKDriverAssistant.zip,然后在RKDriverAssistant目录下的DriveInstall.exe上双击运行即可。 如果你之前为其他Rockchip设备安装过Rockchip USB驱动,确保首先点击"Uninstall Driver"。
然后点击 “Install Driver” 。当安装完成时,关闭Radxa Rock开发板,并将开发板与你的计算机连接起来(使用MicroUSB线)(注意不要使用USB3.0接口),然后使开发板进入Loader模式,此时你的计算机将检测到开发板,并且你将在设备管理器中看到它。
现在驱动应该已经安装成功了。
手动安装
从 这里 下载(usb_driver_v3.5.zip) 文件,并解压该文件,关闭Radxa Rock开发板,然后使用MicroUSB线连接开发板和计算机,并让开发板进入 Loader模式,然后你的计算机应该检测到开发板,同时你在设备管理器中会看到一个未知设备。
选择该未知设备,并右键点击它,然后选择“更新驱动程序软件”。
选择“浏览计算机以查找驱动程序”
选择浏览,并在弹出的窗口中找到之前下载并解压的 (usb_driver_v3.5.zip)文件夹,选择32/64位文件夹其中之一,然后点击OK来安装
当驱动安装成功,你将在设备管理器中看到一个Rockusb设备
现在驱动程序已经安装成功了。
烧写镜像
要烧写一个镜像文件,我们有两种方式.
- 使用 RKBatchTool (工厂用来升级固件的工具,只能烧写update.img,注意会擦除原有的任何东西)
- 使用 RKAndroidTool (开发工具,可以按区块烧写)
使用 RKBatchTool 烧写 update.img
从这里下载RKBatchTool,然后解压,双击RKBatchTool.exe,你将看到如下界面:
选择一个镜像(rockdev/update.img)。如果需要如何制作一个update.img文件的话,查看 update.img。
拔掉Radxa Rock开发板的电源,并使用MicroUSB线连接开发板与你的计算机,然后让开发板进入Loader模式,此时程序应该能检测到设备。
如果烧写操作失败,那么可能是update.img存在错误,你可以尝试重做以上操作或者重新制作update.img!
使用RKAndroidTool 烧写选定的镜像 =
从这里下载RKAndroidTools,并解压,然后双击RKAndroidTool.exe,你将看到以下界面:
拔掉Radxa Rock开发板的电源,连接开发板和计算机,并让开发板进入Loader模式,然后程序会自动检测到设备。
界面上有8个可选项,选择正确的行并且选中左边的选择框,然后你必须单击该行右侧的按钮,选择你想烧写的文件路径。你可以一次选择一个或者多个文件并烧写它们。最后单击“Run”烧写镜像(程序右侧的框里面会显示过程日志)。
如果成功的话,板子会自动断开,并且引导到系统。
请注意:
- 当你通过“./mkimage.sh.ota”打包镜像文件时,内核是包含在boot.img中的。详情请查看 Rock/Android_Build。
- 你可以根据需要一次烧写一个或者多个镜像文件
故障排除
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
你会看到如下的界面:
连接Radxa Rock开发板和计算机,并且让板子进入Loader模式 ,你将看到程序在Loader模式下检测到板子。
- 单击 Nand partition,然后你会看到板子的分区列表,然后从其中选择一个你要烧写的分区。
- 选择你想烧写到这个分区的镜像文件目录
- 单击 “Flash image” 按钮,就会开始烧写。
- 烧写结束后,单击“Reboot Device”按钮重启板子
不用计算机在RR上烧写镜像
如果你想不用其他任何计算机,在Rockchip Rock板上写镜像,你可以下载镜像,并使用dd写:
sudo dd if=XXX.img of=/dev/block/mtd/by-name/XXX bs=16384 conv=sync,fsync