LoginSignup
0
0

Jetson Nano 2GB のLinux Kernel を再構築する

Last updated at Posted at 2024-06-17
# Before
$ cat /proc/version
Linux version 4.9.337-tegra (gcc version 7.3.1 20180425 (Linaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Thu Jun 8 21:19:14 PDT 2023

# After
$ cat /proc/version
Linux version 4.9.337-tegra-customX (gcc version 7.5.0 (Linaro GCC 7.5-2019.12) ) #1 SMP PREEMPT Mon Jun 17 10:42:29 UTC 2024

まずこちらのGitをクローンしてください

1.l4tのカーネルをダウンロードして解凍する

執筆時の最新版は r32_release_v7.4

wget https://developer.nvidia.com/embedded/l4t/r32_release_v7.4/sources/t210/public_sources.tbz2
tar -xjf public_sources.tbz2
rm -f public_sources.tbz2
cd Linux_for_Tegra/source/public
tar -xjf kernel_src.tbz2

2.コンパイルコンテナーを作成します

執筆時のLinaro7.x系の最新版は GCC 7.5-2019.12

$ docker build . -t hexaforce/jetson-kernel-rebuilder

3.1 メディアカードリーダーの[MOUNTPOINTS]を確認する

$ lsblk /dev/sdb
NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sdb    8:16   1 29.5G  0 disk /run/media/{xxxx-USB-xxxx}

3.2 コンパイルコンテナーでビルド

{xxxx-USB-xxxx}は上記で出力されたもの

  • コンテナ内からホストのUSBを参照します
$ docker run --privileged --rm -it \
-v $(pwd)/Linux_for_Tegra:/Linux_for_Tegra \
-e LOCALVERSION=-tegra-customX \
-v /run/media/{xxxx-USB-xxxx}:/usb \
hexaforce/jetson-kernel-rebuilder

4.1 ビルドコンテナの[CONTAINER ID]を確認する

$ docker ps
CONTAINER ID   IMAGE                             COMMAND
{xxxx-ID-xxxx} hexaforce/jetson-kernel-rebuilder "bash /docker-entryp…"

4.2 コンテナーに侵入

{xxxx-ID-xxxx}は上記で出力されたもの

$ docker exec -it {xxxx-ID-xxxx} bash

5.1 SDカードのImageとdtbを上書きする

sudo cp $TEGRA_KERNEL_OUT/arch/arm64/boot/Image /usb/boot/Image
sudo cp -r $TEGRA_KERNEL_OUT/arch/arm64/boot/dts/* /usb/boot/dtb

5.2 SDカードにカーネルモジュールをインストールする

sudo make ARCH=arm64 O=$TEGRA_KERNEL_OUT modules_install INSTALL_MOD_PATH=/usb
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0