X96 TV Box(ARMv8)にArmbianなUbuntu 16.04を入れる

(2018/01/07 リンク切れを修正しました)

armv8環境が欲しかったのでお手頃な値段でそれなりのスペックなX96をgearbestで購入

http://www.gearbest.com/tv-box-mini-pc/pp_471548.html

たしか送料込みで5500円くらいだったかな

SoC: S905X
RAM: 2GB
STORAGE: 16GB(ただし今回はSDカードからのブートなので関係なし)

S905向けのLinuxやu-bootをすでに開発している人がいたので導入はさくっと終わりました

導入の際 付属のリモコンを利用しなくてはいけないので受信機の接続とリモコンに単4電池2本を入れて準備しておいてください(USBキーボードがある場合は必要ありません)

あと上記で察しがつくと思いますが内部ストレージへの書き込みはu-bootの更新だけでAndroidは消されないので安心してください

以下導入手順

1. u-bootを書き換える

https://yadi.sk/d/bqV6MEL-sWKmv/v05

からaml_autoscript aml_autoscript.zipをDLし,

SDカードのルートにaml_autoscript aml_autoscript.zipを置く

こんなかんじ

/sdcard
├── aml_autoscript
└── aml_autoscript.zip

そしてSDCARDを起動しておいたX96に差し込んで

HOME -> Apps -> UPDATE&BACKUP と進みます

オレンジ色のAppsをクリック

右下のUPDATE&BACKUPをクリック

そして以下画面に映ると思います

中央右にSelectがあるのでクリックして先ほどSDCARDへ入れたaml_autoscript.zipを選択してUpdateをクリックしてウィザードに従いアップデートを行います

アップデートが完了するとX96が再起動します

これでu-bootの更新は完了です

2. Ubuntuを導入

ここからArmbian_5.37_S9xxx_Ubuntu_xenial_3.14.29_mate_20171226.img.xzをダウンロードして展開します.

X96からSDCARDを取り外してPCへ挿入してフォーマットしてddコマンドでSDCARDへとOSイメージを書き込みます

ddコマンドに限った話じゃありませんが書き込み先のディスクを誤ると大変なことになるので不安がある人はWindowsの場合はWin32DiskImagerなどのGUIを利用することをおすすめします

今回は私はmacOSddコマンドを利用しました

まずはdiskutil listでSDCARDのdevツリーを確認します

そして

sudo dd if=/Users/username/Downloads/Armbian_5.37_S9xxx_Ubuntu_xenial_3.14.29_mate_20171226.img of=/dev/rdiskXXX bs=1m  

として書き込みました(結構時間かかるので作業の合間にやるのをおすすめします)

暇な人はCtrl-Tで進捗確認しながらでもw

3. Ubuntuの起動

X96の電源を落とした状態で先ほどOSイメージを書き込んだSDCARDを挿入しX96を起動します

LinuxKernelの起動ログが流れます

初回起動時にrootへパスワード1234でログインして新しいパスワードの変更と

新しいユーザの作成ウィザードが表示されるのでそれに従ってください

それが完了すると再起動されてUbuntu Mateの画面がでるかとおもいます

あとはキーボード・マウスをさして煮るなり焼くなりしてください

雑感

導入の楽さに開発者に圧倒的感謝! :D

SDCARDからのブートなのでeMMCと比べて遅いのとSDCARDが壊れやすいのが怖いので内部ストレージへの書き込みもそのうちためしたい

Linux Kernelがサポート切れの3.14なのが残念だけどAmlogicが未だに4系出す出す詐欺状態なのでどうしようもないのかな(ちなみに4系でODROID-C2サポートが入り始めたので使えないことはないのかもしれない)

Debian Xfceは私の環境ではモニタの解像度が適切でないのかちゃんと動きませんでした

本来の目的はcChardetARMv8対応なので週末にちょっくらがんばりますかね

めも

現在時刻の調整とタイムゾーンの変更

$ sudo sed -i 's/#NTP=/NTP=ntp.nict.jp/g' /etc/systemd/timesyncd.conf
$ sudo timedatectl set-timezone Asia/Tokyo

スワップを1G作成

$ sudo fallocate -l 1G /var/swap
$ ls -lah /var/swap
$ sudo chmod 600 /var/swap
$ sudo mkswap /var/swap
$ sudo swapon /var/swap
$ sudo swapon --show
$ sudo cp /etc/fstab /etc/fstab.bak
$ echo '/var/swap none swap sw 0 0' | sudo tee -a /etc/fstab

ミラーリポジトリ

/etc/apt/sources.list

deb http://jp.archive.ubuntu.com/ports/ xenial main restricted universe multiverse  
deb http://jp.archive.ubuntu.com/ports/ xenial-security main restricted universe multiverse  
deb http://jp.archive.ubuntu.com/ports/ xenial-updates main restricted universe multiverse  
deb http://jp.archive.ubuntu.com/ports/ xenial-backports main restricted universe multiverse  

Refs