2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2021-02-02

はじめに

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

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

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

スクリーンショット 2021-02-02 9.35.00.png

Nano

ビルドツールの変更点

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

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

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

L4T_TARGET="32.3.1"L4T_TARGET="32.5.0"

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

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.0/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	29m40.845s
user	75m54.888s
sys	7m11.592s

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

$ ./makeModules.sh

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

real	41m50.216s
user	109m18.468s
sys	11m3.240s

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 Tue Feb 2 11:18:50 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 -H pip3 install pygame
$ python3 pocket_miku_test.py

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

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?