ひでみのアイデア帳

くだらないことなんだけど、忘れないために・・・

Jetson TK1セットアップ

Jetson TK1のYoctoイメージを作成できたんだけど、CUDAを動かせる環境が入ってないことに気がついた。

なので、Jetson TK1でYocto環境を試すのは将来の課題にしよう。

まずは、NVIDIAのサイトあるように準備されているイメージを焼きこんで使う。 もちろん、オンボードのeMMCではなくSDカードで起動できるようにする。 参考にするのは下記のWebページになる。

https://developer.nvidia.com/embedded/linux-tegra

% wget http://developer.download.nvidia.com/embedded/L4T/r21_Release_v4.0/Tegra124_Linux_R21.4.0_armhf.tbz2
% wget http://developer.download.nvidia.com/embedded/L4T/r21_Release_v4.0/Tegra_Linux_Sample-Root-Filesystem_R21.4.0_armhf.tbz2
% tar xjvf Tegra124_Linux_R21.4.0_armhf.tbz2
% cd Linux_for_Tegra/rootfs
% sudo tar xjvf ../../Tegra_Linux_Sample-Root-Filesystem_R21.4.0_armhf.tbz2
% cd ..
% sudo ./apply_binaries.sh

SDカードの第一パーティションをFAT、第二パーティションをext4でフォーマットします。 まずは第二パーティションにルートイメージを書き込みます。

% cd Linux_for_Tegra/rootfs
% mount /dev/sdc2 /mnt/sdcard
% cp -a * /mnt/sdcard
% sync
% sudo umount /mnt/sdcard

次にzImageとDevice Treeを第一パーティションにコピーします。

% mount /dev/sdc1 /mnt/sdcard
% cp Linux_for_Tegra/kernel/zImage /mnt/sdcard/
% cp Linux_for_Tegra/kernel/dtb/tegra124-jetson_tk1-pm375-000-c00-00.dtb  /mnt/sdcard/
% cd /mnt/sdcard

次のようにSDカード上にboot.txtを作成し、u-bootの環境変数を拡張します。

load mmc 1:1 ${kernel_addr_r} zImage
load mmc 1:1 ${fdt_addr_r} tegra124-jetson_tk1-pm375-000-c00-00.dtb
setenv bootargs console=ttyS0,115200n8 debug_uartport=lsport,3 console=tty1 rw rootwait root=/dev/mmcblk1p2
bootz ${kernel_addr_r} - ${fdt_addr_r}

mkimageがインストールされていない場合は次のようにu-boot-toolsをインストールする。

% apt-get install u-boot-tools

boot.txtはboot.scrに変換します。 u-bootは*.scrでないと読めないので・・・

% mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "jetson-tk1" -d boot.txt boot.scr

次にJetson TK1とPCをUSBで接続して、Jetson TK1の"FORCE RECOVERY"ボタンを押しながら、"RESET"ボタンを押す。 そうすると、PC側でJetson TK1が見えるようになる。 次のようにすることでUSBにJetson TK1が存在するか確認することができる。

% cd ~/Linux_for_Tegra/
% lsusb | grep -i NVIDIA
Bus 001 Device 003: ID 0955:7140 NVidia Corp.

最後にu-bootを書き込み、セットアップは完了です。

% sudo ./flash.sh -L bootloader/ardbeg/u-boot.bin jetson-tk1 mmcblk1p2

リセットするとSDカードから起動します。

しかし、eth0が有効にならないようだ。 eMMCに書き込むイメージの場合は、eth0が有効になるなぁ〜。