Прошивка нового загрузчика на TV box, запуск Debian с Флешки и перенос на eMMC вместо Android
В статье пойдет речь о том, как из приставки x96 на чипе s905x сделать полноценный мини ПК на Linux.
Translation to English is here . Также основной канал в telegram
Т.к. статья была написана в 2020, то проверяйте актуальность информации. В 2022 вышло обновление — ссылка в конце.
Восстановив прошивку на ТВ боксе по этой инструкции↓, мы получаем слегка глючащий андроид, что, конечно, нас не устраивает и не радует.
В этой статье↓ я рассказал, как запустить Linux, но не обмолвился как перейти от шага 1 к шагу 2. Итак, исправляемся.
Скачиваем по этой ссылке образ или у меня в облаке . Можно прошить через Etcher, например. У меня же по двойному клику запускается Pi imager и прошивает, что круто тем, что образ в сжатом состоянии в 10-15 раз меньше весит и прошивать его, не распаковывая — здорово экономит место.
Перетыкаем флешку и правим название файла u-boot-s905x-s912 по инструкции в u-boot.ext. В этой статье, я кажется, все описывал.
Убеждаемся в наличии файла aml_autoscript.zip и в папке Boot, правим файл extlinux.conf. Мой выглядит так:
LABEL Armbian
LINUX /zImage
INITRD /uInitrd
FDT /dtb/amlogic/meson-gxl-s905x-nexbox-a95x.dtb
APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0
На этом, в принципе — все. Вставляем флешку в приставку, заходим в обновления и выбираем единственный файл aml_autoscript.zip. После перезагрузки приставка уже загрузится в Linux с флешки. Создаем пароль root, затем создаем пользователя и выполняем команды:
Выполнится скрипт и медленно, но уверенно скопирует все в eMMC, тщательно затерев Android. Извлекаем флешку и перезагружаемся. Убеждаемся, что все работает.
Образ выложил тут :
Armbian_20.05.6_Arm-64_buster_current_5.7.2_20200612.img.7z — его я пробовал. С USB флешки он у меня даже не запустился. с SD запустился и успешно установился на eMMC.
Armbian_20.10_Arm-64_buster_current_5.9.0.img.xz — его я пробовал. С USB флешки он у меня успешно запустился. Но после установки циклично не видит eMMC и пытается загрузить еще откуда-нибудь. Возможно, стоит пробовать устанавливать с SD.
У Вас могут быть отличия, но принцип примерно одинаковый.
Ну и не забываем про написанное ниже↓, всем добра! ☺
Мой блог является некоммерческим, поэтому позитивный комментарий, лайк или репост поможет публикациям выходить чаще и развивать канал☺.
Также публикации можно найти на других площадках: Instagram , telegram ( RU , EN , DE ), Medium , LiveJournal , YouTube .
UPD1: Данная статья не потеряла актуальности, однако получила обновление:
Mr. Blue Coat
The X96 Max tv box is notable for being cheap, containing a gigabit Ethernet port (4GB RAM model), DDR4 memory, and an S905X2 processor.
The X96 Max+ (X96 Max Plus) tv box is notable for being cheap, containing a gigabit Ethernet port (4GB RAM model), and an S905X3 processor.
Depending on your needs it might be the perfect mini-server if a Raspberry Pi 4 is too expensive for you.
Armbian Linux installation:
1. Join in a moment of silence to honor balbes150 who makes this all possible 🙂
2. Download your desired Armbian image (I used Armbian_20.10_Arm-64_buster_current_5.9.0.img.xz) and load it onto a microSD card using Etcher
3. Eject and re-insert microSD card.
4. In the BOOT drive, rename u-boot-s905x2-s922 to u-boot.ext
5a. IF using the X96 Max:
In the BOOT drive open the extlinux folder and edit extlinux.conf to replace all the file contents with this and save and close:
LABEL Armbian
LINUX /zImage
INITRD /uInitrd
FDT /dtb/amlogic/meson-g12a-x96-max.dtb
APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0
5b. IF using the X96 Max+ (Plus):
Download hk1box-bootloader.img.xz (source: flippy) and extract hk1box-bootloader.img
In the ROOTFS drive open the root folder (requires admin rights) and copy hk1box-bootloader.img into it.
In the BOOT drive open the dtb folder and then the amlogic folder and then download meson-sm1-x96-max-plus-100m.dtb and meson-sm1-x96-max-plus.dtb into it (source: flippy)
In the BOOT drive open the extlinux folder and edit extlinux.conf to replace all the file contents with this and save and close:
LABEL Armbian
LINUX /zImage
INITRD /uInitrd
FDT /dtb/amlogic/meson-sm1-x96-max-plus-100m.dtb
APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0
6. Eject the microSD card and load into the X96 device (card inserts upside down)
7. Plug an Ethernet cable into the device
8. Insert a dull toothpick into the AV hole to push and hold the embedded reset button:
9. With the reset button pressed, use other hand to connect the power supply and wait 3 seconds and then remove the toothpick from the AV hole.
10. Wait about a minute and then SSH into the device with username root and password 1234 (you can check your router to look for the new IP device or tools like an IP scanner or nmap).
If you don’t see an SSH login after a couple minutes, unplug and retry the toothpick method again. If you still don’t see an SSH login after a few tries you’ll likely need to reflash the stock firmware:
If you don’t have one, buy a USB-to-USB data cable.
Unplug the unit, disconnect the Ethernet cable, and remove the microSD card.
On a Windows machine install the USB Burning Tool and reboot.
Next, download the firmware for the X96 Max (you must use the older Android 8 firmware; 9+ doesn’t work) or X96 Max+
Follow this guide to install the firmware.
Repeat steps 6-10 to get an SSH prompt.
11a. IF using the X96 Max:
After Armbian is configured, run /root/install-aml.sh to install Armbian to the internal eMMC chip.
11b. IF using the X96 Max+ (Plus):
After Armbian is configured, run these commands:
dd if=/root/hk1box-bootloader.img of=/dev/mmcblk2 bs=1 count=442
dd if=/root/hk1box-bootloader.img of=/dev/mmcblk2 bs=512 skip=1 seek=1
sync
shutdown now
Unplug the power, remove the microSD card, and insert into computer.
In the BOOT drive open the extlinux folder and edit extlinux.conf to replace all the file contents with this and save and close:
LABEL Armbian
LINUX /zImage
INITRD /uInitrd
FDT /dtb/amlogic/meson-sm1-x96-max-plus.dtb
APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0
Insert the microSD card into the X96 device and plug in the power. Wait about a minute for it to boot and SSH into it.
Run /root/install-aml.sh to install Armbian to the internal eMMC chip.
12. Once the script indicates the copy is complete run shutdown now then unplug, remove the SD card, and plug in device. The device should now boot into Armbian directly from the internal eMMC chip.
As a bonus, you can install DietPi for a faster system:
apt-get update; apt-get install -y systemd-sysv ca-certificates sudo wget locales —reinstall
wget https://raw.githubusercontent.com/MichaIng/DietPi/master/.build/images/dietpi-installer
Performance compared to Raspberry Pi 4:
Raspberry Pi 4 Model B (2GB LPDDR4 RAM) 32-bit:
- CPU Performance: Duration = 8.80 seconds (lower is faster)
- CPU Temp: Idle = 38’c | Full load = 48’c
- RootFS: Write = 18 MiB/s | Read = 41 MiB/s
- RAM: Write = 339 MiB/s | Read = 606 MiB/s
Raspberry Pi 4 Model B (2GB LPDDR4 RAM) 64-bit:
- CPU Performance: Duration = 7.27 seconds (lower is faster)
- CPU Temp: Idle = 45’c | Full load = 52’c
- RootFS: Write = 18 MiB/s | Read = 22 MiB/s
- RAM: Write = 448 MiB/s | Read = 1163 MiB/s
- CPU Performance: Duration = 10.39 seconds (lower is faster)
- CPU Temp: Idle = 36’c | Full load = 44’c
- RootFS: Write = 35 MiB/s | Read = 43 MiB/s
- RAM: Write = 555 MiB/s | Read = 978 MiB/s
- CPU Performance: Duration = 10.78 seconds (lower is faster)
- CPU Temp: Idle = 36’c | Full load = 50’c
- RootFS: Write = 53 MiB/s | Read = 154 MiB/s
- RAM: Write = 507 MiB/s | Read = 868 MiB/s
P.S. if you get stuck you can always restore your OEM stock image back to the device using a Windows machine and the USB Burning Tool (version 2.1.7.3 worked best for me rather than newer versions). You can use it to flash the original firmware for the X96 Max or X96 Max+
- Get link
- Other Apps