Jetson TK1のセットアップ(JetPack, Grinch, ROS Jadeのインストール)

今更ですが,Jetson TK1のセットアップをします.Jetson TK1というのはNVidia製の組み込み用PCで,小さいにも関わらずGPUを搭載しているという特徴があります.

これを使ってDARPA Urban Challengeで優勝したスタンフォード大のStanleyみたいなものをRCカーで実現しようというのを当面の目標にしようと思います.

Jetsonセットアップに必要なもの

Jetsonは組み込み用PCなので,セットアップのためにキーボードとかいろいろくっつる必要があります.以下のものが必要です.意外と多いな・・・

  • ホストPC
    Jetson以外にもPCがセットアップの際に必要です.しかもUbuntu 14.04が必要です.私はたまたま普段からUbuntu 14.04だったので助かりましたが,これを用意しないといけないのは面倒ですね...
  • USBハブ
    JetsonはUSB3.0ポートが1つあるだけです.マウス,キーボードの両方が必要であればUSBハブが必要になります.私はELECOMのU2H-SS4BPNを使いました
  • 外付けUSBキーボード
    有線推奨.いくつか動かないものを確認.私はELECOMのTK-FCM062BKを使いました.MicrosoftのAll-in-one Keyboardというタッチパッド付きのワイヤレスキーボードは動きませんでした→セットアップ完了後は動きます
  • 外付けUSBマウス
    全ての動作をコマンドやショートカットキーでできるのであれば必要ありませんが,あった方が便利です.私はELECOMのM-Y4AURを使いました.
  • LANケーブル
    sshで遠隔ログインするのに必要です.自宅のルータにつなぎます.無線でセットアップするのは,ドライバが初期状態で無いためできないと思われます.
  • 無線LANモジュール(オプション)
    セットアップ完了後は無線LANモジュールを使ってネットとつなげると便利です.無線LANモジュールを使うときはアンテナも必要になります.私はこちら(インテル デュアルバンド 高速 Wi-Fi 通信Band Wireless-802.11 AC Intel 7260 最大リング867 Mbps+ Bluetooth 4.0 無線LANカード)の無線LANモジュールとこちら(4dBi アンテナ 無線LAN WIFI/Wimax/Bluetooth モジュール用 ミニサイズ アンテナ 2本 17cm 1.13ipex / U.FL SAISEIYA)のアンテナを使いました.
  • 電源アダプタ
    Jetsonに初めから付いていると思いますが...12V供給できれば良いです.
  • USB micro ケーブル
    JetsonとホストPCをつなぎます.セットアップの際,このケーブル経由でプログラムをJetson側に書き込むことになります.
  • HDMI接続ディスプレイ + HDMI ケーブル or VGA接続ディスプレイ + VGAケーブル + HDMI→VGA変換アダプタ
    JetsonにはHDMI用のポートしかないのでHDMIケーブルが使えるものが好ましいです.私の場合,VGA接続のものしかなかったのでこちら(Qtuo 金メッキコネクタ搭載 Active タイプ HDMI オス → VGA メス 変換アダプタ マイクロUSBと3.5mm オーディオポートケーブル付き 1080P 高解像度対応)の変換アダプタを使いました.

接続すると以下のようになります.

IMG_1060.JPG
マウス接続するの忘れてた・・・

Jetson起動

電源アダプタを挿すとJetsonが起動します.なぜか何もディスプレイに表示されないときがあったのですが,Jetsonの基板上にあるリセットボタンを押して再起動すると表示されました.
実はこの時点では画面に通常のUbuntuの画面が出ない(XWindowが起動しません)ので,CUIベースでいろいろとコマンドを打ち込んでセットアップしていく必要があります.

まずユーザ名とパスワードを入れてログインしましょう.両方ともデフォルトで”ubuntu”です.

次に以下を打ち込んでいきます.

cd NVIDIA-INSTALLER
sudo ./installer.sh

これを終えてから再起動すると(コマンドでsudo rebootもしくはresetボタンを押す)Ubuntuのデスクトップ画面が表示されるようになります.

解像度の変更

私の環境ではディスプレイ解像度が640 x 480になっており見にくかったので,初めの段階でディスプレイ解像度を変更しておきました.

ここで厄介なのが,GUIベースで解像度を変更しようとしても,解像度が低すぎるとクリックしたいボタンが画面上に入っていない&クリックできないという状況になることです.ということでシェル上のコマンドで解像度を変更します.
まず,以下のようなコマンドを入力します.

xrandr -q

私の環境では以下のような出力が得られました.

Screen 0: minimum 8 x 8, current 1280 x 960, maximum 16384 x 16384
HDMI-0 connected primary 1280x960+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   640x480        60.0 +   75.0     72.8     66.8     61.0  
   1920x1080      60.0  
   1280x1024      75.0     70.0     60.0  
   1280x960       72.0*    60.0  
   1280x720       60.0  
   1152x864       75.0  
   1024x768       75.1     72.0     70.1     60.0  
   832x624        75.0  
   800x600        75.0     72.2     60.3     56.3  
   720x400        70.0  
   640x350        70.2

このうち必要な情報は”HDMI-0″のところと,その下の”***x***”という有効な解像度の部分です.以下のようにして解像度を変更します.

xrandr --output HDMI-0 --mode 1280x1024

JetPack for L4Tのインストール

※ここからはホストPC上での作業になります!

Pre Installation Jetson TK1

JetPackというのはJetsonの開発に必要とされるソフトウェアをパッケージ化したものです.L4TというのはLinux For Tegraということでしょう.
NVidiaのページから最新のJetPackをダウンロードします.登録みたいなのをしないといけないかもしれません.

まずはダウンロードしたファイル(JetPack-L4T-*.*.*-linux-x64.run, アスタリスクは適宜変更してください)を適当なディレクトリに移動します.このときのディレクトリがJetPackのインストール先になります.私の場合は,/home/daichi/Document/jetpack_tk1というディレクトリに移動させました.

次に実行できるようにファイルの設定を変更します.以下をシェル上で実行してください.

chmod a+x JetPack-L4T-*.*.*-linux-x64.run

次に,そのファイルを実行します.

./JetPack-L4T-*.*.*-linux-x64.run

ここで私の環境ではウィンドウが現れて以下のような警告が出ましたが,無視して進めていきます.

Warning: We noticed you are running OS with non-EN locale. NVIDIA does not test nor support such configurations

“Select Development Environment”の項目では当然”Jetson TK1 Development Kit and Ubuntu Host”を選択します.

その後ホストPC側でインストールが完了すると”Network Layout”を選択する必要がありますが,私の場合Jetsonを自宅のルータに接続していたので”Device accesses Internet via router/switch”を選択しました.

Post Installation Jetson TK1

では次にJetsonにソフトウェアのアップデートおよびインストールを反映させます.おそらくこの段階で”Post Installation”というタイトルのウィンドウが表示されて,英語で手順が示されていると思います.以下はそれを日本語に翻訳したものになります.

  1. Jetsonの電源を切ります.電源を引っこ抜くのも良いですが,普通にシャットダウンします
  2. USBケーブルでホストPCとJetsonを接続します
  3. Jetsonの電源を入れます.
  4. Jetsonの基板上にある”POWER”とラベル付けされたボタンを押す(押してすぐ離す)→”FORCE RECOVERY”とラベル付けされたボタンを押しっぱなしにする→その状態で”RESET”とラベル付けされたボタンを2, 3秒押し続ける
  5. ホストPCのシェル上にてlsusbを実行し,”NVidia Corp”という項目があることを確認する

準備ができたら,”Post Installation”というタイトルのウィンドウ上で”Enter”を押すことでPost Installationが始まります.

動作確認

Post Installationが終わったらJetson側で/home/ubuntu/NVIDIA-6.5_Samples/bin/armv7l/linux/release/gnueabihf以下にあるサンプルを実行してみてください.

Grinch Kernelのインストール

これでJetsonのLinuxのKernelバージョンがアップデートされたり,その他CUDAなどがインストールされたわけですが,細かいドライバなどは入っていない状態です.例えば,無線LANモジュールが動かなかったりするわけです.これはJetsonが組み込み用途で潤沢なストレージを用意していないため,各種ドライバなどがデフォルトで最低限のものしか用意されていないためです.そこでGrinch Kernelというものをインストールするのですが,これは”もうちょい色々足して,今どきのUbuntuをデスクトップやノートPCにインストールしたらこれくらい何も気にせず色々使えるようになってるよね”という状態にするためです.ここに手順が書かれています.

まず,現在のKernelが何かを確認しておきます.

uname -r

私の場合以下のような出力になりました.

3.10.40-ga7da876

次に,gitをインストールします.

sudo apt-get install git

次にgit cloneによって最新のinstallGrinchをダウンロードします.私はDocumentsディレクトリ以下にダウンロードしました.

cd
cd Documents
git clone https://github.com/jetsonhacks/installGrinch.git

ではinstallGrinchをインストールします.

cd installGrinch
. ./installGrinch.sh

インストール完了後,再起動してもう一度以下を実行してKernelを確認します.

uname -r

私の場合以下のような出力になりました.

3.10.40-grinch-21.3.4

これで無線LANモジュールが動くようになりました.おそらく他にも色々と動くようになっていると思います.

USB3.0の有効化

JetsonにはUSB3.0のポートが1つありますが,デフォルトではUSB3.0ポートがUSB2.0ポートとしてしか動かないようです.有効化についてはここに書いてありました.

エディタであるファイルを編集します.

sudo gedit /boot/extlinux/extlinux.conf

そしてファイル内のusb_port_owner_info=0とある部分をusb_port_owner_info=2に変更します.
前述の記事ではusb_port_owner_infoの項目がファイル内に2つあり,その内の後の方を変更するように書いてありますが,最新のKernelではusb_port_owner_infoの項目は1つだけになっています.

ROS Jadeのインストール

デスクトップやノートPCにインストールするときと異なるのは以下の2点です.

  1. 通常のUbuntu用のROSではなく,Ubuntu ARM用のROSをインストールする
  2. ROSをインストールする際,フルインストールするのではなく最低限の部分のみインストールする

上記を踏まえた手順はオフィシャルのページにあります.特に問題なく進むと思います.

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中