jdk100을 사용할 때 초기상태로 되돌리고 싶다거나 실수로 filesystem을 날렸다거나 했을 때 부팅 가능한 상태로 만들어 주는 방법을 공유한다.
Jetson으로 뭔가를 개발할 때 중요한 버전이 세가지 있다.
Jetpack을 받아 모든 것을 다 설치할 수도 있지만 eMMC 버전을 사용하는 경우 Linux for Tegra를 이용하여 직접 flash를 할 수 있는 것이 좋다.
이 링크는 Linux for Tegra의 버전 별로 정리가 잘되어 있어 내 경우 즐겨찾기를 해두고 사용한다.
Jetpack과 L4T의 버전이 맞아야 CUDA나 cuDNN이 정상 동작한다. 버전을 확인하는 데 유용한 링크이다.
위의 Jetson Linux Archive에서 원하는 버전을 클릭해서 release page로 들어가면 아래 페이지를 볼 수 있다.
Xavier, TX2 계열은 왼쪽, nano, tx1계열은 오른쪽이다.
여기서 지금 필요한 주요 링크는 아래와 같다.
Developer Guide는 뭐가 안된다 싶으면 여기부터 뒤져보는게 가장 빠르다.
wget https://developer.nvidia.com/embedded/l4t/r32_release_v7.1/t210/jetson-210_linux_r32.7.1_aarch64.tbz2
tar xpf jetson-210_linux_r32.7.1_aarch64.tbz2
wget https://developer.nvidia.com/embedded/l4t/r32_release_v7.1/t186/jetson_linux_r32.7.1_aarch64.tbz2
tar xpf jetson_linux_r32.7.1_aarch64.tbz2
cd ${L4T}/rootfs
sudo tar xpf {아까 root filesystem 받아놓은 경로}/tegra_linux_sample-root-filesystem_r32.7.1_aarch64.tbz2
sudo tar xpf {아까 root filesystem 받아놓은 경로}/tegra_linux_sample-root-filesystem_r32.7.1_aarch64.tbz2
cd ${L4T}
sudo ./apply_binaries.sh
cd ${L4T}/tools
#sudo ./l4t_create_default_user.sh -u {username} -p {password} -n {hostname} -a --accept-license
sudo ./l4t_create_default_user.sh -u nvidia -p nvidia -n jdk100 -a --accept-license
jdk100 carrier board를 사용하는 경우 아래 링크의 파일이 필요하며 다른 캐리어보드를 사용시 그에 맞는 dtb file이 필요하다.
nano
jdk100.dtb
cd ${L4T}
wget -O kernel/dtb/jdk100.dtb https://gitlab.com/telelian_public/l4t/jdk100/uploads/b74889c252296faaf7e38a2884690512/jdk100.dtb
xavier nx
jdk100-xaviernx.dtb
tegra19x-mb1-pinmux-p3668-a01.cfg
cd ${L4T}
cp bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p3668-a01.cfg bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p3668-a01.cfg.org
wget -O bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p3668-a01.cfg https://gitlab.com/telelian_public/l4t/jdk100-xaviernx/uploads/d1741c3bcfddc723fc8ceff6d67da0b9/tegra19x-mb1-pinmux-p3668-a01.cfg
wget -O kernel/dtb/jdk100-xaviernx.dtb https://gitlab.com/telelian_public/l4t/jdk100-xaviernx/uploads/a088620adbffdce432e77f98a5f01f2c/jdk100-xaviernx.dtb
nano
lsusb
Bus 001 Device 010: ID 0955:7f21 NVIDIA Corp. APX
xavier nx
lsusb
Bus 001 Device 010: ID 0955:7e19 NVIDIA Corp. APX
nano
cd ${L4T}
sudo ./flash.sh -d kernel/dtb/jdk100.dtb jetson-nano-emmc mmcblk0p1
cd ${L4T}
sudo ./flash.sh -k DTB -d kernel/dtb/jdk100.dtb jetson-nano-emmc mmcblk0p1
xavier nx
cd ${L4T}
sudo ./flash.sh -d kernel/dtb/jdk100-xaviernx.dtb jetson-xavier-nx-devkit-emmc mmcblk0p1
cd ${L4T}
sudo ./flash.sh -k kernel-dtb -d kernel/dtb/jdk100-xaviernx.dtb jetson-xavier-nx-devkit-emmc mmcblk0p1