ALT Mobile/Портативные приставки Anbernic
Данная инструкция описывает процесс подготовки игровых приставок Anbernic для запуска на них ОС Альт, в частности, ALT Mobile
Возможность запуска была протестирована на следующих моделях приставок:
на базе RK3399
- Anbernic RG 552
на базе RK3566
- Anbernic RG 353M
- Anbernic RG Arc D и S
Подготовка карты памяти
Устанавливаем утилиту alt-rootfs-installer
su -
apt-get install alt-rootfs-installer
Скачиваем образ с ядром rocknix для RG 552:
wget https://beta.altlinux.org/mobile/20240625/alt-mobile-phosh-rocknix-ad-20240625-aarch64.img.xz
или pine для RG 353M:
wget https://beta.altlinux.org/mobile/20240625/alt-mobile-phosh-pine-ad-20240625-aarch64.img.xz
Вставляем адаптер с картой памяти в порт USB и в режиме суперпользователя выполняем команду
Для Anbernic RG 552:
alt-rootfs-installer --image-in=/путь/до/образа.img.xz --media=/dev/sdX --target=anbernic-rg552-rk3399
Для Anbernic RG 353M:
alt-rootfs-installer --image-in=/путь/до/образа.img.xz --media=/dev/sdX --target=anbernic-rgxx3-rk3566
где /dev/sdX - путь до нашей карты памяти.
Подготовка приставки
К превеликому сожалению, на текущий момент (31 мая 2024 года), для успешной загрузки и запуска ОС семейства АЛЬТ на данных устройствах придётся затереть стоковый Android вместе с загрузчиком, ибо ни с чем, кроме стоковой прошивки от самой Anbernic, а также костылями с разбивкой карты памяти и патчами для загрузчика, он нормально не дружат.
Подход 1 - простой.
Для него ещё понадобится карта памяти объёмом от 128 гигабайт, если мы хотим в будущем восстановить стоковый Android. Если же сохранения Android не планируется, то пункты с 4 по 7 можно проигнорировать.
0. Переводим устройство в режим Recovery, зажав при запуске клавишу увеличения громкости. Мы попадаем в меню восстановления системы.
Подключаем устройство к ПК через разъём, который подписан как OTG.
1. Устанавливаем android-tools:
su -
apt-get install andriod-tools
2. Вводим одну за другой команды, дожидаясь завершения выполнения каждой из них.
adb devices - Ищем наше устройство. Должна появиться строка к кодовым номером и названием "Recovery"
adb root - получаем привелегии суперпользователя на системе устройства
adb shell - заходим в устройство
3. Ищем блочное устройство памяти, которое будем затирать.
ls /dev/block/ | grep mmcblk
Встроенная память определится как /dev/block/mmcblkX, с кучей разделов.
4. Вставляем карту памяти во второй слот, она определится как /dev/block/mmcblkY, с одним разделом.
5. Монтируем раздел нашей карты памяти:
mount /dev/block/mmcblkYp1 /mnt
6, Создаём образ с содержимым eMMC
dd if=/dev/block/mmcblkX of=/mnt/android_rg552.img
Создание образа будет долгой (объём встроенной памяти - 64 гигабайта).
7. После завершения процесса отмонтируем карту памяти
umount /mnt
и вынимаем карту из приставки
8. Начинаем затирание встроенного ПЗУ
dd if=/dev/zero of=/dev/block/mmcblkX bs=4M
И ждём, пока утилита нам не скажет, что место закончилось.
Вот и всё. По идее, теперь Альт должен загрузиться с карты памяти без проблем.
Подход 2 - Сложный.
При применении данного подхода можно морально попрощаться с гарантией, а в случае неправильного выполнения действий - и с самой приставкой :)
Подготовка железа (на примере RG 552)
1. Выкручиваем четыре шестигранных винта на задней крышке
2. Снимаем крышку, аккуратно отщёлкивая защёлки.
3. Выкручиваем внутренние винтики, удерживающие плату в корпусе
4. КРАЙНЕ АККУРАТНО отключаем все провода и шлейфы.
5. Аккуратно отключаем аккумулятор и переворачиваем плату.
6. Откручиваем 4 винтика, которые держат радиатор. Возвращаем плату в прежнее положение и снимаем радиатор с кулером.
7. У верхнего правого угла платы находим надпись "DEBUG". Рядом с ней находятся 4 контактные площадки.
8. АККУРАТНО припаиваем тонкие проводочки (можно взять из витой пары) к 3-м из 4-ёх: GND (земля), RX и TX
9. Выводим проводки наружу. Можно проделать отверстие или просто аккуратно обрезать пластик по краю корпуса
10. Производим сборку в порядке, обратном разборке.
11. Подключаем проводочки согласно распиновке к TTL адаптеру.
Подготовка ОС
1. Записываем на карту памяти образ ALT Mobile
2. Монтируем штатными средствами ОС карту памяти.
3. Правим с правами root файл /boot/extlinux в корне главного раздела карты памяти - приписываем в строчке fdtdir следующее:
fdt ../dtb/rockchip/rk3399-rockpro64-v2.dtb
В строчке append прописываем следующее: append root=UUID=<значение UUID нашего накопителя> ro loglevel=3 splash psi=1 console=ttyS2,1500000n8
4. Сохраняем результат, отмонтируем карту памяти и вставляем её в ГЛАВНЫЙ, первый по порядку слот.
5. Подключаемся к TTL консоли: pyserial-miniterm --eol CRLF --raw /dev/ttyUSB0 1500000
6. Включаем приставку и сразу же быстро нажимаем сочетание клавиш Ctrl+C на клавиатуре.
7. Всё, мы попали в командную консоль загрузчика U-Boot.
8. Набираем в этой консоли следующие команды:
mmc dev 1 - переключаем загрузочное устройство run bootcmd_mmc1 - запускаем загрузку с карты памяти
9. Выбираем нужный пункт загрузки с помощью цифр и грузим ОС
Восстановление Android
Для восстановления Android нужно:
1. Вставить карту с образом Android во второй слот приставки;
2. Запустить терминал и перейти в режим рута;
su -
3. Посмотреть список блочных устройств:
lsblk
Накопитель объёмом 58,2G с названием, схожим с mmcblkXboot1, и есть наша встроенная память, а устройство вида /dev/mmcblkApB с одним разделом без точки монтирования - карта памяти с образом.
4. Примонтировать раздел карты памяти с образом:
mount /dev/mmcblkApB /mnt
5. Записать образ стокового Android обратно во встроенную память с помощью dd:
dd if=/mnt/android_rg552.img of=/dev/mmcblkX oflag=direct,sync iflag=fullblock bs=1M status=progress
6. По завершении записи выключить приставку, вынуть обе карты памяти, и включить устройство. Android должен начать загрузку.