A:
当社としては、API-TOOL(LNX)で動作確認済OSのカーネルヘッダーの利用をお奨めします。
しかしながら、Tinker Board用Debian OSのカーネルヘッダーは一般公開されていません。
このため、適切な環境でカーネルビルドを行い、カーネルヘッダーを作成する必要があります。
対象 |
環境 |
シングルボードコンピュータ(SBC) |
Tinker Board 2S |
OS |
Debian 11 V3.0.11 (Kernel 5.10.160 (aarch64)) |
カーネルソース (GitHubより) |
rockchip-linux-kernel-linux5.10-rk3399-debian11.zip |
Debian OSのバージョンによって、手順やコマンドが異なる可能性があります。
このため、上記の環境でカーネルヘッダーを作成する手順例を以下に示します。
また、下記手順例は、インターネット経由で各ファイルのダウンロードします。
下記手順に沿って操作をする前に、対象のTinker Board 2SのDebian OSでインターネットに接続できる環境を整えてください。
ソフトウェア開発プラットフォームGitHubに、Tinker Board用Debian
OSのカーネルソースが格納されています。
GitHub上から、"TinkerBoard-Linux/rockchip-linux-kernel"のカーネルソースを、ダウンロードします。
1.Webブラウザで、GitHub上の"TinkerBoard-Linux/rockchip-linux-kernel"を参照します。
[GitHub上のTinkerBoard-Linux/rockchip-linux-kernel]
https://github.com/TinkerBoard-Linux/rockchip-linux-kernel
2."TinkerBoard-Linux/rockchip-linux-kernel"画面から、[Code]を選択するとプルダウンメニューが表示されます。
プルダウンメニューから、"Download ZIP"を選択すると、カーネルスースをダウンロードできます。
Debian 11 Ver.3.0.11の場合、ダウンロードファイル名は"rockchip-linux-kernel-linux5.10-rk3399-debian11.zip"です。
GitHubの改定により、表示画面がスクリーンショットと異なることがあります。
あらかじめ、ご了承ください。
1.ダウンロードしたカーネルソースをカレントディレクトリへコピーするために、以下のコマンドを実行します。
すでに、カーネルソースをビルドするディレクトリへ、カーネルソースをダウンロード済である場合は、このコマンド実行は必要ありません。
次のステップへ進んでください。
"xxx/"の部分は、カーネルソースをダウンロードしたディレクトリを指定します。
# cp xxx/rockchip-linux-kernel-linux5.10-rk3399-debian11.zip ./
2.カーネルソースを展開するために、以下のコマンドを実行します。
# unzip rockchip-linux-kernel-linux5.10-rk3399-debian11.zip
3.カーネルソースを展開したディレクトリへ移動するために、以下のコマンドを実行します。
# cd rockchip-linux-kernel-linux5.10-rk3399-debian11
# zcat /proc/config.gz > .config
(参考1)動作中のDebianのバージョン確認するには、以下のコマンドを実行します。
# cat /etc/issue
(参考2)動作中のDebianのカーネルバージョン確認するには、以下のコマンドを実行します。
# uname --all
既知の不具合を是正するために、当社はカーネルビルドする前に、パッケージリスト更新の実施をお勧めします。
すでに、パッケージリストが適切な状態になっている場合は、このコマンド実行は必要ありません。
次のステップへ進んでください。
パッケージリストを更新するには、Debian OSの管理者(root)権限が必要です。
root権限がない場合、root権限で再ログインしてください。
パッケージリストを更新する際は、以下のコマンドを実行します。
# apt update
カーネルビルドに必要なツールをインストールするために、以下のコマンドを実行します。
すでに、各ツールがインストールされている場合は、このコマンド実行は必要ありません。
次のステップへ進んでください。
各ツールのインストールには、Debian OSの管理者(root)権限が必要です。
root権限がない場合、root権限で再ログインしてください。
# apt install git-core gitk git-gui gcc-arm-linux-gnueabihf
device-tree-compiler gcc-aarch64-linux-gnu mtools parted
# apt install git fakeroot build-essential ncurses-dev xz-utils libssl-dev
bc flex libelf-dev bison zstd rsync
カーネルとカーネルモジュールのビルドには、Debian OSの管理者(root)権限が必要です。
root権限がない場合、root権限で再ログインしてください。
1. カレントディレクトリであることを確認するには、以下のコマンドを実行します。
カレントディレクトリが、カーネルソースを展開したディレクトリでない場合は、適切なディレクトリへ移動してください。
# pwd
2. ダウンロードしたカーネルソースを、カーネルの設定ファイル(.config)に基づいてビルドするには、以下のコマンドを実行します。
カーネルビルドに時間を要しますがビルドが完了するまで、プロセスを止めないでください。
# make deb-pkg -j8
(参考1)カーネルビルド中に、ビルドに必要な項目の選択が促されます。
全て"n"を入力することをお勧めします。
(参考2)コンパイル中に下記エラーが発生することがあります。
dpkg-source: error: cannot represent change
to logo.bmp: binary file contents changed
dpkg-source: error: cannot represent change to logo_kernel.bmp: binary
file contents changed
このエラーを回避するには、以下のコマンドを実行し、再度ビルドしてください。
# rm logo.bmp logo_kernel.bmp
1. カーネルビルドが正常に完了すると、親ディレクトリに、カーネルヘッダー(linux-headers-5.10.160_5.10.160-1_arm64.deb)が生成されています。
カレントディレクトリから親ディレクトリに移動するには、以下のコマンドを実行します。
# cd ..
2. カーネルヘッダーが存在することを確認するには、以下のコマンドを実行します。
# ls linux-headers-5.10.160_5.10.160-1_arm64.deb
⑧カーネルヘッダーをインストール
# sudo dpkg -i ../linux-headers-5.10.160_5.10.160-1_arm64.deb
# sudo apt-get install linux-headers-$(uname -r)
1. depファイルを展開します。
2. 展開されたファイルのlib/moduleディレクトリ内にカーネルバージョンのフォルダがあります。