«Пингвины» тоже могут! Прошивка Mini PC на базе чипов RK3066/RK3188 в Linux

Здравствуйте друзья. Ранее, когда я описывал процесс прошивки Android Mini PC AD6333,  как-то незаслуженно обошел стороной процедуру «заливки» firmware средствами OC Linux. Я даже устанавливал Windows XP для этого. Каюсь, это было глупо, потому как существует специальный инструмент и для «красноглазиков».

Прошивка отдельных разделов NAND - утилита rkflashkit

Сама программка по функциональности похожа на RkAndroidTool, также можно прошить отдельные области NAND: system, boot, kerel, recovery... Софт необходимо будет скачать с GitHub.com, запустить сборку deb пакета и потом его установить в систему. Всё это у меня прошло без проблем. 

Скачиваем исходный код утилиты:

paulo@sirius:~$ git clone https://github.com/linuxerwang/rkflashkit

Заходим в папку с кодом:

paulo@sirius:~$ cd rkflashkit

Выполняем команду быстрой сборки пакета из исходного кода, используя WAF:

paulo@sirius:~$ ./waf debian

Пакет под названием rkflashkit_x.y.z_all.deb будет находится в текущей директории, x.y.z — конкретная версия утилиты. 

Если у вас ещё не установлены модули, позволяющие работать программам, написанным на Phyton, с интерфейсом GTK+, то нужно будет дополнительно установить пакет python-gtk2

Устанавливаем пакеты в систему:
paulo@sirius:~$ sudo apt-get install python-gtk2
paulo@sirius:~$ sudo dpkg -i rkflashkit_x.y.z_all.deb 

На этом настройка системы завершена. У меня в среде MATE эта утилита прописалась в раздел «Системные», от туда мы её и запустим. Вот скриншоп программы:

Не было устройства под рукой, чтобы его прошить. Далее привожу переведенную инструкцию с сайта cnx-software.com, где я и нашёл весь процесс «заливки» под OC Linux. 

Существует одна проблема в процессе прошивки — это формат файла с образом. Дело в в том, что firmware для RKBatchTool нельзя напрямую использовать в rkflashkit. Но существуют дополнительные инструменты для извлечения файла нужного раздела из таких прошивок.

Опять же берём утилиту с сайта  GitHub.com, называется она rk-tool:

paulo@sirius:~$ git clone https://github.com/rk3066/rk-tools.git 
paulo@sirius:~$ cd rk-tools

Устанавливаем «батарейки» к данной утилите, удовлетворяя все зависимости:
paulo@sirius:~/rk-tools$ sudo apt-get install libssl-dev libcrypto++-dev

Распаковываем прошивку для другого формата:
paulo@sirius:~/rk-tools$ ./img_unpack update_AD6333_4.2.2_20140121.img update_AD6333_4.2.2_20140121_unpack.img
rom header code: 1050000
rom version: 4.1.1
build time: 2014-01-21 15:27:26
chip: 60
checking md5sum....OK

Теперь извлекаем файлы для конкретных разделов NAND из стоковой, распакованной прошивки в директорию «firmware» при помощи команды afptool:
paulo@sirius:~/rk-tools$ ./afptool -unpack update_AD6333_4.2.2_20140121_unpack.img firmware

Check file...OK
------- UNPACK -------
package-file    0x00000800    0x00000238
RK30xxLoader(L)_V1.22.bin    0x00001000    0x0002EC7A
parameter    0x00030000    0x00000289
Image/misc.img    0x00030800    0x0000C001
Image/kernel.img    0x0003D000    0x009D4030
Image/boot.img    0x00A11800    0x00217B08
Image/recovery.img    0x00C29800    0x00DC0000
Image/system.img    0x019E9800    0x19B7AC00
parameter    0x1B564800    0x0000027D
SELF    0x00000000    0x1B566004
Skip SELF file.
update-script    0x1B565000    0x000003A5
recover-script    0x1B565800    0x0000010A
UnPack OK!

Теперь можно использовать программу rkflashkit, используя полученные файлы в директории firmware для конкретных разделов NAND как и в утилите RkAndroidTool.

Прошивка одним файлом

Воспользуемся утилитой от изготовителя Rockchip - Upgrade_tool для Linux, скачать можно здесь

Распаковываем архив в домашнюю директорию и переходим в папку с программой:

paulo@sirius:~$ cd  Linux_Upgrade_Tool_v1.21

Запускаем процедуру прошивки, предварительно введя устройство в соответствующее состояние: 

paulo@sirius:~/Linux_Upgrade_Tool_v1.21$ sudo ./upgrade_tool uf  update_AD6333_4.2.2_20140121.img

перед тем как выполнять вышеуказанную команду, нужно скопировать файл update_AD6333_4.2.2_20140121.img в папку с  upgrade_tool.

Если ранее, во время прошивки, возникли какие-либо ошибки нужно выполнить низкоуровневое форматирование NAND:

paulo@sirius:~/Linux_Upgrade_Tool_v1.21$ sudo ./upgrade_tool lf  # LF - низкоуровневое форматирование, это полностью сотрёт все данные.

Этой же утилитой можно прошить и отдельные разделы NAND подробности читайте здесь. Успехов!