Coral Devboard を初期キッティングする手順

# １．Introduction
本日、 Coral Devboard が手元に届きましたので、早速キッティングしてみます。 公式の手順は少しわかりにくかったですので、日本語でメモがてら作業記録としてココに残します。 奇跡的に全ての必要機材が手元に揃っていましたので、開梱して１時間ほどでキッティングが終わりました。

# ２．Environment

- Ubuntu 16.04 x86_64
- Type-C 電源アダプタ 5V / 3A
- Type-A to microUSB ケーブル
- Type-A to Type-C USBケーブル

# ３．Environment setting procedure
ホストPCのターミナルで下記のコマンドを順番に入力します。

```console:
$ sudo apt-get install screen
$ mkdir -p ~/.local/bin
$ wget -O Downloads/platform-tools-latest-linux.zip https://dl.google.com/android/repository/platform-tools-latest-linux.zip
$ unzip ~/Downloads/platform-tools*.zip -d Downloads
$ sudo mv ~/Downloads/platform-tools/fastboot ~/.local/bin/
$ rm ~/Downloads/platform-tools*.zip

$ fastboot --version
fastboot version 29.0.2-5738569
Installed as /home/xxxx/.local/bin/fastboot

$ sudo apt-get install -y python3-pip
$ sudo pip3 install pip --upgrade
$ sudo -H pip3 install --user mendel-development-tool
```
次に、Coral Devboard のディップスイッチの向きを確認します。 私の Devboard は最初から下表のように設定されていました。

| Boot mode | Switch 1 | Switch 2 | Switch 3 | Switch 4 |
|:--:|:--:|:--:|:--:|:--:|
|eMMC|ON|OFF|OFF|OFF|
![devboard-bootmode-emmc.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/c81a1496-08db-d337-04ff-4d548c4bd3d0.jpeg)

続いて下記のコマンドを順番に入力します。

```console:
$ sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"0525\", MODE=\"0664\", \
GROUP=\"plugdev\", TAG+=\"uaccess\"' >> /etc/udev/rules.d/65-edgetpu-board.rules"

$ sudo udevadm control --reload-rules && udevadm trigger
```
続いて、 Type-A to microUSB ケーブルを使用して、 ホストコンピュータのUSBポート と Devboard の microUSBポート を接続します。 microUSBポート付近のLEDが橙色に点灯します。
![devboard-serial-co.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/4efac509-752b-862f-7d51-8a68b566d6d0.jpeg)

次に、下記のコマンドを入力して、USBポートが正常に認識されていることを確認します。

```console:
$ dmesg | grep ttyUSB
[ 5978.379089] usb 1-3: cp210x converter now attached to ttyUSB0
[ 5978.381370] usb 1-3: cp210x converter now attached to ttyUSB1
```

ひとつ前のコマンドで表示された **`ttyUSB0`** に対して、 **`screen`** コマンドを使用して接続します。

```console:
$ sudo screen /dev/ttyUSB0 115200
```
すると下図のように真っ黒な画面が表示されます。
![Screenshot 2019-08-27 01:17:26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/6c566a3a-6a1b-f825-d47f-8627ed69985e.png)
次に、Tpye-C 電源ケーブルを接続します。
![devboard-serial-power-co.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/720706ee-6533-7f51-8658-6541830a9606.jpeg)

下記のように入力します。
<kbd>Ctrl</kbd> + <kbd>C</kdb>

```console:
u-boot=> fastboot 0
```
下図の状態で待ち状態になります。
![Screenshot 2019-08-27 01:27:34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/4a8be39c-f220-5eed-81f9-cc6cb440fdf1.png)
次に、 Type-A to Type-C USBケーブル [Data(OTG)] を Devboard と ホストPC へ接続します。
![devboard-serial-power-data-co.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/d5c988ab-5f78-460c-c899-c26ad9171a52.jpeg)

**`screen`** コマンドを使用したターミナルとは別のターミナルをホストコンピュータで起動します。

<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>T</kbd>

続いて、新しく起動してきたターミナル上で下記のコマンドを実行します。

```console:
$ fastboot devices
```
![Screenshot 2019-08-27 01:36:24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/6dc77e7f-8438-8338-b4d0-961cc6c1861a.png)

下記のコマンドを実行し、eMMCのフラッシュに必要なリソース一式をダウンロードし、 フラッシュ用スクリプト **`flash.sh`** を実行します。

```console:
$ cd ~/Downloads
$ curl -O https://dl.google.com/coral/mendel/enterprise/mendel-enterprise-chef-13.zip
$ unzip mendel-enterprise-chef-13.zip && cd mendel-enterprise-chef-13
$ rm ../mendel-enterprise-chef-13.zip 
$ bash flash.sh
```
フラッシュがスタートしますので、ビールでも飲みながら処理が終わるまでしばらくコンソールを眺めます。 ５分ほど掛かります。
![Screenshot 2019-08-27 01:41:14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/aa06074d-3f31-7078-e8f0-39b0bf291712.png)

終わりました。
![Screenshot 2019-08-27 01:45:18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/54c7c3d5-f133-fca9-1113-a38af5ace431.png)

ログインしてみます。 **`screen`** コマンドを入力したターミナルで下記のように入力します。
IDは **`mendel`**
Passwordも **`mendel`**
です。

```console:
Mendel GNU/Linux (chef) lime-valet ttymxc0

lime-valet login: mendel
Password: mendel
```
![Screenshot 2019-08-27 01:49:20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/8e7391c2-59e6-5269-9549-49a0e457bfa1.png)

Wi-Fi 接続環境を整えるため、下記のコマンドを実行します。

```console:
$ nmtui
```

**`Activate a connection `** を選択し、表示されたSSIDのうち、適切なものを選択します。
続いて、Wi-Fiのパスワードを入力します。
うまくいっていれば、これで Wi-Fi によるインターネット接続環境が整います。

次に、 Devboard の内部パッケージを最新化します。

```console:
$ echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | \
sudo tee /etc/apt/sources.list.d/coral-edgetpu.list

$ sudo apt-get update
$ sudo apt-get dist-upgrade -y
```

最後に、 microUSBケーブルを Devboard から外して終わりです。
![devboard-power-data-co.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/390f4dd8-7ef3-8dd9-d232-952a032894cb.jpeg)

# ４．Finally
次回は、Edge TPU x3 + Devboard TPU x1 の合計４個仕立てで高速推論にチャレンジしてみたいと思います。
![IMG_20190812_011433.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/194769/66b6df35-9e77-c882-3b73-5f26d73d6e7c.jpeg)