パッチのdownload先
https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/
カーネルソースのdownload先
https://github.com/raspberrypi/linux
一番参考になったサイトは
64bit 版 Raspberry Pi OS のカーネルモジュールのビルド環境設定
1.gcc のビルドという部分は実はクロスコンパイル環境の構築するための作業になっている。
なのでこれをintel-CPUのPC上で行えばクロスコンパイル環境が出来る。
ただしrpi-sourceは使用しなかった。
このソース取得部分はたかじん氏のサイトの方法を真似させていただきましたm(_ _)m
このサイトの説明で大変に重要な事は最後の2行です(笑)
$ KERNEL=kernel8 make ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu-
※ ビルドコマンドが make の場合
とにかく例外なくこの呪文を使えと
たとえばKERNEL=kernel8 make menuconfig ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu-
使用したソース等
2021-05-07-raspios-buster-arm64-lite.img
linux-9299025206cb3f9b1146aa2c3c1de5df8fc92e9c
(linux-rpi-5.16.y.zip)
patch-5.16-rc3-rt7.patch.xz
binutils-2.37.tar.xz
gcc-8.4.0.tar.xz
ここまで来ればもう根性しかない(笑)という事で
パッチを当てたソースをコンパイルじゅうたん爆撃をした結果として
root@raspberrypi:~# uname -a
Linux raspberrypi 5.16.0-rc3-rt7-v8 #1 SMP PREEMPT Sat Dec 4 19:35:24 JST 2021 aarch64 GNU/Linux
「rt7」です。憧れ?のリアルタイムカーネルです。
root@raspberrypi:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndallodigione [snd_allo_digione], device 0: Allo DigiOne HiFi wm8804-spdif-0 [Allo DigiOne HiFi wm8804-spdif-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
問題なくサウンドカードを認識しています。
音出し成功です。
肝心の音は疲れすぎで後日コメントします(笑)
とりあえずddコマンドでバックアップを取り
それを書き戻して動作が確認できたので一安心です。
ところが...
追記12/05 えふさんのコメントからプリエンプションのミスが発覚しました!
本来Fully Preemptible Kernel (Real-Time)を選択すべき部分でした。
再度configしてコンパイルをやり直してSDカードに反映しました。
コンパイル終了後に残っている.configをエディターで開いて再度確認しました。
CONFIG_HAVE_PREEMPT_LAZY=y
CONFIG_PREEMPT_LAZY=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_RT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
大丈夫な様です^^;
5.16.0-rc3-rt7-v8 raspberrypi rt-kernel
8 Comments [+]
Comments