Коротко: подробная, пошаговая инструкция по сборке rkdeveloptool на Manjaro/Arch, переводу платы в Maskrom, загрузке загрузчика (loader) и записи образа Napi/Armbian в внутреннюю память (eMMC/NAND).
Введение
Многие одноплатные компьютеры на Rockchip (включая Napi C / Rock Pi S) позволяют записать полный образ Linux прямо во внутреннюю память (eMMC / NAND) в режиме Maskrom с помощью утилиты rkdeveloptool. Подход удобен для долгосрочной работы — устройство не зависит от SD-карты.
Эта инструкция адаптирована под Manjaro / Arch Linux (pacman), но команды в ней также легко переносимы на Debian/Ubuntu (apt).
Внимание: операция полностью перезаписывает внутреннюю память. Все данные на eMMC будут утрачены. Перед началом выньте SD-карту.
Что нужно и подготовка
Аппаратное
- ПК с Linux (Manjaro/Arch) и портом USB-A
- USB Type-C — USB-A кабель (кабель должен поддерживать передачу данных)
- Napi C / Rock Pi S с кнопкой Maskrom (или комбинацией кнопок для входа в Maskrom)
- SD-карта (для загрузки образа и/или тестов), но перед записью во внутреннюю память SD должна быть извлечена
Программное (на ПК, Manjaro)
- Manjaro / Arch с доступом
sudo - Пакеты:
base-devel,libusb(для сборкиrkdeveloptool)
Файлы, которые понадобятся
- Загрузчик (loader) для вашего SoC (RK3308 или RK3308B-S) — см. раздел выбора loader.
- Образ системы (napilinux / armbian / другой) в формате, который поддерживает устройство.
Как понять, какой у вас SoC (RK3308 vs RK3308B-S)
Если устройство загружается в Linux (по UART или по сети), выполните:
cat /proc/device-tree/compatible
Примеры вывода:
rockchip,rk3308— RK3308 → используемrk3308_loader_uart0_m0_emmc_port_support_sd_20190717.binrockchip,rk3308b— RK3308Brockchip,rk3308bs— RK3308B-S → используемrk3308_loader_ddr589MHz_uart0_m0_v2.06.136sd.bin
Примечание: у Napi C существуют ревизии на RK3308 и на RK3308B-S — важно не перепутать.
1. Установка зависимостей и сборка rkdeveloptool на Manjaro
Откройте терминал и выполните шаги ниже.
1.1 Устанавливаем зависимости
sudo pacman -Syu—needed base-devel libusb gitwget patch
base-develвключает gcc, make, autoconf, automake и т. д.libusb— библиотека для доступа к USB-устройствам.
1.2 Клонируем репозиторий и собираем
git clone https://github.com/rockchip-linux/rkdeveloptool.git
cd rkdeveloptool

# Если в репозитории есть autogen.sh — запустите его
if [ -f autogen.sh ]; then
./autogen.sh
else
aclocal
autoconf
automake —add-missing
fi
./configure
make
1.3 Проблемы при сборке и патч
Если make падает из-за ошибок в main.cpp (частая проблема для новых версий libusb), примените патч, используемый в гайдах Napi:
wget https://raw.githubusercontent.com/dmnovikov/napiguide/main/patches/main.patch -O main.patch
patch main.cpp -i main.patch
make
После успешной сборки установите бинарник:
sudocp rkdeveloptool /usr/local/bin/
sudochmod755 /usr/local/bin/rkdeveloptool
rkdeveloptool —help

2. Подготовка файлов: loader и образ системы
2.1 Где взять загрузчик (loader)
Скачайте соответствующий loader для вашего чипа с сайта Radxa или зеркал.
- Для RK3308 (старый) используйте:
rk3308_loader_uart0_m0_emmc_port_support_sd_20190717.bin
- Для RK3308B-S используйте:
rk3308_loader_ddr589MHz_uart0_m0_v2.06.136sd.bin
Официальный каталог загрузчиков Radxa: https://dl.radxa.com/rockpis/images/loader/

2.2 Где взять образ системы
Например, официальный NapiLinux / Armbian:
- Napi:
https://download.napilinux.ru/linuximg/ - Armbian:
https://www.armbian.com/(или образ, подготовленный для Rock Pi S)
Скачайте .img файл, подходящий для вашей платы.

3. Запись в внутреннюю память (Maskrom + rkdeveloptool)
Важное предупреждение: SD-карта должна быть извлечена перед тем, как вы начнёте процедуру записи в eMMC/nand. В противном случае запись будет заблокирована.
3.1 Ввод платы в Maskrom (аппаратный режим)
- Подключите плату к ПК кабелем USB-C → USB-A.
- Зажмите аппаратную кнопку
Maskrom(или эквивалентную на вашей плате). - Пока держите
Maskrom, нажмите короткоResetи отпустите Reset, не отпуская Maskrom. - Через 2–3 секунды отпустите
Maskrom.
Поведение кнопок зависит от ревизии платы — на некоторых платах комбинация другая (узнайте по документации платы).
3.2 Проверяем, что устройство видно в системе
lsusb | grep2207
Должно появиться устройство с VID:PID 2207:330e или похожим, вывод rkdeveloptool ld покажет Maskrom.
rkdeveloptool ld
# Ожидаемый вывод:
# DevNo=1 Vid=0x2207,Pid=0x330e Maskrom
Если не видно — проверьте кабель и повторите процедуру Maskrom.

3.3 Загружаем bootloader (loader) в оперативную память платы
Пример (loader имя loader.bin — переименуйте ваш файл):
sudo rkdeveloptool db rk3308_loader_uart0_m0_emmc_port_support_sd_20190717.bin
Успешный вывод — утилита завершится без ошибок.

3.4 Записываем образ системы в eMMC
sudo rkdeveloptool wl 0 napilinux-image-file.img
wl 0— записать образ в нулевой слот eMMC.- Запись может занять несколько минут.
В документации написано — При успешной загрузке прошивки через некоторое время замигает красный индикатор. Но у меня ничего незамигало красным. Так же горел зеленый индикатор.

4. Очистка eMMC (если нужно)
Если нужно стереть ранее записанный образ и вернуть eMMC в «нулевое» состояние, можно записать нулевой образ.
dd if=/dev/zero of=zero.img bs=4M count=10
Запустите плату в Maskrom, загрузите loader и выполните:
sudo rkdeveloptool wl 0 zero.img
После — перезагрузите устройство:
sudo rkdeveloptool rd
5. Проверка и отладка после прошивки
5.1 Проверяем UART-лог (через minicom / picocom)
Подключитесь к UART-у (обычно /dev/ttyUSB0) со скоростью 1500000. Пример команды:
sudo picocom -b1500000 /dev/ttyUSB0
# или
sudo minicom -D /dev/ttyUSB0 -b1500000
Смотрите на загрузочные сообщения: U-Boot должен загрузиться, затем ядро — и вы увидите приглашение login.
5.2 Если устройство не загружается
- Убедитесь, что использован правильный loader для вашего SoC (см. раздел выбора loader).
- Проверьте, что SD-карта извлечена (в режиме записи — SD блокирует запись).
- Проверьте вывод
rkdeveloptool ld— устройство должно быть в Maskrom. - Убедитесь в целостности образа (
sha256sum), попробуйте другой образ.
6. Частые ошибки и решения
«Device not found» или rkdeveloptool ld ничего не возвращает
- Используйте другой USB кабель (многие кабели — только для зарядки).
- Подключайте кабель к заднему USB порту ПК (не через хаб).
- Попробуйте другой USB порт.
«Permission denied» при доступе к USB
- Запускайте
rkdeveloptoolсsudo.
Сборка rkdeveloptool даёт ошибки компиляции
- Примените патч
main.patch(см. раздел 1.3). - Убедитесь, что установлены
base-devel,libusb.
«Image too large» при записи во внутреннюю память
- eMMC маленького объёма (4 ГБ) не вмещает стандартный образ. В этом случае:
- Используйте схему: загрузчик в eMMC, система на SD/NVMe/USB.
- Или подготовьте минимальный образ, уменьшив rootfs.
9. Ссылки и ресурсы
- rkdeveloptool GitHub: https://github.com/rockchip-linux/rkdeveloptool
- Radxa loaders: https://dl.radxa.com/rockpis/images/loader/
- NapiLinux downloads: https://download.napilinux.ru/linuximg/
- Патч main.patch (Napi guide): https://raw.githubusercontent.com/dmnovikov/napiguide/main/patches/main.patch