qshinoの日記

Powershell関係と徒然なこと

Jetson TX1 Xavier Nano SD/usb boot

Jetson TX1/Xavier/Nano SD boot

ext4 フォーマットのsdカードにrootfsをコピーした後に、emmcの/boot/extlinux.confを書き換える。

xavierでは使えないので注意。

起動シーケンス

TX1の起動シーケンスは、下記の通り。3. ubootまではemmc上で動作し、extlunux.confが指定するkernel, initrd, dtb, rootfsを使って起動する。

  1. 初期の起動シーケンス
  2. cboot
  3. uboot /boot/extlinux.conf読み込み
  4. linux

Nano

Nano では標準でSD bootであるが、それをusb flash bootに変更する際も同様である。

起動シーケンスのubootまではSDで行われる。

Xavier

xavier ではubootがなく、cbootからのlinux起動のため、extlinux.confを読み込めず、本手順の期待どおりに動作しない。

xavier でのsd bootには、cbootオプションを書き換える事になる。

flash.shにより、flashにcbootオプションを書き込めばsd bootも可能と言える。

例えば、rootfsを/dev/sda2に作成後、

  • flash.sh jetson-xavier /dev/sda2

但し、flash.shでは上記の通り、起動ディスクを一つしか指定できず固定である。起動時にディスクを動的に選択できない。

cbootに起動ディスクの選択機能があれば、flash.shの改造で起動ディスクの選択も可能かもしれない。

なお、起動に必要なものは、

  1. bootloader cbootまでのローダ
  2. cboot option cbo.dtb
  3. linux kernel/initrd/dtb
  4. rootfs

flash.shが何を何処に書き込んでいるか不明。1はemmcで良いが、2-4はdiskに書き込みたい。cboがロードするkernelをミニカーネルにし、ミニカーネルが動的に次段カーネルを選択すればよいのかも。

起動可能ディスク

起動可能ディスクは、TX1/2,Nanoの場合はubootにより、Xavierの場合はcbootによる。Xavierでは下記のディスクから起動できると言われている。

  1. emmc
  2. sd
  3. usb
  4. sata
  5. net: dhcp/tftp/nfs

Devkit 搭載のm.2 / Nvmeからの起動が入っていない。cbootにnvmeドライバがないのだろうか。PCIe slotにSSDを挿しての起動も同じく未対応。

Xavierのuboot未対応の理由は謎だが、課題は組み込み装置のJetsonにその様な機能が必要なのか。

或いは、先に出荷されたtx1/2、後に出荷されたnanoがuboot対応する一方、xavierがuboot対応しないことの意味は?

価格的にはXavierはNanoの10倍。位置づけが異なる。

  • Xavier $1,000, 512core, volta
  • TX2/8GB $400, 256core, pascal
  • TX2/4GB $300
  • Nano $100, 128core maxwell

補足

  • TX1, $400->$300, 256core, maxwell
  • TK1, EOL, 192core Kepler

TX1はTX2に統合されるとし、Jetsonとしては、Xavier, TX, Nanoの3シリーズ。今後も3シリーズを維持し続けるのか、或いは拡大/集約していくのか。

Xavierは自動運転等の高度な産業用途では重要なパーツであり、この分野ではまだまだ能力需要が高い。多数のベンチャーも生まれており、競争も激しい。どこかがエコシステムを勝ち取るまで競争が続く。但し、一般市場には出回らず、高度な産業用途が主戦場である。

一方、Nonoはロボットや監視等の程々の能力を安価に広く使いたい分野での需要が考えられる。また、nvidiaがエコシステムを拡大し、Xavierの領域でガリバーとなる為に裾野を広げる戦略領域でもある。

さて、TXの領域は中途半端であり、明確な需要が見えてこない。ラインナップと言う形で生き残るかもしれない。

参考

http://takesan.hatenablog.com/entry/2016/10/15/151649