Jetson TK1 で USB HDD を使用して起動させたいとのコメントがあったので、とりあえず USB メモリを代用としてこちらから起動する方法にトライしてみました。
今更 TK1 という感じもありますが、 Jetson TX1 は性能がよくてほしいところではあるんですが価格ネックですね。
今回の作業は Windows 上に VMware Player で構築した Ubuntu 15.10 環境で作業しています.
準備
https://developer.nvidia.com/linux-tegra-r215 から必要なファイルを取得します。
- Tegra124_Linux_R21.5.0_armhf.tbz2
- Tegra_Linux_Sample-Root-Filesystem_R21.5.0_armhf.tbz2
これらを以下のようにして展開、準備します
$ tar xpf Tegra124_Linux_R21.5.0_armhf.tbz2 $ cd Linux_for_Tegra/rootfs $ sudo tar xpf ../../Tegra_Linux_Sample-Root-Filesystem_R21.5.0_armhf.tbz2 $ cd ../ $ sudo ./apply_binaries.sh
ファイルシステム書込
今回はファイルシステムを USB メモリに書き込みます。
Ubuntu 環境で USB メモリを装着して /dev/sdb1 で認識されているとして話を進めます。
まずは以下のコマンドでフォーマットを行います。
$ sudo umount /dev/sdb1 $ sudo mkfs.ext4 /dev/sdb1
フォーマットが完了したら、準備したファイル群を書き込みます。
USB メモリを /mnt/usbstick にマウントして作業しました。
このときのコマンド例を以下に示します。
$ sudo mkdir -p /mnt/usbstick $ sudo mount /dev/sdb1 /mnt/usbstick $ cd rootfs $ sudo cp -a * /mnt/usbstick
手元の環境では結構時間がかかりました。
完了したら、 sync コマンドを実行して、 USB メモリを取り外します。
ブート書込
続いて起動のための設定を行います。Jetson TK1 が電源オフの状態であるとして話を進めます。
先ほど作成した USB メモリを Jetson TK1 に装着します。
このとき、本体の USB コネクタに直接装着するのがよさそうです。
Jetson TK1をUSB(microUSBのほう)でLinux環境と繋いでリカバリーモードで起動させます
リカバリーモード関連については昔の記事の方を参考にしてください。
ここでは正常につながっているものとします。
以下のコマンドで USB メモリから起動するようにフラッシュを更新します。
$ sudo ./flash.sh -S 8GiB jetson-tk1 sda1
起動確認
うまくいけば書込後に勝手に起動が開始されます。されない場合にはリセットボタンを押してみてください。それでも起動してこない場合には USB 起動に失敗しています。
自分の場合では、上記の手順に到達するまでは失敗続きでした。ですので、うまくいかない場合には手順の見直しをしてみてください。
それでもうまくいかない場合は、試行錯誤するしかないと思いますが・・・。
また初回の起動完了までは時間がかかるので10分オーダーで放置することも予想しておきましょう。
一度起動確認が取れた後は、USB ハブを経由して USB メモリを装着しています。これでも問題なく動作しています。
まとめ
この手順にて USB メモリから起動に成功しました。ただし動作が eMMC, SDCARD の場合に比べて遅い気がします。
特に初回の起動完了までは結構時間がかかりました。真っ暗の画面で止まっているかのように思うことも。
使えないこともないし、起動メディアの選択肢が増えたことはよいことかな、というところで締めたいと思います。
[amazonjs asin=”B01DVS1FME” locale=”JP” title=”Toshiba THN-U401S0080C4 8GB USB2.0 並行輸入品”]
[amazonjs asin=”B012VK8TVS” locale=”JP” title=”東芝 USB TransMemory Mini-Metal 8GB Toshiba 海外向パッケージ品 並行輸入品”]
追記
スクリーンショットを確認していて気付きました。 R21.5 で USB 3.0 が見えていないような…
しかし、ブート時に USB 3.0 を有効にする方法を軽く試してみてもうまくいかずでした。
あるいは使用したメモリのせいもあるかもしれません。通常の HDD を繋ぐとまた結果は変わってくるかもしれません。
コメント
R21.5からsda1はUSBになったんですね。以前はsda1はSATAに割り当ててありました。という事はSATAを使ってBootする事ができなくなったんでしょうかね。気になります。
未確認ですが SATA のほうも単独なら sda になりそうな気がします。両方接続すると sda,sdb になったりするんでしょうかね。