Hikey970 で Debian Pre-built Tensorflow が動くように mac で設定する

# 準備

公式ページには Linux で fastboot を使ってインストールする方法が書かれているので、mac でもできるだろうということで無計画に始めてみた。結果的にはうまくいった。(画像は公式のものです)

<img src="https://www.96boards.org/product/ce/hikey970/images/hikey970-front-sd-min.png" width=300"/>

## 物理的な準備

- Hikey970
- mac
- USB-Cケーブル
- ACアダプタ 12V/2A EIAJ-3 内径1.7mm/外形4.75mm 
- 起動後： HDMI ケーブル
- 起動後： USB キーボード
- 起動後: USB マウス

Hikey970 は、今は amazon とかスイッチサイエンスで購入できるようだ。私が手に入れたものは AC アダプタが米国仕様のもので、変換プラグが必要だった。とりあえず、秋月で購入した 12V/2A の AC アダプタに、付属の 2.1mm -> 1.7mm 変換ケーブルを付けて対処した。

- スイッチサイエンス: https://www.switch-science.com/catalog/3775/
- 秋月の 12V/2A AC アダプタ: http://akizukidenshi.com/catalog/g/gM-06239/

## mac の準備

fastboot が必要なので、Android SDK をインストールして、下記にパスを通しておく。

    /Users/<username>/Library/Android/sdk/platform-tools/

## Debian Pre-built Tensorflow for Hikey970 

下記URLからダウンロードできる。
- http://www.lemaker.org/product-hikey970-download-86.html

# インストール

手順は下記に書かれれているので、基本この通りに進めていく。
https://www.96boards.org/documentation/consumer/hikey/hikey970/installation/linux-fastboot.md.html

## mac と接続

ボード上の DIP スイッチを 1:on, 2:off, 3:on としておく。初期状態では 3 が off になっていた。次に usb-c ケーブルで mac とつないで、AC アダプタをつないでから fastboot でデバイスが認識されているかを調べてみる。Type C ボードにある Type-C のコネクタのうち、HDMI コネクタの隣りにあるほうにつなぐ。

    fastboot devices

これでデバイスの ID が表示されたら成功なのだけど、この時点では何もでなかった。おそらく UART のドライバが mac に入ってない気がしたので、ドキュメントを調べてみると FT230X を使っているとあったので、mac 用の FTDI のドライバを下記から入れてみた。

- https://www.ftdichip.com/Drivers/VCP.htm

これで、ボード側の電源を入れなおしたら fastboot で認識してくれるようになった。

    $ fastboot devices
    2D67419D028CE119	fastboot

こんな感じ。

## OSイメージの書き込み

先にダウンロードした hikey970-lebian-9.tar.gz を展開して、flash-all-binaries.sh を実行する。

    $ tar xzvf hikey970-lebian-9.tar.gz
    $ cd hikey970-lebian-9
    $ bash flash-all-binaries.sh

デバイスが認識できていれば、書き込みが始まって下記のようなメッセージが出る(はず)。

    Flashing ptable 
    Sending 'ptable' (24 KB)                           OKAY [  0.001s]
    Writing 'ptable'                                   OKAY [  0.004s]
    Finished. Total time: 0.007s
    Sending 'xloader' (164 KB)                         OKAY [  0.005s]
    Writing 'xloader'                                  OKAY [  0.003s]
    Finished. Total time: 0.010s
    Sending 'fastboot' (1152 KB)                       OKAY [  0.034s]
    Writing 'fastboot'                                 OKAY [  0.061s]
    Finished. Total time: 0.097s
    Sending 'fip' (1224 KB)                            OKAY [  0.037s]
    Writing 'fip'                                      OKAY [  0.057s]
    Finished. Total time: 0.095s
    Sending 'boot' (65536 KB)                          OKAY [  1.913s]
    Writing 'boot'                                     OKAY [  0.231s]
    Finished. Total time: 2.145s
    Please be patient...
    Sending sparse 'userdata' 1/21 (131068 KB)         OKAY [  3.856s]
    Writing 'userdata'                                 OKAY [  0.335s]
    Sending sparse 'userdata' 2/21 (131068 KB)         OKAY [  3.774s]
    Writing 'userdata'                                 OKAY [  0.576s]
    (中略)
    Sending sparse 'userdata' 21/21 (113218 KB)        OKAY [  3.850s]
    Writing 'userdata'                                 OKAY [  0.817s]
    Finished. Total time: 100.527s

これで書き込み終了。

# リブート

電源ケーブルと USB-C ケーブルを抜いてから、dip スイッチの 3 番を off にして、再度電源ケーブルを差せば Hikey970 が起動する。

最初に Hikey970 を操作するためには、USB にマウスとキーボードをつないで、HDMI ケーブルでディスプレイにつないでおく必要がある。ネットワークと ssh の設定をしたら、以降は電源だけさせばいいはず。