MacOSX物理環境へのUbuntu14.04インストールからJetsonセットアップまで

# 開発環境
- Guest Device: Jetson TX-1
- Host Device: Mac book pro (OS X Yosemite)
- Host Linux Distribution: Ubuntu 14.04.5 (物理環境)

※ nvidiaは仮想環境をHostPCにすることを推奨していない（なお、Host PCはUbuntu14.04一択）。
そこで、Macの物理環境にUbuntu14.04をインストールすることにした。
https://devtalk.nvidia.com/default/topic/897718/jetson-tk1/flash-jetson-tk1-using-windows-/post/4735348/#4735348
> Although convenient, flashing from VM is technically unsupported

# 開封〜準備
- WiFiアンテナ取り付け
- 電源取り付け
- USB取り付け
- HDMI経由でモニタに接続

![DSC_0086.JPG (2.2 MB)](https://img.esa.io/uploads/production/attachments/4552/2016/09/21/14434/9a65d105-4426-409a-8005-ce73013f8ba3.JPG)


# パーティションの変更
JetsonのHost PC(Ubuntu14.04)を作成するため、Macの内蔵SSDにUbuntu用のパーティションを分割し、インストールする。
参考：http://ottan.xyz/os-x-ubuntu-dual-boot-2-1236/

※ OS X Yosemiteから、起動ディスクについては論理ボリュームがデフォルトで使用されるようになったため、自由にパーティション分割ができなくなっている。そのため、まずは論理ボリュームの解除を行う。

Apple_HFS Macintosh HDのIDENTIFIRを見つける（例：disk1）。
`$ diskutil list`

論理ボリュームの解除を行う。
`$ diskutil cs revert disk1`

UBUNTU HD(50GB)とUBUNTU SWAP(4GB)のパーティションを作成する。
<img width="852" alt="スクリーンショット 2016-09-20 22.50.36.png (433.5 kB)" src="https://img.esa.io/uploads/production/attachments/4552/2016/09/20/14434/0a3ef94b-e090-4d34-9c0f-da4b3e27cb3a.png">

# ブートローダ（rEFInd）のインストール
Mac起動時にLinuxを起動するため、「rEFInd」をダウンロードする。
http://www.rodsbooks.com/refind/getting.html
の「A binary zip file」のURLよりダウンロード。

ファイル（例：refind-bin-0.10.3.zip）をダウンロードして適当な階層に解凍し、その階層へ移動し、インストールを行う。

``` label:rEFInd
$ cd ~/Downloads/refind-bin-0.10.3
$ ./refind-install
```

# ホストPC側準備
[ubuntu14.04.5](http://cdimage.ubuntu.com/releases/14.04/release/)のisoをダウンロードする

[MAC LINUX USB LOADER](https://www.sevenbits.io/mlul/#downloads)を用いてUSBへiso書き込みを行う。

下記4ファイルをUSBのrootにコピーする。
[bcmwl-kernel-source_6.30.223.248+bdcom-0](http://packages.ubuntu.com/trusty-updates/amd64/bcmwl-kernel-source/download)
[dkms_2.2.0.3-1.1](http://packages.ubuntu.com/trusty-updates/all/dkms/download)
[fakeroot_1.20-3](http://packages.ubuntu.com/trusty/amd64/fakeroot/download)
[libfakeroot_1.20-3](http://packages.ubuntu.com/trusty/amd64/libfakeroot/download)
<img width="882" alt="スクリーンショット 2016-09-21 11.35.47.png" src="https://qiita-image-store.s3.amazonaws.com/0/100746/bc2830bc-10f4-ee18-d46d-6dc88d97ab16.png">

再起動してUbuntuをUSBからブートする。
Ubuntu起動後、デスクトップ上にあるinstallerを起動して、先ほど作成したパーティションを選択してインストールを行う。

# Jetpackを利用したセットアップ
以降は作成したHost PC (Ubuntu)にて行う。

まずは、NVIDIAのサイトから[Jetpack for L4T](https://developer.nvidia.com/embedded/jetpack)をダウンロードする。（要登録）


とても見やすくまとまっているので[インストールガイド](http://docs.nvidia.com/jetpack-l4t/2_3/index.html#developertools/mobile/jetpack/l4t/2.3/jetpack_l4t_install.htm)参照してください。
以下、大まかに作業内容のみ書きます。

``` label:Jetpackを利用したセットアップ
$ cd /home/ubuntu/ダウンロード
$ chmod +x JetPack-L4T-2.3-linux-x64.run
$ mv JetPack-L4T-2.3-linux-x64.run /home/ubuntu/jetson-tx1
$ cd /home/ubuntu/jetson-tx1
$ ./JetPack-L4T-2.3-linux-x64.run
```

will be installed directoryがrunファイルと同じディレクトリであることを確認して次へ。
TX1を選択して次へ。
パスワード入力を求められるので入力して次へ。
Component Managerが開く。次へ。
全部チェックしてAcceptボタンを押す。
しばらく待っているとインストール完了画面になるので、次へ。
Network Layout設定画面になるので、「Device accesses Internet via router/switch」を選択する。
target device(例：wlan0)を選択して、次へ。
確認して次へ。

ここで、Jetsonデバイスの接続を促すダイアログが出現する。
指示通り、

- TX1の電源OFFにする
- Host PCとJetson TX1をUSBで接続する
- Jetson TX1の電源をONにする
- Power Button（一番真ん中よりのボタン）を押す
- Force Recovery（二番目に真ん中よりのボタン）を押しっぱなしにする
- Force Recoveryを押しっぱなしにしたまま、Reset Button（一番外側のボタン）を押して離す
- 2秒待ってからForce Recoveryボタンを離す
- Host PCのターミナルで `$ lsusb` として、デバイス一覧に「NVidia Corp.」というのが見えていればOK。
- Host PCで先ほど出現したダイアログ上でEnterを押す

Host PCへのインストール作業が始まる。

- インストールが終わると、リセットボタンを押せと言われるのでReset Buttonを押す。
- Host PCでEnterを押す。
- Device IPを求められるので、2を選択して、JetPack L4TのダイアログでIP（TX1でwifiにつなげて`$ ifconfig -a`とかで確認する）とユーザー名（ubuntu）とパスワード（ubuntu）を入力する。
- TX1へのpushとinstallが始まる。

完了後、Finishを押してインストール作業完了。

ssh接続してみる（パスワードはデフォだとubuntu）。
`$ ssh ubuntu@tegra-ubuntu.local`

HDMIケーブルを接続してディスプレイ表示する。
/home/ubuntu/NVIDIA_CUDA-8.0_Samples/bin/aarch64/linux/release/SobelFilterを起動して確認してみる。
レナさんが1,000fps近くで表示される。

![DSC_0089.JPG (1.7 MB)](https://img.esa.io/uploads/production/attachments/4552/2016/09/21/14434/a71efe6d-4dd5-49f4-bd11-a1f3b8adbaab.JPG)

sobelフィルターON
![DSC_0090.JPG (3.4 MB)](https://img.esa.io/uploads/production/attachments/4552/2016/09/21/14434/7c120736-2399-4469-9aeb-26634bfb1d62.JPG)