Instalasi Alpine Linux di STB BH860

Latar Belakang

Setelah berbagai percobaan, saya menemukan metode paling stabil untuk menjalankan Alpine Linux di STB BH860 (Amlogic S905X): memanfaatkan kernel dan initramfs dari Armbian Ophub yang sudah terbukti kompatibel dengan perangkat ini. Pendekatan ini menghindari masalah driver dan boot failure yang sering terjadi saat menggunakan kernel generik Alpine. Teknik ini biasa disebut Franken-Distro atau Rootfs Swapping

Prasyarat

  1. Sistem di eMMC:
    • Armbian Ophub sudah terinstal dan berjalan normal di memori internal (eMMC) dan panduan ini mengasumsikan device kalian juga sudah terinstall Armbian Ophub di eMMC. Tapi ini tidak wajib, kalian bisa pakai OS apapun di eMMC tentu dengan proses installnya akan berbeda
  2. Kartu SD:
    • Berisi Armbian Ophub yang sama dengan versi di eMMC (pastikan bisa boot normal sebelum dimodifikasi).
  3. Koneksi internet:
    • Internet dan kabel LAN yang nanti berfungsi di Armbian untuk mengunduh paket Alpine.

1. Persiapan Lingkungan

  • Jangan pasang kartu SD saat boot awal. Nyalakan STB BH860 tanpa kartu SD untuk memastikan sistem boot dari eMMC (Armbian Ophub).
  • Setelah proses boot selesai, masukkan kartu SD yang berisi Armbian Ophub.

2. Identifikasi Partisi Kartu SD

Di terminal Armbian (eMMC), jalankan:

lsblk

Contoh output:

mmcblk0boot0 179:8    0   4M  0 disk  
mmcblk0boot1 179:16   0   4M  0 disk  
mmcblk0      179:0    0  15G  0 disk  
├─mmcblk0p1  179:1    0 256M  0 part /boot  
├─mmcblk0p2  179:2    0  15G  0 part /  
mmcblk1      179:24   0  30G  0 disk  
├─mmcblk1p1  179:25   0 256M  0 part  
└─mmcblk1p2  179:26   0  30G  0 part  
  • mmcblk0: Perangkat eMMC (sistem Armbian utama).
  • mmcblk1: Kartu SD (akan diubah menjadi Alpine Linux).
  • mmcblk1p2: Partisi root yang akan diganti dengan Alpine.

3. Mount Partisi Kartu SD

mkdir -p /mnt/alpine-root
mount /dev/mmcblk1p2 /mnt/alpine-root

4. Ganti Isi RootFS dengan Alpine Linux

Unduh dan ekstrak Alpine rootfs langsung di STB:

cd /mnt/alpine-root
wget https://dl-cdn.alpinelinux.org/alpine/v3.23/releases/aarch64/alpine-minirootfs-3.23.2-aarch64.tar.gz
sudo tar xvf alpine-minirootfs-3.23.2-aarch64.tar.gz -C /mnt/alpine-root

5. Salin Modul Kernel dari Armbian Ophub

Modul kernel dari eMMC wajib disalin ke kartu SD agar perangkat keras (Ethernet, USB, HDMI) terdeteksi oleh Alpine:

cp -r /lib/modules/* /mnt/alpine-root/lib/modules/

Verifikasi:

ls /mnt/alpine-root/lib/modules

6. Konfigurasi Dasar via Chroot

Siapkan lingkungan chroot:

mount -t proc /proc /mnt/alpine-root/proc
mount -t sysfs /sys /mnt/alpine-root/sys
mount -o bind /dev /mnt/alpine-root/dev
mount -o bind /etc/resolv.conf /mnt/alpine-root/etc/resolv.conf

Masuk ke lingkungan Alpine:

chroot /mnt/alpine-root /bin/sh

Di Dalam Chroot:

a. Atur Repositori dan Update

echo "https://dl-cdn.alpinelinux.org/alpine/v3.23/main" > /etc/apk/repositories
echo "https://dl-cdn.alpinelinux.org/alpine/v3.23/community" >> /etc/apk/repositories
apk update

b. Instal Paket Penting

apk add openssh ntpd bash nano

c. Konfigurasi Jaringan

  • Antarmuka Ethernet (DHCP):

    cat > /etc/network/interfaces <<EOF
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    EOF
    
  • DNS:

    echo "nameserver 8.8.8.8" > /etc/resolv.conf
    echo "nameserver 1.1.1.1" >> /etc/resolv.conf
    
  • Aktifkan Layanan Jaringan:

    rc-service networking start
    rc-update add networking
    
  • NTP:

    rc-update add ntpd default
    ntpd -q -p pool.ntp.org
    

d. Izinkan Login Root via SSH

sed -i 's/#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
grep -q "PermitRootLogin" /etc/ssh/sshd_config || echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
rc-update add sshd

e. Finalisasi

passwd  # Atur password root untuk Alpine
echo "Nixpoin-alpine" > /etc/hostname
exit    # Keluar dari chroot

7. Bersihkan dan Unmount

umount -l /mnt/alpine-root/{proc,sys,dev,etc/resolv.conf,}
umount /mnt/alpine-root

8. Reboot dan Boot dari Kartu SD

  • Matikan STB:
    poweroff
    
  • Pastikan kartu SD tetap terpasang.
  • Nyalakan ulang STB.
  • Jika U-Boot Anda mendukung boot order otomatis, sistem akan boot dari kartu SD.

Verifikasi Sistem

Setelah boot ke Alpine:

  1. Cek kernel dan modul:
    uname -r  # Pastikan versi kernel sama dengan Armbian Ophub
    lsmod     # Verifikasi modul hardware terload
    
  2. Cek waktu sistem:
    date  # Waktu harus akurat berkat NTP
    

Troubleshooting

Masalah Umum

Saya sarankan untuk menyambungkan ke monitor lewat kabel HDMI untuk pertama kali booting, agar tahu apakah STB berhasil boot ke Alpine atau tidak.

  • Ethernet tidak terdeteksi: Pastikan semua modul kernel dari /lib/modules Armbian sudah disalin. Cek dengan dmesg | grep eth.

  • Tidak bisa login root via SSH: Periksa konfigurasi /etc/ssh/sshd_config dan pastikan tidak ada typo pada PermitRootLogin yes.

  • Boot gagal: Karena kita tidak mengubah /boot, masalah biasanya terletak pada:

    • Partisi root (mmcblk1p2) tidak terbaca (cek kabel SD card).
    • Modul kernel tidak kompatibel (pastikan versi kernel di eMMC dan SD card sama persis).

Catatan Penting

  • Jangan hapus Armbian di eMMC: Sistem ini menjadi “penyelamat” jika Alpine di SD card gagal boot. Cukup cabut kartu SD untuk kembali ke Armbian.

(Artikel ini didasarkan pada pengalaman pribadi penulis. Lakukan dengan risiko Anda sendiri.)


Referensi: