NanoPi NEO2用に最新のarmbianをビルドして起動

追記: 2017年11月下旬にNanoPi NEO2はサポートボードに復活したのでイメージファイルはarmbian公式サイトからダウンロードできるようになっています。

2017年6月上旬以降にarmbianのNanoPi NEO2がハブンチョされたままになっている。NanoPi NEO2以外にもSoCにH5を搭載したボードやその他一部のボードも。NonoPi NEO(無印)は引き続き正式サポート。
正直なんでサポート外にされたのかよく理解していないが、NanoPi NEO2でarmbianが使えないというのは寂しい。(2017年6月上旬の古いイメージファイルは引き続き提供中)

そこで、今回はarmbianの最新のソースでNanoPi NEO2のOSイメージをビルドする。NanoPi NEO2以外のNanoPi NEO Plus2やOrangePi Prime, OrangePi PC2なども同様でいけると思う。(動作するかは未確認) 2017年8月3日追記: NanoPi NEO Plus2がdisabledにされた。

ビルド準備 (初回)

armbianのビルド環境構築についてはhttps://github.com/armbian/buildに解りやすく書いてある。
で、executionに書いてあるところまで実行する。

hoge@ubuntu:~$ apt-get -y install git
hoge@ubuntu:~$ git clone https://github.com/igorpecovnik/lib --depth 1
hoge@ubuntu:~$ cp lib/compile.sh ./  ←ここまで実行
hoge@ubuntu:~$ ./compile.sh           ←これは後で実行

2017年8月3日追記:
記事を書いた途端に変更になった。チッ

hoge@ubuntu:~$ apt-get -y install git
hoge@ubuntu:~$ git clone https://github.com/armbian/build
hoge@ubuntu:~$ cd build       ←ここまで実行
hoge@ubuntu:~/build$ ./compile.sh   ←これは後で実行

NanoPi NEO2(他H5搭載のボード等)はそのままではビルド対象として選択できない状態なのでビルド対象にしてやる。
2017年8月31日変更: 8月29日の変更によりこの手順は不要になった。

hoge@ubuntu:~$ cd ~/lib/config/boards
aw-som-a20.csc      hummingbird.csc     odroidc1.conf       orangepizero.conf
bananapi.conf       lamobo-r1.eos       odroidc2.conf       orangepizeroplus2-h3.conf
bananapim2.conf     lime2.conf          odroidxu4.conf      orangepizeroplus2-h5.wip
bananapim2plus.conf lime2-emmc.conf     olinux-som-a13.csc  pcduino2.conf
bananapim2ultra.csc lime-a10.eos        orangepi2.conf      pcduino3.conf
bananapim3.csc      lime-a33.conf       orangepi2g-iot.csc  pcduino3nano.conf
bananapipro.conf    lime.conf           orangepi.eos        pine64.conf
beelinkx2.conf      micro.conf          orangepilite.conf   pine64so.conf
clearfogbase.conf   miqi.conf           orangepimini.eos    pinebook-a64.conf
clearfogpro.conf    nanopiair.conf      orangepione.conf    roseapple.eos
cubieboard2.conf    nanopik2.wi         orangepipc2.wip     tinkerboard.conf
cubieboard4.csc     nanopim1.conf       orangepipc.conf     topwise-a721.csc
cubieboard.eos      nanopim1plus2.wip   orangepipcplus.conf udoo.conf
cubietruck.conf     nanopim1plus.conf   orangepiplus2e.conf udoo-neo.conf
cubox-i.conf        nanopineo2.wip      orangepiplus.conf
espressobin.wip     nanopineo.conf      orangepiprime.wip
guitar.eos          nanopineoplus2.wip  orangepiwin.wip
hoge@ubuntu:~$ ln -s nanopineo2.wip nanopineo2.conf
hoge@ubuntu:~$

2017年8月から ~/build/config/boards/に変更された。

要するに.wipなファイルのボードはビルド対象の選択メニューに表示されないので.confにしてやる。**.wipが更新されることもあるのでファイルコピーやリネームよりシンボリックリンクが良いかと。もちろんビルドしたいボードの.wipだけでいい。 2017年8月31日変更: 8月29日の変更によりこの手順は不要になったので取り消し線を付けた。

armbianでNanoPi NEO用をビルド1
画面1:
初めてarmbianをビルドする場合はcompile.shは初期値でいいと思う。何度かビルドして気に入らない部分だけ変更ということで。2017年8月3日追記: 8月に入ってからの変更で設定はconfファイルに記述するようになった。
すでにビルドしまくっている場合はタグを変更していることがあるかもなのでcompile.shのLIB_TAGを初期値(=空)に戻す。
なお、バージョンによっては項目名がLIB_TAGではないかも。(2017年7月29日現在の最新版ではLIB_TAG)

2017年8月31日追記: 8月29日の変更によりエキスパートモードでwipなボードをメニューから選択可能になった。compile.shを1度走らせるとconfig-default.confが作成されるのでそこに EXPERT="yes" を1行追加すると次回からエキスパートモードで実行される。または ./compile.sh EXPERT=yes で実行するか。

ビルド開始

hoge@ubuntu:~$ ./compile.sh
hoge@ubuntu:~/build$ ./compile.sh   ← ~/buildディレクトリで実行

初回はソースのダウンロード等でかなり時間がかかる。2回め以降の実行なら更新ファイルのダウンロードのみなのでそれほど時間はかからない。

armbianでNanoPi NEO用をビルド3
画面1:
2017年8月に入ってから追加された画面。
MicroSDカードに書き込むOSイメージファイルを作成するなら下側のFull OS image for flashingを選択する。

armbianでNanoPi NEO用をビルド2a
画面2a:
非エキスパートモードでは正式サポートのボードの選択画面が表示される。。カーソルキー上下でボードを選択してOK(Enter)で画面5へ。

armbianでNanoPi NEO用をビルド2b
画面2b:
エキスパートモードでも正式サポートのボードリストが表示されるが、リスト下中央に<Show CSC/WIP/EOS>という選択肢が増えている。それを選択して[Enter]

armbianでNanoPi NEO用をビルド3
画面3:
エキスパートモードであることの警告兼確認画面。 「理解して同意」(I understand and agree)を選択して[Enter]。

armbianでNanoPi NEO用をビルド4
画面4:
非正式対応のボードリストが表示されるので目的のボードを[↑][↓]で選択して[Enter]を押す。または選択して[Tab]を押して<OK>

armbianでNanoPi NEO用をビルド4
画面5a:
Debian JessieかUbuntu Xenialか好みで選択。ディストリビューションを選択して[OK]を選択。
画面6へ。

armbianでNanoPi NEO用をビルド4
画面5b:
エキスパートモードでは選択肢にDebian 9 Stretchが追加表示されるようになった。(8月末より)

armbianでNanoPi NEO用をビルド5
画面6:
暫く処理後にカーネルコンフィグが表示されるので必要に応じてオプションを指定。ワカンネって人はカーネルコンフィグのトップ画面(上の画面)でExitを選択して[Enter]。(これで標準値でビルド開始)
コンフィグ選択の階層を進んだ場合はその画面のExitで一つ上の階層に戻る。
基本的に解らんものは触らない。

ビルド環境のPCや選択したボード、カーネルコンフィグの内容によってビルド時間は大幅に変わるようだけど、とにかくだいぶ待たされてビルドがエラーにならずに完了したらOK.

完成したイメージファイルの取り出し

hoge@ubuntu:~$ cd output/images/
hoge@ubuntu:~$ ls
Armbian_5.32_Nanopineo2_Debian_jessie_dev_4.11.10.img
hoge@ubuntu:~$ ftp -p ftp.example.com      ←VirtualBoxからFTPの際はパッシブモードで
Connected to ftp.example.com.
220 ftp.example.com FTP server(Version 6.00LS) ready.
Name: hoge
331 Password required for hoge.
Password:
230 User hoge logged in, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> bi
200 Type set to I.
ftp> mput *img
mput Armbian_5.32_Nanopineo2_Debian_jessie_dev_4.11.10.img? y
227 Entering Passive Mode (ftp.example.com,203,115)
150 Opening BINARY mode data connection for 'Armbian_5.32_Nanopineo2_Debian_jessie_dev_4.11.10.img'.
226 Transfer complete.
1287651328 bytes sent in 10.67 secs 115.0516 MB/s)
ftp> quit
221 Goodbye.
hoge@ubuntu:~$ 

2017年8月から ~/build/output/images/に変更された。

上はFTPで別のPC(FTPサーバ)に出した例。
とにかく ~/output/images/ にビルドしたイメージファイルが作成されている筈。

イメージをmicroSDカードに書き込む

$ sudo dd if=./Armbian_5.32_Nanopineo2_Debian_jessie_dev_4.11.10.img of=/dev/sdb && sync

UNIX系のOSなら基本はこんな感じ。上の例だとMicroSDが/dev/sdbね。書き込み先を間違ったら泣くことになるので要確認。
こちらはストレージのマウント・アンマウントに慣れていないとまたは油断していると正常に書き込めないことも。

Windows, Linuxで簡単に確実にイメージを書き込みたいならarmbianでもオススメしてるっぽいEtcherを使う。
ダウンロードして実行するだけ。Windows用はインストール版とポータブル版があるので好みで選ぶとして、Linux用(通常)はダウンロードしたファイルを解凍して中のAppRunを実行するだけ。よほど特殊なディストリビューションでなければ動くかと。つまりとても簡単。

armbianでNanoPi NEO用をビルド6
画面6:
上はEtcherの画面。左の で書き込むイメージファイルを選択。中央の で書き込み先のMicroSDカードを指定(Etcher起動前に接続していれば自動で認識)、2つの選択が終わったら右の で書き込み開始。Etcherでは書き込み後のベリファイや自動アンマウントも行ってくれる。(これを変更する場合は右上の から)

Flash Complete!の表示が出たらEtcherを閉じる。microSDカードはそのまま抜いて大丈夫。

OS起動から電源断までの基礎

armbianでNanoPi NEO用をビルド7
画面7:
イメージ書き込み済みのmicoSDカードをNanoPi NEO2に差し込んで電源投入。30秒〜1分程度で起動する筈。
SSHでログイン。(IPアドレスの調べ方はこちら)
armbianの初期値は アカウントがroot、パスワードが1234。

初回ログイン後にrootアカウントのパスワード1234をもう一度入力、新しいrootアカウント用のパスワードを2回入力。
続いて一般ユーザーのアカウントを作成という流れ。
電源断はshutdown -P now [Enter] で緑のLEDが消えたら電源ケーブルを抜いてOK。

2017年8月3日追記: ビルドできるからって期待しちゃダメ。ハブンチョ前とカーネル変わって更に未完成度が高くなってる。あちこちおかしい所だらけ。(だから正式サポートから外れてるんだろうけど)

関連記事: