月別アーカイブ: 2016年4月

JetPack for L4Tセットアップ 成功編

今回もJetson TX1の開発環境のセットアップです。

開発ホストとしてのUbuntuのセットアップが完了しましたので、次はいよいよJetPack for L4Tをインストールします。手順は失敗編とまったく同じですので再掲しません。

開発ボードをForce Recoveryモードで起動してUSBで認識させた後にも、失敗編のようにストールすることなくインストールが進みます。開発ボードのOS書き換えが済むと、開発ボードのUbuntuが自動起動します。また、起動後はubuntuユーザで自動ログインするようになっています。

ホストの方では、サンプルコードのクロスコンパイルが行われ、問題なくコンパイルできればビルドされたバイナリが開発ボードにコピーされます。XTermが閉じてインストーラに戻ればセットアップ完了となります。

開発ボードの方では、3D処理のサンプルアプリが自動起動するようです。これは閉じてしまって構わないと思います。

OS書き換え前の初回起動時にはドライバのインストールを手動で行う必要がありましたが、JetPackからのOS書き換え後は手動でドライバをインストールする必要はないようです。また、ホームディレクトリを開いてみると、色々と新しくディレクトリが生成されているのが確認できると思います。

JetPack for L4Tセットアップ ホスト編

引き続き、Jetson TX1の開発環境を構築します。

前回のセットアップではホストとしてVMWare上のUbuntuを用意しましたが、どうもVMWareやVirtualBox等の仮想環境上のUbuntuからのOSの書き換えがうまく動作しないことが判明しました。そこで、開発PCにSSDを増設して、この上にUbuntuをインストールし、デュアルブートできるようにしました。

今回増設したSSDは安い120GBのものです。BIOSでSATA2を有効にしてBIOSが認識できるようにし、DVDに焼いたUbuntu 14.04のインストールディスクをドライブに挿入して起動してUbuntuをインストールします。/dev/sdaはメインの開発環境であるDebianが入っているのでそのままにし、今回追加した/dev/sdb全体を/dev/sdb1としてUbuntuに割り当てました。SSDなので例によってswap領域は用意せず、無効にしてあります。

インストール完了後にPCを再起動したところ、grubが追加したSSDを認識できずにgrub rescue画面になってしまいましたが、

grub rescue> set prefix=(hd0,msdos1)/boot/grub
grub rescue> insmod normal
grub rescue> normal

で/dev/sda1の/boot/grubにあるnormalモジュールを読み込んで、通常のgrub画面の表示に成功しました。ここからDebianを起動し、

$ sudo cfdisk /dev/sdb

してみたところ、Ubuntuをインストールした/dev/sdb1パーティションにbootフラグが立っていません。bootフラグを立ててWrite→Quitした後に、念のためにupdate-grubを実行してgrubを再インストールして再起動したところ、ようやくUbuntuが起動できました。

2016/04/21追記: ストレージがSSDですので、Debianの時と同じく/etc/fstabのマウントオプションにnoatimeしておきます。fstrimは/etc/cron.weekly/fstrimから呼び出されるようなので、Debianのように手動で設定してやる必要はありません 。ただし、特定のメーカ以外のSSDの場合、このファイルでfstrim-allコマンドへの--no-model-checkオプション追加が必要です。詳細は/sbin/fstrim-allを読んでみて下さい。

JetPack for L4Tセットアップ 失敗編

前回に引き続きJetson TX1の開発環境のセットアップを行います。

2016/04/20追記: この記事を作成しながらセットアップを進めていたところ、仮想環境からのOSの入れ替えは失敗することが分かりました。Nvidiaとしても仮想環境上のUbuntuはサポート外で、デュアルブート等のネイティブ起動を推奨のようです。以下、記録として残しておきますが、参考にする際はご注意下さい。

開発用ホストとして、Ubuntu 14.04 64bit環境をVMWare上に構築します。後述しますが、JetPack for L4Tのインストールに16GBほど必要です。最近のLinuxのインストールは本当に簡単でいいですね。インストールが完了したら、例によってibus-skkとlv, tmuxをインストールしておきます。また、SSDなのでswapは無効にしました。

次に開発環境を用意します。NVIDIAにJetsonのポータルがありますので、まずはそこにアクセスします。並んでいるアイコンのうち左端にあるのがREGISTERですので、ここをクリックして開発者登録します。必要な情報を入力してsubmitすると、登録確認のメールが届きますので、URLをクリックすると登録が完了します。パスワードの変更(設定)を求められるので、次の画面で設定します。

パスワードの設定が完了すると、開発者サイトにログインした状態になります。ダウンロードページに移動し、JetPack for L4Tの最新版(現時点では2.1)をダウンロードします。ダウンロードしたらインストールしましょう。ここでは /opt/nvidia にインストールします。

$ sudo mkdir /opt/nvidia
$ sudo chown ユーザ名:グループ名 /opt/nvidia
$ mv JetPack-L4T-2.1-linux-x64.run /opt/nvidia
$ cd /opt/nvidia
$ chmod +x JetPack-L4T-2.1-linux-x64.run
$ ./JetPack-L4T-2.1-linux-x64.run

途中でTK1かTX1かの選択が出ますので、TX1を選択します。認証ダイアログが出たらパスワードを入力します。パッケージの選択では、Standardのままで問題ないと思います。この標準インストールの場合、ストレージに16GBほどの空きが必要になります。Agreementにチェックを入れ、先に進むとインストールが開始されます。

ウィンドウを消すなとか色々言われますが、普通にインストールしていけば大丈夫です。インストールが完了すると、ネットワーク構成を確認されます。ホストのUbuntu, Jetson TX1ともにネットワーク接続している方を選択し、ネットワークI/Fにeth0を選択し、先に進めます。すると開発ボードをForce Recoveryモードにせよ、とのダイアログが表示されますので、

  1. 開発ボードの電源を切り、ACアダプタも抜く
  2. 開発ボード側のmicroUSBポートとホストを付属のUSBケーブルで接続
  3. 開発ボードにAC電源を接続し、電源ボタン(S4)を押下
  4. すかさずForce Recoveryボタン(S3)を押しっぱなし
  5. リセットボタン(S1)を押して数秒待ってからForce Recoveryボタンを離す

という手順で開発ボードをForce Recoveryモードに移行させます。うまくいけばホスト側にNVidiaのデバイスが現れます。確認のためにホスト側のターミナルでlsusbコマンドを実行すると

$ lsusb
Bus 001 Device 002: ID 0955:7721 NVidia Corp.
...

のような行が表示されるはずです。開発ボードが認識されたら、ダイアログでエンターを押すとセットアップが開始されます。が、この直後、"Post Installation" 画面でセットアップがストールします。参りました。記事冒頭で追記した通り、VMWare等の仮想環境からではOSの入れ替えに失敗するようです。後日、デュアルブート環境を作成して再チャレンジします。

 

NVIDIA Jetson TX1

仕事で使うかもしれないので、NVIDIA Jetson TX1を入手しました。

開発ボードの他にアンテナ2本、ACアダプタ、USBケーブル、USBアダプタ、ジャンパーピンがそれぞれ1つずつ付属しています。使い方は簡単で、アンテナ刺してHDMI刺してキーボード刺してLANケーブル刺して電源刺して電源入れて、でOK。Ubuntu 14.04が起動します。と、これだけではアレなのでもう少し。

初回起動時はコンソールで起動します。設定済みのアカウント ubuntu/ubuntu でログインすると、ドライバのインストールが指示されるので、

$ cd NVIDIA-INSTALLER
$ ./installer.sh

して再起動しますと、見慣れたUbuntu 14.04のXというかUnityが起動します。日本語環境の設定や使い慣れたツールをインストールしておきましょう。私はuniverseを有効にしてlvとibus-skk, tmuxをインストールしておきました。HHKBでibus-skkを使う場合は、キーボードレイアウトをusに変更しておきましょう。

なお、常温で普通の使い方をしている限りでは、ボードに付属のファンは回らないようです。

2016/04/21追記: ここで開発ボード上のUbuntu環境をセットアップしても、後ほどJetPack for L4Tのインストールで上書きされます。ここでは雰囲気を味わう程度にして、ガリガリとカスタマイスしない方が無難です。

USB 3.0 ポート増設

USB 3.0対応の機器が増えてきましたので、ポートを増設しました。背面の拡張スロットだけでは不便ですので、空いているフロントの3.5インチベイにもポートを出します。SATA電源ケーブルが足りない予感がしたので、分岐ケーブルも購入しておきます。

T5500のサービスマニュアルを見ながらフロントパネルを外してUSBパネルを設置し、PCIeスロットにボードを差してSATA電源を接続し、フロントパネルのケーブルと接続したらOKです。もともと3.5インチベイに付いていたネジとUSBパネルに付いてきたネジとが噛み合わず、微妙な固定になってしまったのは気にしない方向で。

蓋を閉めて電源を入れ直し、dmesgにxhci関連のログが出ていれば認識されていると思います。lspciでもRenesasのUSB 3.0ボードが表示されるはずです。

LinuxのストレージをSSDに換装

開発でメインに使っているPC (DELL Precision T5500)のストレージを、HDDからSSDに換装しました。2.5インチ→3.5インチ変換アダプタも合わせて購入しました。

最初は単純にSSDをSATA 2に接続し、rescue modeでDebianを起動して

# ddrescue -f -v -r 3 /dev/sda /dev/sdb

し、shutdownした後にHDDをSATA 0から外してSSDをこちらに繋ぎ直し、再起動で一応Debianが起動しました。が、いくつか問題が。

  • fdiskを実行するとエラーが表示される。パーティションの開始セクタがおかしいらしい
  • 元のHDDのfsはext3だが、SSDのfsはext4の方がいいらしい
  • 起動時にエラーが表示される (起動はする)。fsck.ext4が見つからないらしい

続きを読む

Raspberry Pi 3

桜も開花し、ようやく本格的に春めいてきました。花粉が飛び交っていますが、これからアクティブティを上げてきたいと思います。

さて、先月末に発表されたRaspberry Pi 3ですが、ようやく国内でも入手できるようになりました。私も数台入手して、セットアップしました。3になってデフォルトでWi-Fiが搭載され、LANケーブルを引き摺り回さなくて済むようになったのは嬉しいのですが、電源が5V 2.5Aを要求するようになったが地味に痛いです。

今回は4台でクラスタを組むつもりなので、Ankerの6ポート60WのUSB電源を購入しました。電源コードが付くので自由度が高いのもいい感じです。

各ポート2.4Aで微妙に2.5Aに足りていませんが、スイッチサイエンスによると2Aでも動作するらしいので気にしない方向で。USB電源ケーブルは細くて取り回し易いのを選択しました。

4台をスタックするために20mm M2.6の六角スペーサーを捜したのですが、直ぐに手に入るものが見つからなかったので、10mmのものを2本繋いで20mmにすることにしました。microSDはいつものTranscend Class10のものです。

続きを読む