HN 日本語サマリー

← 一覧へ戻る
プログラミング

ZTE B860H: Armbianを導入する

ZTE B860H: Getting Armbian into It (pen.waltuh.cyou)

4 pointsby airhangerf150 コメント

要約

この記事は、ZTE B860H(V1/V2)セットトップボックスにArmbianをインストールするためのガイドです。root化やストックROMからの変更が不要な方法で、microSDカードと特殊なHDMIブートドングルを使用します。Linuxデスクトップ環境での作業が推奨されますが、Windowsでの代替手段も示唆されています。

全文翻訳

ZTE B860H: Armbianを導入する

この記事では、B860H V1 / V2向けのArmbianインストールガイドを解説します。

注意: このモデルはV5と混同してはいけません。両リビジョンは内部ハードウェアが全く異なります。

[画像: B860H V1 STB Top] [画像: B860H V1 STB Bottom]

ここで使用する方法では、セットトップボックスが既にroot化されている必要はありません。あるいは、ストックROMの外にある状態でも可能です。STBがストック状態にあると仮定します。

最良の方法は、すべてのフラッシュをLinuxデスクトップで行うことです。Windows用の同等の方法も存在しますが、それは後で説明します。

このガイドは FiberHome HG680P ボックスでも動作します(ただし、トリビアを確認してください)。


要件

  • microSDカードスロットを備えたパーソナルコンピュータ(ない場合は、microSD<–>USBアダプターを使用します。これらは機能します)
  • microSDカード(メインとして使用する場合は、class 10のmicroSDカードを使用してください)
  • 特別に作られたHDMIブートドングル。自作するか、オンラインストア(ID: Shopee Indonesia | グローバル: Tindie)で既製品を購入できます。
  • 対象のボックス本体(B860H)。起動状態に関わらず電源が入る必要があります(LEDがオレンジ色、または緑色、あるいは何色でも構いません。root化されているか、ストック状態か否かは関係ありません)。
  • 添付されたコマンドを盲目的にコピー&ペーストしないこと

インストール

B860Hが動作するにはHG680PのU-Bootブートローダーを使用する必要があります。これはこちらから取得できます(u-boot.binとして保存してください)。

以下の手順は順番に行う必要があります。

1. Armbianのフラッシュ

Armbianイメージはophub/amlogic-s9xxx-armbianから取得できます。それぞれ異なるディストリビューションが含まれています。例えば、この記事執筆時点では: – resoluteはArmbian OSのUbuntuエディションです – trixieはArmbian OSのDebianエディションです。

s905xとb860hという2つのキーワードを含むリリースを探してください。例:

Armbian_26.11.0_amlogic_s905x-b860h_trixie_6.18.51_server_2026.09.14.img.gz

ダウンロードしたら、解凍します:

gzip -k -d -v Armbian_26.11.0_amlogic_s905x-b860h_trixie_6.18.51_server_2026.09.14.img.gz

注意: ダウンロードしたリリースに合わせてファイル名を調整してください。

フラッシュするmicroSDカードを挿入し、それがどこにあるか確認します:

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 

この場合、/dev/mmcblk0です。

特別: SDカードUSBアダプターを使用している場合、これらは通常sd[a...c]プレフィックス(例: sdb)で名前が付けられます。既存のメインSATAドライブと混同してはいけません。

そして、Armbianイメージをカードにフラッシュします:

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

(はい、syncはコマンドです)

lsblkコマンドで確認できるmicroSDスロットのパスに合わせて/dev/mmcblk0を調整してください。

注意: これを行うと、microSDカード上のすべてのデータが消去されます。続行する前に、重要なデータがあればバックアップしてください。


フラッシュ後、BOOTパーティションを変更する必要はありません。これらはブートステージ中に自動的に行われます。

2. U-Bootのフラッシュ

Windowsでは、この手順は基本的にAmlogic Bootcard Makerというプログラムを使用して行われます。

同様に、Linuxでも同じことができます。

先ほどu-boot.binをダウンロードしたディレクトリに移動します。例:

cd ~/Downloads

そしてフラッシュします:

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

そして最後に、microSDカードを取り出します。

フラッシュのTL;DR

簡単に言うと、上記のタスクは次のとおりです:

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

ボックスへ…

[画像: Linuxが起動した状態のボックス]

ボックスがハッキングされたかどうかは、通常LEDインジケーターで判断できます: – 緑色の場合、Androidが実行されている可能性が高いです。 – オレンジ色の場合、通常のAndroidブートローダーを使用していないか、緊急ダウンロードモードになっています。

工場出荷時のAndroid ROMが入っているボックスでは、通常、microSDカードをボックスに挿入するだけで、microSDカード上のものがすぐに起動するとは期待できません。ストックブートローダーはすぐにAndroid OSにブートし、その後BOOTパーティションを間接的に変更します。これはおそらくあなたが望むものではないでしょう。

[画像: 特殊なHDMIドングル]

このボックスのブートローダーに、microSDカード上のものを起動させるために、特別にHDMIドングルが作られています。これは、緊急/ダウンロードモード用です。


このHDMIドングルがまさに求めているものであるかを確認するために、i2cdetect(i2c-toolsからインストール可能)を使用してHDMIバスを確認できます。

まず、私のラップトップのHDMIポートのバスがどれかを知りたいです:

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

上記の例では、私のバスはi2c-2、つまりi915 gmbus dpaです(末尾のdpXプレフィックスに注意してください)。i2c-2の末尾の2に+1を加えると、3になります。

これで、HDMIドングルをラップトップのHDMIポートに接続します:

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: -- -- -- -- -- -- -- --   

このドングルが求めているものであれば、0x50で、上記のように3列目に52が表示されるはずです。

次に、その内容を確認します:

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

文字列値はboot@SDCである必要があります。


このドングルが求めているものであることが確認できたので、インストールプロセスを開始しましょう:

ボックスの電源をすべて抜きます。
– 前述のmicroSDカードをmicroSDカードスロットに挿入します。
– HDMIドングルをボックスに接続します。

次に電源を接続し、電源LEDインジケーターに注意してください。この段階で緑色のインジケーターがオレンジ色に変わるはずです。

インジケーターがオレンジ色のまま、15秒間続く必要があることに注意してください(この段階で緑色に変わってはいけません。もし変わった場合は、フラッシュが間違っています!)。

15秒経過してもLEDがオレンジ色のままなら、HDMIドングルを抜き、テレビ/モニター/キャプチャカードからボックスにHDMIケーブルを接続できます。TTYに似た画面が表示されるはずです:

[画像: 画面]

Armbianがセットアップを求めてくる段階になったら、次の2つの方法があります: 1. キーボード方式: キーボードをSTBに接続し、ここからセットアップを行います。 2. ネットワーク方式: ssh経由でこのボックスをセットアップしたい場合: ルーターからボックスにLANケーブルを接続し、ルーターページでIPアドレスを確認し、それにsshで接続します:

ssh root@10.42.x.x

デフォルトパスワードは1234です。セットアップと新しいパスワードの設定を求められます。

[画像: デフォルトのARMBian体験]

完了したら、それでおしまいです。ボックスでArmbianをmicroSDカードにインストールしました。ただし、U-Bootを強制的に使用するには、まだHDMIドングルが必要です。

U-Bootを永続化する

以前と同様に、u-boot.binをネットワーク経由でボックスに送信します:

scp u-boot.bin root@10.42.xx.xx:u-boot.bin

シェルに入り、eMMCがどのMMCであるかを確認します:

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 

この場合、SDカードから起動しているので、mmcblk2がターゲットです。したがって:

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

注意: これにより、eMMC上のAndroidブートローダーが完全に消去されます。ArmbianをeMMCにインストールする予定がある場合は、armbian-installを実行し、上記のステップでU-BootをeMMCに再フラッシュしてください。

eMMCへのインストール

注意: 以下を実行すると、eMMCの内容が消去されます。これにはAndroidベース自体も含まれます。

シェルに入っていると仮定して、rootとしてarmbian-installを実行します:

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                     
105   s905x      HG680P                                        meson-gxl-s905x-p212.dtb                          
106   s905x      B860H                                         meson-gxl-s905x-b860h.dtb                         
107   s905x      Nexbox-a95x                                   meson-gxl-s905x-nexbox-a95x.dtb                   
108   s905x      TX9                                           meson-gxl-s905x-tx9.dtb                           
109   s905x      T95,XiaoMI-3S,X96,BTV9                        meson-gxl-s905x-p212.dtb                          
110   s905x      TBee                                          meson-gxl-s905x-tbee.dtb                          
-----------------------------------------------------------------------------------------------------
111   s905w      TX3-Mini,MeCool-m8s-pro-W                     meson-gxl-s905w-tx3-mini.dtb                      
112   s905w      W95                                           meson-gxl-s905w-p281.dtb                          
113   s905w      X96-Mini                                      meson-gxl-s905w-x96-mini.dtb                      
114   s905w      X96W,FunTV,MXQ-Pro-4K                         meson-gxl-s905w-x96w.dtb                          
115   s905l      UNT402A,M201-S,MiBox-4C,IP108H,B860AV2.1      meson-gxl-s905l3b-m302a.dtb                       
116   s905l      MG101,Mibox-4,E900V21C,XiaoMI-4C              meson-gxl-s905x-p212.dtb                          
117   s905l      Tencent-Aurora-1s                             meson-gxl-s905x-p212.dtb                          
118   s905l      ZXV10-B860AV2.1U,HM201                        meson-gxl-s905x-tx9.dtb                           
119   s905l2     MGV2000,MGV3000,M301A,CM201-1,IP108H          meson-gxl-s905l2-x7-5g.dtb                        
120   s905l2     E900v21E,MGV2000-K,e900v21d                   meson-gxl-s905l2-x7-5g.dtb                        
-----------------------------------------------------------------------------------------------------
121   s905l2     Wojia-TV-IPBS9505                             meson-gxl-s905l2-ipbs9505.dtb                     
122   s905l3     CM311-1,HG680-LC,M401A,UNT402A,CM201-1-6-YS   meson-gxl-s905l2-x7-5g.dtb                        
123   s905l3     CM211-1,M411A,B860AV3.2M,B860AV2.1U,M301A     meson-gxl-s905l3b-m302a.dtb                       
124   s905l3     UNT400G1,E900V22D-2,UNT400G,IP108H            meson-gxl-s905l2-x7-5g.dtb                        
125   s905l3     UNT402A,UNT400G                               meson-gxl-s905l3b-m302a.dtb                       
126   s905l3b    E900V21E,E900V22E,MGV2000/CW,M411A            meson-gxl-s905l3b-e900v22e.dtb                    
127   s905l3b    M302A,M304A,CM201-1,CM211-1,CM311-1           meson-gxl-s905l3b-m302a.dtb                       
128   s905l3b    UNT403A                                       meson-gxl-s905l3b-m302a.dtb                       
129   s905l3b    RG020ET-CA                                    meson-gxl-s905l3b-e900v22e.dtb                    
130   s905l3b    IP103H,TY1608,BV310,B860AV-2.1M               meson-gxl-s905l3b-m302a.dtb                       
-----------------------------------------------------------------------------------------------------
131   s905l3b    E900V22D,TY1608                               meson-gxl-s905l2-x7-5g.dtb                        
132   s905l3b    E900V21D,B860AV2.1-A                          meson-gxl-s905l2-x7-5g.dtb                        
133   s905mb     S65                                           meson-gxl-s905x-p212.dtb                          
134   s905lb     BesTV-R3300L,SumaVision-Q7,MG101              meson-gxl-s905x-p212.dtb                          
135   s905lb     Q96-mini                                      meson-gxl-s905x-p212.dtb                          
136   s905lb     IPBS9505                                      meson-gxl-s905l2-x7-5g.dtb                        
0     Other      Customize                                     Enter-custom-dtb-name                             
-----------------------------------------------------------------------------------------------------
[ OPTIONS ] Please Input ID: 106

106、つまりB860Hを選択します。

Enterを押すと、ファイルシステムタイプの選択を求められます:

[ INFO ] Input Box ID: [ 106 ]
[ INFO ] Model Name: [ B860H ]
[ INFO ] FDTFILE: [ meson-gxl-s905x-b860h.dtb ]
[ INFO ] MAINLINE_UBOOT: [  ]
[ INFO ] BOOTLOADER_IMG:  [  ]
[ INFO ] UBOOT_OVERLOAD: [ u-boot-p212.bin ]
[ INFO ] NEED_OVERLOAD: [ no ]
[ STEPS ] Selecting root filesystem type...
-----------------------------------------------
  ID   TYPE
-----------------------------------------------
  1    ext4
  2    btrfs
-----------------------------------------------
[ OPTIONS ] Please Input ID (1/2): 

ワークロードに応じて、eMMCにはext4またはbtrfsのいずれかを使用できます。しかし、不確かな場合はext4をお勧めします。

長年にわたり多くの改善を受けてきたため、数年前のext4とは異なります。eMMCにとって、依然として非常に堅実な選択肢です。

そこから、システムをSDカードからeMMCにインストールします。これには数分かかります。

完了したら、microSDカードにフラッシュしたときと同様に、eMMCにU-Bootを再フラッシュします:

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

sync

したがって:

[ INFO ] Copying ROOTFS partition data...
[ INFO ] Copying [ etc ] ...
[ INFO ] Copying [ home ] ...
[ INFO ] Copying [ opt ] ...
[ INFO ] Copying [ root ] ...
[ INFO ] Copying [ selinux ] ...
[ INFO ] Copying [ srv ] ...
[ INFO ] Copying [ usr ] ...
[ INFO ] Copying [ var ] ...
[ INFO ] Generate the new fstab file.
[ INFO ] Update parameters related to the releases file.
[ SUCCESS ] Installation completed successfully. Run [ poweroff ], remove the installation media, then re-insert the power supply to boot the new system.
root@armbian:~# sudo dd if=u-boot.bin of=/dev/mmcblk2 conv=fsync,notrunc bs=1 count=442
442+0 records in
442+0 records out
442 bytes copied, 0.00554292 s, 79.7 kB/s
root@armbian:~# sudo dd if=u-boot.bin of=/dev/mmcblk2 conv=fsync,notrunc bs=512 skip=1 seek=1
4095+0 records in
4095+0 records out
2096640 bytes (2.1 MB, 2.0 MiB) copied, 0.1678 s, 12.5 MB/s
root@armbian:~# 

これらすべてが完了したら、poweroffを実行します。電源がオフになったら(LEDライトが緑色に変わりますが、心配しないでください)、電源から抜いて、microSDカードも抜くことができます。

そして、電源を再度接続して、その栄光の起動をさせましょう。見てください。microSDカードなしで動作します!:

[画像: Linuxの起動シーケンス]

これにより、RAMの容量を節約できます。

sudo apt update && sudo apt install systemd-zram-generator
sudo nano /etc/systemd/zram-generator.conf 

以下を入力します:

[zram0]
zram-size = ram
compression-algorithm = lzo-rle zstd(level=3) (type=idle)

保存(CTRL+S)、終了(CTRL+X)、そしてロードします:

sudo systemctl daemon-reload
sudo systemctl start systemd-zram-setup@zram0.service
yonle@armbian:~$ cat /proc/interrupts
           CPU0       CPU1       CPU2       CPU3       
  9:          0          0          0          0    GICv2  25 Level     vgic
 11:   26055984   26123490   25924591   25663238    GICv2  30 Level     arch_timer
 12:          0          0          0          0    GICv2  27 Level     kvm guest vtimer
 14:          0          0          0          0    GICv2  58 Edge      ttyAML6
 15:        109          0          0          0    GICv2 231 Edge      ttyAML0
 16:          0          0          0          0    GICv2 249 Level     d0072000.mmc
 17:          0          0          0          0    GICv2 220 Edge      gxl-crypto
 18:          0          0          0          0    GICv2 221 Edge      gxl-crypto
 19:         89          0          0          0    GICv2 248 Level     d0070000.mmc
 20:     124767          0          0          0    GICv2 250 Level     d0074000.mmc
 21:      86139          0          0          0    GICv2 241 Edge      platform_mhu_link
 22:     903241          0          0          0    GICv2 242 Edge      platform_mhu_link
 23:          2          0          0          0    GICv2 105 Edge      c1108680.adc
 24:          0          0          0          0    GICv2 169 Level     arm-pmu
 25:          0          0          0          0    GICv2 170 Level     arm-pmu
 26:          0          0          0          0    GICv2 185 Level     arm-pmu
 27:          0          0          0          0    GICv2 186 Level     arm-pmu
 28:       1301          0          0          0    GICv2  35 Edge      meson
 29:       2056          0          0          0    GICv2  89 Edge      dw_hdmi_top_irq, c883a000.hdmi-tx
 30:         21          0          0    3029612    GICv2  40 Level     eth0
 31:          0          0          0          0    GICv2  63 Level     c9100000.usb, c9100000.usb
 32:       2503          0   11186225          0    GICv2  62 Level     xhci-hcd:usb1
 33:         26          0          0          0    GICv2  41 Level     mdio_mux-0.1:08
 34:         16          0          0          0    GICv2 228 Edge      meson_ir
 35:          0          0          0          0    GICv2  76 Edge      vdec-mbox1
 36:          0          0          0          0    GICv2  64 Edge      esparserirq
 37:          0          0          0          0    GICv2 193 Level     gpmmu
 38:          0          0          0          0    GICv2 197 Level     ppmmu0
 39:          0          0          0          0    GICv2 199 Level     ppmmu1
 40:          0          0          0          0    GICv2 201 Level     ppmmu2
 41:          0          0          0          0    GICv2 192 Level     gp
 42:          0          0          0          0    GICv2 196 Level     pp0
 43:          0          0          0          0    GICv2 198 Level     pp1
 44:          0          0          0          0    GICv2 200 Level     pp2
IPI0:     43769      44509      51827      43352       Rescheduling interrupts
IPI1:   1981654    2376448     760236    3324099       Function call interrupts
IPI2:         0          0          0          0       CPU stop interrupts
IPI3:         0          0          0          0       CPU stop NMIs
IPI4:         0          0          0          0       Timer broadcast interrupts
IPI5:     58603     293691      50386      56088       IRQ work interrupts
IPI6:         0          0          0          0       CPU backtrace interrupts
IPI7:         0          0          0          0       KGDB roundup interrupts
Err:          0

ある時点で、CPUコアの1つが他のコアよりも過負荷になる可能性があります。特に、ハードウェアとソフトウェア(例: Wi-Fi、LAN、NFS、USBなど)に関わる特定のワークフローを実行している場合です。

そして、irqbalanceをセットアップしてボックスで実行したいと思うでしょう:

sudo apt install irqbalance
sudo systemctl enable --now irqbalance

トリビア

B860H V1とHG680Pに搭載されているハードウェアは非常に似ています(特にSOC。同じu-boot.binをフラッシュしても起動します!)。そのため、HG680Pでもこのガイドを同じHDMIドングルトリックと一緒にたどることができるでしょう。

特にブートローダーが破損している場合(多くのHG680Pで見られます)、HDMIドングルを使用してAmlogicにmicroSDカードからブートローダーを起動させることができます。私がここでやったように。

それらは引き続き起動し、機能しますが、ハードウェアのデバイスツリーは部分的に異なり、互いに競合する可能性があります。そのため、armbian-install中に、代わりにこれを選択する必要があります:

105   s905x      HG680P                                        meson-gxl-s905x-p212.dtb                          

あるいは、HDMIドングルがない場合は、マザーボード上のR162、4C6、およびGNDを同時にショートさせることで、HG680PのeMMCブートをバイパスし、デバイスをSDカードからブートさせることができます。USBポートをグラウンドポイントとして使用できます。ピンセットや同様の導電性ツールを使用して接続を作成できます(Jimed-randによって発見されました)。

B860H V1/V2でも同様の方法を使用でき、R87をショートさせることでブート/リカバリモードに入ることができます。

困惑していますか?

このために特別に作成したYouTube動画があります。動画ではこのページで説明されていることは再説明されていませんので、生の実行方法を自由に視聴してください。