⚡
Jetson Orin NanoでPREEMPT_RTを有効にする手順
Jetson Orin NanoでPREEMPT_RTを有効にする手順
前提
- Jetson Orin Nano開発者キット
- JetPack 6.2(r36.4)をインストール済み
- SDK Manager を使用してJetson Orin Nanoをセットアップ済み
- SDK ManagerでOSのインストール先としてNVMeを選択していること
- Ubuntu 22.04が起動していること
RT カーネル導入の手順
参考URL: https://docs.nvidia.com/jetson/archives/r36.4/DeveloperGuide/SD/Kernel/KernelCustomization.html
- APT ソースに RT 専用リポジトリを追加
sudo vim /etc/apt/sources.list.d/nvidia-l4t-apt-source.list
# 末尾に 1 行追記(例:JetPack 6.2 = r36.4)
deb https://repo.download.nvidia.com/jetson/rt-kernel r36.4 main
- APT パッケージリストを更新
sudo apt update
- パッケージをインストール
sudo apt install \
nvidia-l4t-rt-kernel \
nvidia-l4t-rt-kernel-headers \
nvidia-l4t-rt-kernel-oot-modules \
nvidia-l4t-display-rt-kernel
注意
ここでこのまま再起動すると、正常に起動しない場合があるので、次の手順を実行するまで再起動しないことをお勧めします。
- 現在のカーネルを確認
uname -r
ここで表示されるのは、5.15.148-tegraになっている想定で進めます。
- インストールされたRT用のドライバを確認
ls /lib/modules/
ここで5.15.148-tegraと5.15.148-rt-tegraの2つのディレクトリがあることを確認します。
- RT用initrdを作成する
sudo update-initramfs -c -k 5.15.148-rt-tegra
生成されたファイルを確認します。
ls -lh /boot/initrd-5.15.148-rt-tegra
- カーネルの設定を変更
まずは、extlinux.confをバックアップします。
sudo cp /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.bak
次に、extlinux.confを編集します。
sudo vim /boot/extlinux/extlinux.conf
LABEL real-timeのセクションのINITRDの行を以下のように変更します。
INITRD /boot/initrd.img-5.15.148-rt-tegra
- 再起動
sudo reboot
- 再起動後、RTカーネルが有効になっていることを確認
uname -r
ここで表示されるのは、5.15.148-rt-tegraになっていることを確認します。
以上で、Jetson Orin NanoでPREEMPT_RTを有効にする手順は完了です。
再起動時に黒画面でカーソルだけ表示される場合
ブートに失敗している可能性が高いです。以下の手順で復旧できます:
- 再起動直後の画面でESCキーを押して、UEFIメニューを表示させます。
- 次の順番で進みます:
- Device Manger
- NVIDIA Configuration
- L4T Configuration
- OS chain A statusが
Unbootable
になっている場合は、Normal
に変更します。 -
Save
して再起動します。 - ブートメニューで選択肢が表示されるので:
-
0
キー:通常カーネル(primary)で起動 -
1
キー:リアルタイムカーネル(real-time)で起動
-
-
0
キーを押して、通常カーネルで起動します。
再起動後、通常のカーネルで起動できることを確認します。
uname -r
ここで表示されるのは、5.15.148-tegraになっていることを確認します。
Discussion