LoginSignup
1
0

More than 3 years have passed since last update.

Jetson JetPack4.5.1 のカーネルビルド

Posted at

はじめに

2021年2月25日にJetPack4.5.1がリリースされましたので、Jetson Nano (4GB/2GB)でLinux カーネルとモジュールをビルドしてみました。
JetsonHacks の buildKernelAndModules ツールを使ってビルドを行います。

ソースコードのダウンロードリンク

以前はJetson Download Centerから直接ダウンロードできましたが、L4Tのページからダウンロードするように変更されています。

スクリーンショット 2021-03-05 13.36.23.png

Nano

ビルドツールの変更点

まず、ツールをダウンロードします。

$ git clone https://github.com/JetsonHacksNano/buildKernelAndModules
$ cd buildKernelAndModules

ツールは JetPack 4.3 (r32.3.1) 用に作成されているので、ターゲットバージョンを JetPack 4.5.1 (r32.5.1) に変更します。

$ vi getKernelSources.sh
L4T_TARGET="32.3.1"L4T_TARGET="32.5.1"

Jetson Nano 2GBの場合は、以下も変更します。

JETSON_MODEL="NVIDIA Jetson Nano Developer Kit"JETSON_MODEL="NVIDIA Jetson Nano 2GB Developer Kit"

カーネルソースコードのダウンロードリンクを変更します。

$ vi scripts/getKernelSources.sh
wget -N https://developer.nvidia.com/embedded/dlc/r32-3-1_Release_v1.0/Sources/T210/public_sources.tbz2
↓
wget -N https://developer.nvidia.com/embedded/l4t/r32_release_v5.1/r32_release_v5.1/sources/t210/public_sources.tbz2

ビルド手順

1.カーネルソースをダウンロードするスクリプトを実行する

$ ./getKernelSources.sh

2. コンフィグを修正する

例として、書籍「Jetson Nano 超入門」の Part 6-2 に沿って MIDI 関連のコンフィグを追加します。

$ sudo vi /usr/src/kernel/kernel-4.9/.config
.config
CONFIG_SOUND_OSS_CORE=y
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_RAWMIDI_SEQ=y

3. カーネルをビルドする

$ ./makeKernel.sh

途中で質問された場合は y で答えます。

OSS Sequencer API (SND_SEQUENCER_OSS) [N/y/?] (NEW) y
Virtual MIDI soundcard (SND_VIRMIDI) [N/m/y/?] (NEW) y

Image makeにかかった時間は以下のとおりでした。

real    32m9.250s
user    77m18.840s
sys 7m26.132s

4. モジュールをビルドする

$ ./makeModules.sh

Modules make にかかった時間は以下のとおりでした。

real    43m21.495s
user    111m11.208s
sys 11m23.764s

5. Image のバックアップを取得する (オプション: 必須ではありません)

$ sudo cp /boot/Image /boot/Image.backup

6. Image をコピーする

ビルドした新しい Image を現在の Image にコピーします。

$ ./copyImage.sh

7. /boot/extlinux/extlinux.conf を修正 (オプション: 必須ではありません)

起動時の backup kernel として /boot/Image.backup を指定することが可能です。

$ sudo vi /boot/extlinux/extlinux.conf
/boot/extlinux/extlinux.conf
# LABEL backup
#    MENU LABEL backup kernel
#    LINUX /boot/Image.backup
#    INITRD /boot/initrd
#    APPEND ${cbootargs}
↓
LABEL backup
   MENU LABEL backup kernel
   LINUX /boot/Image.backup
   INITRD /boot/initrd
   APPEND ${cbootargs}

8. 再起動

$ sudo reboot

動作確認

カーネルのビルドされた時刻を確認することができます。

$ uname -a
Linux jetson-desktop 4.9.2014.9.201-tegra #1 SMP PREEMPT Fri Mar 5 14:28:42 JST 2021 aarch64 aarch64 aarch64 GNU/Linux

書籍「Jetson Nano 超入門」の Part 6-3 のサンプルスクリプトを実行して MIDI が鳴れば正常です。

$ wget https://raw.githubusercontent.com/karaage0703/jetson-nano-tools/master/scripts/pocket_miku_test.py
$ sudo apt install libsdl2-dev
$ sudo apt install libsdl2-ttf-dev
$ sudo apt install libsdl2-image-dev
$ sudo apt install libsdl2-mixer-dev
$ sudo apt install libfreetype6-dev
$ sudo apt install libjpeg-dev
$ sudo apt install libportmidi-dev
$ sudo apt install python3-pip
$ sudo -H pip3 install pygame
$ python3 pocket_miku_test.py

(参考)
https://qiita.com/kitazaki/items/5fc6b2e8df2bfe03e9b5

1
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
1
0