Skip to main content

Seeed の Jetson BSP のソースコードプロジェクトをビルドする方法

この wiki では、Seeed の Jetson 製品用の BSP ソースコードを取得し、完全な BSP ソースパッケージに整理し、Jetson デバイスにコンパイル/フラッシュする方法を説明します。

1. ワークスペースの準備

このガイドでは L4T 36.4.3 を例に、ソースコードプロジェクトをビルドし、コンパイルして Jetson デバイスにフラッシュする方法を説明します。同じプロセスが他のバージョンにも適用されます—後続の例のコマンドでバージョン番号を希望するビルドバージョンに置き換えるだけです

開始する前に、Ubuntu 20.04/22.04 PC ホストを準備する必要があります。

L4T バージョンと JetPack バージョンの関係がわからない場合は、このリンクを参照してください: https://developer.nvidia.com/embedded/jetpack-archive

コンパイルしたい特定の L4T (Linux for Tegra) リリースを検索します。例:

NVIDIA の公式 BSP を展開すると、Linux_for_Tegra という名前のディレクトリが得られます。次に、ルートファイルシステムアーカイブを公式の Linux_for_Tegra ディレクトリに展開します:

tar xf Jetson_Linux_r36.4.3_aarch64.tbz2
sudo tar xpf Tegra_Linux_Sample-Root-Filesystem_r36.4.3_aarch64.tbz2 -C Linux_for_Tegra/rootfs/

コンパイル用のソースコードを同期します。-t の後の引数を必要なL4Tバージョンに置き換えてください:

cd Linux_for_Tegra/source/
./source_sync.sh -t jetson_36.4.3

ワークスペースのルートディレクトリに移動します。以下のコマンドを使用して、目的のブランチのソースコードをローカルマシンにgit cloneします (-b <branch name>をターゲットブランチに置き換えてください):

sudo apt update
sudo apt install git-lfs
cd ../..
mkdir -p github/Linux_for_Tegra
git clone https://github.com/Seeed-Studio/Linux_for_Tegra.git -b r36.4.3 --depth=1 github/Linux_for_Tegra

Seeed の Jetson 用 BSP ソースコードは この GitHub リポジトリ で入手できます。 各ブランチが異なる L4T リリースに対応しているため、異なるブランチをチェックして希望する L4T バージョンを見つけることができます。

次に、元のソースコードを上書きします:

cp -r github/Linux_for_Tegra/* Linux_for_Tegra/

rootfsに必要な変更を適用します:

cd Linux_for_Tegra
sudo ./apply_binaries.sh

PCに依存関係をインストールします:

sudo apt-get update
sudo apt-get install build-essential flex bison libssl-dev
sudo apt-get install sshpass
sudo apt-get install abootimg
sudo apt-get install nfs-kernel-server
sudo apt-get install libxml2-utils
sudo apt-get install qemu-user-static

カーネルビルドの準備作業:

mkdir -p l4t-gcc
tar xf aarch64--glibc--stable-2022.08-1.tar.bz2 -C ./l4t-gcc
export ARCH=arm64
export CROSS_COMPILE=/your_path/l4t-gcc/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-

カーネルをコンパイルしてビルドする:

cd source
./nvbuild.sh

新しいカーネルdtbsとドライバーをインストールします:

./do_copy.sh
export INSTALL_MOD_PATH=/your_path/Linux_for_Tegra/rootfs/
./nvbuild.sh -i
tip

JetPack 5の場合、ファイルパスが異なるため、-pパラメータを以下のように変更する必要があります: -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml"

Jetpack 6の場合、デバイスをフラッシュする(recomputer-orin-j401を例とする):

sudo ./tools/kernel_flash/l4t_initrd_flash.sh \
--external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml \
-p "-c bootloader/generic/cfg/flash_t234_qspi.xml" --showlogs \
--network usb0 recomputer-orin-j401 internal

recomputer-orin-j401 を、使用しているデバイスの名前に置き換えてください。パラメータとして有効な device name を提供する必要があります。これは Linux_for_Tegra のルートディレクトリにある .conf ファイル名を確認することで見つけることができます。これらのファイル名のプレフィックスが、有効な device name パラメータに対応しています。

したがって、L4T 36.4.3 で利用可能なデバイス名パラメータは以下の通りです。j40j30 シリーズは同じ設定ファイルを使用します:

  • recomputer-industrial-orin-j201 (recomputer-industrial-orin-j40/j30 もこの device name をパラメータとして使用します。)
  • recomputer-orin-j401
  • reserver-agx-orin-j501x
  • reserver-agx-orin-j501x-gmsl
  • reserver-industrial-orin-j401
  • recomputer-orin-j40mini
  • recomputer-orin-robotics-j401
  • recomputer-orin-super-j401

リソース

技術サポート & 製品ディスカッション

私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを提供しています。

Loading Comments...