Jetson Nano JetPack 4.6.1 (L4T 32.7.1) のカーネルビルド


はじめに

JetsonHacksのbuildKernelAndModulesツールはJetPack4.6(L4T 32.6.1)までしか対応していないため、スクリプトを一部修正してJetPack4.6.1でカーネルビルドを行ってみました。

1. buildKernelAndModulesツールのダウンロード

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

2. スクリプトの修正

$ cd buildKernelAndModules/

scriptsディレクトリのgetKernelSources.shとjetson_variablesを修正します。

scripts/getKernelSources.sh
# Table of the URLs to Kernel Sources for Jetson Nano, Nano 2GB and TX1
# L4T Driver Package [BSP] Sources - Code 210
declare -A source_url_list_210=( 
  ["32.7.1"]="https://developer.nvidia.com/embedded/l4t/r32_release_v7.1/sources/t210/public_sources.tbz2"     ←追加
  ["32.6.1"]="https://developer.nvidia.com/embedded/l4t/r32_release_v6.1/sources/t210/public_sources.tbz2"
  ["32.5.2"]="https://developer.nvidia.com/embedded/l4t/r32_release_v5.2/sources/t210/public_sources.tbz2"
  ["32.5.1"]="https://developer.nvidia.com/embedded/l4t/r32_release_v5.1/r32_release_v5.1/sources/t210/public_sources.tbz2"
scripts/getKernelSources.sh
   "t210ref" ) 
     SOURCE_URL=${source_url_list_186[$JETSON_L4T]}
   ↓(修正)
     SOURCE_URL=${source_url_list_210[$JETSON_L4T]}
scripts/jetson_variables
    case $JETSON_L4T in
        "32.7.1") JETSON_JETPACK="4.6.1" ;;     ←追加
        "32.6.1") JETSON_JETPACK="4.6" ;;
        "32.5.1") JETSON_JETPACK="4.5.1" ;;
        "32.5.0" | "32.5") JETSON_JETPACK="4.5" ;;

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

$ cd buildKernelAndModules/
$ ./getKernelSources.sh

4. カーネルコンフィグの編集

editConfig.shコマンドを使用してCUIでカーネルコンフィグを編集します。

$ ./editConfig.sh

Framebuffer Driver (fbtft_driver) を有効化する場合

場所は
Linux Kernel Configuration
 └─> Device Drivers
  └─> Staging drivers
   └─> Support for small TFT LCD display modules

MIDIを有効化する場合

場所は
Linux Kernel Configuration
 └─> Device Drivers
  └─> Sound card support
   └─> Advanced Linux Sound Architecture
    └─> Generic sound devices
    └─> USB sound devices

5. カーネルビルド

$ ./makeKernel.sh 

掛かった時間

real	30m37.182s
user	76m53.952s
sys	7m37.456s

6. モジュールのビルド

$ ./makeModules.sh

掛かった時間

real	44m15.801s
user	113m15.636s
sys	12m10.092s

7. イメージのコピー

$ ./copyImage.sh

8. 再起動

$ sudo reboot

(参考)