LoginSignup
10

More than 3 years have passed since last update.

Jetson Nanoのカーネル再コンパイル

Last updated at Posted at 2019-06-14

はじめに

本記事はJetson Nanoのカーネルを再コンパイルするための方法について記述する。基本的には普通のLinuxのためJetson Nanoだからと言って新しい部分があるわけではない。しかし不要なモジュールはどんどん削除していつかはスリム化したいので書き留めておく。

事前準備

最初にunameでカーネルのバージョンを把握しておく。

ターミナル
$ uname -a
Linux jetson-nano 4.9.140-tegra #1 SMP PREEMPT Wed Mar 13 00:32:22 PDT 2019 aarch64 aarch64 aarch64 GNU/Linux

4.9.140-tegraがカーネルのバージョンであり、バージョン4、パッチレベル9、サブレベル140、フレーバはtegraになる。

またコンパイルに備えて最大パフォーマンスにしておく。

ターミナル
sudo jetson_clocks

カーネルソースのダウンロード

ターミナル
wget https://developer.nvidia.com/embedded/dlc/l4t-sources-32-1-jetson-nano -O l4t-sources-32-1-jetson-nano.tar.gz

これを展開する。

ターミナル
tar xvf l4t-sources-32-1-jetson-nano.tar.gz

するとpublic_sourcesというディレクトリ配下にソースコードが展開される。

ターミナル
cd public_sources
ls *.tbz2

下記のファイル群が含まれている。

FreeRTOSV8.1.2_src.tbz2
gstegl_src.tbz2
gstjpeg_src.tbz2
gst-nvvideo4linux2_src.tbz2
gstomx1_src.tbz2
kernel_src.tbz2
libgstnvvideosinks_src.tbz2
nvgstapps_src.tbz2
nvsample_cudaprocess_src.tbz2
u-boot_src.tbz2
v4l2_libs_src.tbz2

kernel_src.tbz2がカーネルソースなのでこれを展開する。

ターミナル
tar xvf kernel_src.tbz2

kernelhardwareというディレクトリが作成される。

ターミナル
cd kernel/kernel-4.9

ソースコードのバージョンを確認

ターミナル
grep VERSION -m1 -A4 Makefile

結果は次の通り。

VERSION = 4
PATCHLEVEL = 9
SUBLEVEL = 140
EXTRAVERSION =
NAME = Roaring Lionus

現在のconfigファイルをコピーする。

ターミナル
zcat /proc/config.gz  > .config

コンパイルする。

ターミナル
make oldconfig
make prepare
make modules_prepare
make -j4 Image
make -j4 modules

インストールする。

ターミナル
sudo make modules_install
sudo cp -p /boot/Image /boot/Image.org
sudo cp arch/arm64/boot/Image /boot/Image

あとは再起動。

おまけ

make menuconfigをする人はcursesライブラリが必要。

ターミナル
apt install -y libncurses5-dev

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
10