qshinoの日記

Powershell関係と徒然なこと

Jetson nano usb boot

usb boot

Jetson Nano のUSB bootには、usb3 firmware とxusbドライバをカーネルに盛り込む必要がある。

全体の流れ。

  1. kernel source download
  2. get kernel config
  3. get usb firmware
  4. make menuconfig & build & install
  5. create ext4 and copy on usb
  6. edit extlinux.conf

kernel source

Jetson-Nano-public_sources.tbz2

get config

zcat /proc/config.gz > .config

get firmware

cp /lib/firmware/tegra21x_xusb_firmware ./firmware/

make menuconfig

kernel config

  • sudo apt-get install libncurses5-dev
  • make menuconfig
Device Drivers 
-> Generic Driver Options
-> "External firmware blobs to build into the kernel binary,"
-> "tegra21x_xusb_firmware"

build and install kernel

カーネルのビルドとインストール。

cd ~/kernel/kernel-4.9

make -j5

sudo make modules_install

sudo cp /boot/Image /boot/Image.dist

sudo cp arch/arm64/boot/Image /boot

ここでreboot。

create ext4 and copy on usb

usb flashパーティションを作成し、rootfsをコピー。

# clear usb flash
sudo dd if=/dev/zero of=/dev/sda bs=1M count=1

sudo cfdisk /dev/sda

# root とswapの2つのgptパーティションを作成。

# 24GB/root + 6GB/swapの例

sudo parted /dev/sda print
sudo parted /dev/sda mklabel gpt

sudo parted /dev/sda mkpart root ext4 1MB 24GB
sudo parted /dev/sda mkpart swap linux-swap 24GB 30GB

# copy rootfs

sudo mkfs.ext4 /dev/sda1
sudo mkswap /dev/sda2
sudo mkdir /mnt/root
sudo mount /dev/sda1 /mnt/root
sudo mkdir /mnt/root/proc
sudo apt -y install rsync
sudo rsync -axHAWX --numeric-ids --info=progress2 --exclude=/proc / /mnt/root

edit extlinux.conf

sudo sed -i 's/mmcblk0p1/sda1/' /boot/extlinux/extlinux.conf

# 以下は不要。

sudo sed -i 's/rootwait/rootwait zswap.enabled=1/' /boot/extlinux/extlinux.conf

上記のzswap.enabled=1はドライバを入れた場合だが、本記事では省略しているので不要。

ここでreboot

最後にswap partition

先のrebootで問題なければ、

echo "/dev/sda2            none                  swap           \
defaults                                     0 1" | sudo tee -a /etc/fstab

cd ~
wget https://raw.githubusercontent.com/Syonyk/raspberry_pi_scripts/master/zswap.sh

zswap は、ドライバを入れていれば。

参考元にはzswapドライバを入れる手順があるが省略。

ref

https://syonyk.blogspot.com/2019/04/nvidia-jetson-nano-desktop-use-kernel-builds.html?m=1