Skip to content
HN On Hacker News ↗

ZTE B860H: Getting Armbian into it

▲ 7 points • 0 comments • by airhangerf15 • 3w ago • HN discussion ↗

Pangram verdict · v3.3

We believe that this entire text is human-written.

0 %

AI likelihood · overall

Human
100% human-written 0% AI-generated
SEGMENTS · HUMAN 1 of 1
SEGMENTS · AI 0 of 1
WORD COUNT 1,603
PEAK AI % 0% · §1
Analyzed
Sep 16
backend: pangram/v3.3
Segments scanned
1 windows
avg 1603 words each
Distribution
100 / 0%
human / AI fraction
Verdict
Human
Pangram v3.3

Article text · 1,603 words · 1 segments analyzed

Human AI-generated
§1 Human · 0%

This blog will cover the Armbian installation guide for B860H V1 / V2. Caution: This model MUST not be confused with V5, as both revision have an entirely different hardware inside. The method that's used here will not be requiring the set top box to be already rooted, or at most, outside of the stock rom. Assuming that the STB is still in the stock. At best, It's recommended to do all of the flashing in Linux desktop, Otherwise the Windows equivalent exists, which i will talk about later. Requirements Installation Flashing the Armbian Flashing the U-Boot Flashing TL;DR To the box... Installing to eMMC Extra: Setting up zram Extra: Setting up irqbalance Trivia Baffled? This guide also works on FiberHome HG680P box (however, check Trivia). Requirements A Personal Computer with microSD slot (otherwise, use microSD<–>USB adapter. These will work) A microSD card (Use class 10 microSD card if you're going to use this as main) A specifcally made HDMI Boot Dongle which you can made yourself or by purchasing an already premade one via online store (id: Shopee Indonesia | global: Tindie) The actual box itself (B860H) that can still be powered on regardless the boot state (LED is orange, or green, or whatever. does not matter it's rooted, still in stock, or not). Not copy and pasting blindly the attached commands Installation The B860H must use the HG680P U-Boot bootloader to work, Which you can obtain it from here (save it as u-boot.bin). The following steps must be done in order. 1. Flashing the Armbian You can obtain the Armbian image from ophub/amlogic-s9xxx-armbian, With each consisting of different distros. For example, as of the time of this writing: – resolute is a Ubuntu edition of Armbian OS – trixie is a Debian edition of Armbian OS. You will want to look for a release with the two keywords: s905x, and b860h. For example: Armbian_26.11.0_amlogic_s905x-b860h_trixie_6.18.51_server_2026.09.14.img.gz Once you have downloaded it, Uncompress it: gzip -k -d -v Armbian_26.11.0_amlogic_s905x-b860h_trixie_6.18.51_server_2026.09.14.img.gz Note: Adjust the filename with the release that you have downloaded. Insert a microSD card to be flashed on, check where it was located: yonle@yonle:/mnt$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS mmcblk0 179:0 0 58.6G 0 disk ├─mmcblk0p1 179:1 0 511M 0 part └─mmcblk0p2 179:2 0 58.1G 0 part In this case, it's /dev/mmcblk0 Special: If you're using an SDcard USB adapter, These usually are named with sd[a...c] prefix (example: sdb). It must not be confused with an existing main SATA drive. and then flash the Armbian image to the card: sudo dd if=Armbian_26.11.0_amlogic_s905x-b860h_trixie_6.18.51_server_2026.09.14.img of=/dev/mmcblk0 bs=4M status=progress sync (yes, sync IS a command) Adjust /dev/mmcblk0 to the path to your microSD slot, Which you can check via lsblk command. Caution: Doing this will wipe ALL the datas that's in the microSD card. Please back up important stuff if there's one before proceeding. There is no need to alter the BOOT partition after flashing as these will be done automatically during boot stage. 2. Flashing the U-Boot On Windows, Doing this step is essentially done by using a program called Amlogic Bootcard Maker. Similarly, we can do the same on Linux. Head to the directory where the earlier u-boot.bin is downloaded, for example: cd ~/Downloads Then flash it: sudo dd if=u-boot.bin of=/dev/mmcblk0 conv=fsync,notrunc bs=1 count=442 sudo dd if=u-boot.bin of=/dev/mmcblk0 conv=fsync,notrunc bs=512 skip=1 seek=1 sync And finally, Yeet the microSD card out. Flashing TL;DR To put it simply, The above tasks is simply: sudo dd if=Armbian_26.11.0_amlogic_s905x-b860h_trixie_6.18.51_server_2026.09.14.img of=/dev/mmcblk0 bs=4M status=progress sudo dd if=u-boot.bin of=/dev/mmcblk0 conv=fsync,notrunc bs=1 count=442 sudo dd if=u-boot.bin of=/dev/mmcblk0 conv=fsync,notrunc bs=512 skip=1 seek=1 sync To the box... You can determine whenever the box is already hacked or not, And it's usually determined via the LED indicator: – If it's green, Chances are it's running Android. – If it's orange, It's not using a regular android bootloader or is in emergency download mode On a box with the factory Android rom inside, You usually cannot just insert the microSD right into the box, and then hopes it will boot immediately to what's on the microSD card. The stock bootloader will immediately boot to the Android OS anyway and then indirectly alter the BOOT partition, which is probably not what you wanted. A specialized HDMI dongle is made specifically to make the bootloader on this box to boot whatever that's in the microSD card, supposedly for emergency / download mode. To check whenever this HDMI dongle is exactly what we wanted, We can use i2cdetect (installable via i2c-tools) to check the HDMI bus: First, we will want to know which bus is the bus for the HDMI port in my laptop: yonle@yonle:~$ sudo i2cdetect -l i2c-0 i2c Synopsys DesignWare I2C adapter I2C adapter i2c-1 i2c Synopsys DesignWare I2C adapter I2C adapter i2c-2 i2c i915 gmbus dpa I2C adapter i2c-3 i2c i915 gmbus dpb I2C adapter i2c-4 i2c i915 gmbus dpc I2C adapter On the above example, My bus is at i2c-2, Which is i915 gmbus dpa (notice the dpX prefix). From the 2 at the end of the i2c-2, Add it by +1, Which then: 3. So now we plug our HDMI dongle to our HDMI port in our laptop: yonle@yonle:~$ sudo i2cdetect -y -r 3 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- 52 -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- If this dongle is what we are looking for, In 0x50, There should have 52 in the third column just like shown above. Then verify what's inside: yonle@yonle:~$ sudo i2cdump -y -r 0xf8-0xff 3 0x52 No size specified (using byte-data access) 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef f0: 62 6f 6f 74 40 53 44 43 boot@SDC The string value must be boot@SDC. Now that we know that the dongle is exactly what we're looking for, Let's begin the installation process: Now unplug the box from any power source, – Insert the microSD card that we flashed earlier to the microSD card slot, – Plug the HDMI dongle to the box Then plug it to the power source, and pay attention to the power LED indicator, The green indicator must have turned into orange on this phase. Keep in mind that the indicator MUST STAY on orange LED light for as long as 15 seconds (it mustn't turn green on this phase, If it did, Then you're flashing it wrong!). If after 15 seconds passed the LED is staying orange, You can now unplug the HDMI dongle and plug a HDMI cable from your TV/Monitor/CaptureCard to your box, You must see something resembling TTY: From there, Once you get into a phase where Armbian asks you for setup, There's two method you can do this: 1. Keyboard way: Plug your keyboard to the STB, and do set up from here 2. Networking: You want to set this box up via ssh: Plug a LAN cable from your router to the box, Check for it's IP address on the router page, and ssh into it: ssh [email protected] The default password is 1234. You will be asked for setup and a new password setup. Once you're done, Then that's it. You're done installing Armbian to your microSD via your box, However you will still need to use that HDMI dongle to force it using U-Boot. Making U-Boot permanent Just like earlier, Send the earlier u-boot.bin to the box via network: scp u-boot.bin [email protected]:u-boot.bin Get into the shell, and check which MMC is our eMMC: root@armbian:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS mmcblk1 179:0 0 58.6G 0 disk ├─mmcblk1p1 179:1 0 511M 0 part /boot └─mmcblk1p2 179:2 0 58.1G 0 part / mmcblk2 179:32 0 7.3G 0 disk ├─mmcblk2p1 179:33 0 511M 0 part └─mmcblk2p2 179:34 0 6.1G 0 part mmcblk2boot0 179:64 0 4M 1 disk mmcblk2boot1 179:96 0 4M 1 disk In this case, Since we're booting from SDcard, mmcblk2 is our target, So: sudo dd if=u-boot.bin of=/dev/mmcblk2 conv=fsync,notrunc bs=1 count=442 sudo dd if=u-boot.bin of=/dev/mmcblk2 conv=fsync,notrunc bs=512 skip=1 seek=1 Caution: This will permanently wipe the android bootloader in the eMMC. If you plan to install Armbian to eMMC, Do armbian-install and reflash U-Boot to the eMMC via steps above again Installing to eMMC Caution: Doing the following will wipe what's in the eMMC, Which includes the Android base itself. Assuming you have been in the shell, run armbian-install as root: root@armbian:~# armbian-install [ STEPS ] Installing Armbian to internal eMMC... [ STEPS ] Checking dependencies... [ INFO ] Dependency check completed. Proceeding installation... [ STEPS ] Initializing the environment... [ INFO ] Use mainline u-boot: [ no ] [ INFO ] Use ampart tool: [ no ] [ INFO ] Show all devices: [ no ] [ INFO ] Detected eMMC device: [ /dev/mmcblk2 ] [ STEPS ] Start selecting device... ----------------------------------------------------------------------------------------------------- ID SOC MODEL DTB ----------------------------------------------------------------------------------------------------- 101 s905d Phicomm-N1 meson-gxl-s905d-phicomm-n1.dtb 102 s905d Phicomm-N1(DMA-thresh) meson-gxl-s905d-phicomm-n1-thresh.dtb 103 s905d MECOOL-KI-Pro meson-gxl-s905d-mecool-ki-pro.dtb 104 s905d SML-5442TW meson-gxl-s905d-sml5442tw.dtb