秋の夜長にはRaspberryPi5 RT-linux セルフビルド
さてさて、ここ1週間の作業はPi5用RT-linux ビルドのための準備体操ということはバレバレだと思います。
RT-linuxというのはリアルタム版のLinuxのことで、一定時間内にイベントに応答できるという特徴があります。
つい最近メインカーネルに統合されたというニュースが出ていました。これはチャレンジするしかないっすね。
こちらの記事です。
「リアルタイムLinux」がメインラインカーネルに完全統合--20年に及ぶ開発を振り返る
「2005年に、リアルタイムのバグレポートを受け取ったので、パッチを送信して『これが修正だ。適用できるか』と伝えたところ、その相手は『自分が何をしているのか分からない』という調子だった。『ちょっと待って。あなたはカーネル開発者ではないのか』と返信すると、彼は『私はギタリストだ』と答えた」
興味のある方は、ぜひ読んでみてください。
では早速Pi5に入れてみましょう。
sshでラズパイにリモート接続できる方には、そんなに難しい作業ではありません。
ちなみに、メインストリームとしてLinux 6.12でPREEMPT_RTがマージされます。 ラズパイ公式では6.6系がメインになっているため、従来通りRTパッチを当てる作業でPREEMPT_RTにします。
ベースは公式のRaspberryPi OS Lite(64bit)です。
■ ビルド環境の準備
sudo apt update
sudo apt install bc bison flex libssl-dev make
■ カーネルソースのダウンロード(安定板)
安定板のURLを探します。 公式のGithubへ行って、
https://github.com/raspberrypi/linux
ブランチの横あたりの「Tags」をクリック。
今回はRaspberryPi OS Liteと同じ日付の「Stable_20240529」を選択しました。バージョンは6.6.31になります。
tar.gz を右クリックするとリンクのアドレスをコピーできます。
https://github.com/raspberrypi/linux/archive/refs/tags/stable_20240529.tar.gz
でした。これをラズパイでダウンロードします。(ブラウザによって右が見切れてしまうようです。ご注意ください。stable_20240529.tar.gz です)
wget https://github.com/raspberrypi/linux/archive/refs/tags/stable_20240529.tar.gz
次に解凍します。
tar -zxvf stable_20240529.tar.gz
便宜上 /home/pi/linux にソースを置きたいのでシンボリックリンクを作成。
ln -s linux-stable_20240529 linux
■ RTパッチのダウンロード
以下に行って同じバージョンのRTパッチを探します。6.6.31はolderに行って探します。
https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/6.6/
patch-6.6.31-rt31.patch.gz
がありました。 バージョンも一致しているようです。 完全に一致しないときは、古い側の近いバージョンのパッチを選択すると良いでしょう。
右クリックしてURLをコピーしてラズパイでダウンロードします。
cd linux
sudo su
wget https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/6.6/older/patch-6.6.31-rt31.patch.gz
patch-6.6.31-rt31.patch.gz 100%[===============================================>] 105.29K 87.4KB/s in 1.2s
2024-10-12 20:29:54 (87.4 KB/s) - ‘patch-6.6.31-rt31.patch.gz’ saved [107820/107820]
ダウウンロードできました。
解凍してパッチを当てます。
gunzip patch-6.6.31-rt31.patch.gz
cat patch-6.6.31-rt31.patch | patch -p1
■ .config設定
今、起動している.configを持ってきます。
modprobe configs
zcat /proc/config.gz > .config
make oldconfig
相違点のみconfigをどうするか聞いてきます。基本的にはそのままエンターで良いと思います。
Preemption Model
1. No Forced Preemption (Server) (PREEMPT_NONE)
2. Voluntary Kernel Preemption (Desktop) (PREEMPT_VOLUNTARY)
> 3. Preemptible Kernel (Low-Latency Desktop) (PREEMPT)
4. Fully Preemptible Kernel (Real-Time) (PREEMPT_RT) (NEW)
choice[1-4?]:
せっかくですので 4の PREEMPT_RTを選択しておきましょう。 ビルド後、何か不具合があったらLow-Latencyにします。
oldconfigが終了したら、menuconfigで確認してみましょう。
make menuconfig
> General setups > Preemption Model で見られます(設定できます)
ついでなので、周期も変更しちゃいましょう。
> kernel Future > Timer frequency 1000Hz !
Pi5の能力を見せてもらいましょう。(タスク切替が頻繁に行われて無駄なCPU負荷が増えるので、本当は最適なところにするのが正解な気がします)
では、ラズパイ公式の方法でビルドしていきます。
■ Pi4 64bitの場合
cd linux <== すでに/home/pi/linux にいます
KERNEL=kernel8
make bcm2711_defconfig <== さきほどoldconfigしたので省略
make -j6 Image.gz modules dtbs
70~90分くらい待つと完成。
nohup make -j6 Image.gz modules dtbs 2>&1 | tee make.log &
としてssh接続を切ってもよいでしょう。
■ Pi5 64bitの場合
cd linux <== すでに/home/pi/linux にいます
KERNEL=kernel_2712
make bcm2712_defconfig <== さきほどoldconfigしたので省略
make -j6 Image.gz modules dtbs
40~60分くらい待つと完成。
nohup make -j6 Image.gz modules dtbs 2>&1 | tee make.log &
としてssh接続を切ってもよいでしょう。
■ kernelとmoduleのインストール
kernelとkernel moduleをOSが起動するときに使う場所へコピー(インストール)します。
(上でsudo suしているときは先頭のsudoは要りません)
sudo make -j6 modules_install
一度SSH接続を切っているときは
Pi4なら KERNEL=kernel8
Pi5なら KERNEL=kernel_2712
してから続きます。
sudo cp /boot/firmware/$KERNEL.img /boot/firmware/$KERNEL-backup.img
sudo cp arch/arm64/boot/Image.gz /boot/firmware/$KERNEL.img
sudo cp arch/arm64/boot/dts/broadcom/*.dtb /boot/firmware/
sudo cp arch/arm64/boot/dts/overlays/*.dtb* /boot/firmware/overlays/
sudo cp arch/arm64/boot/dts/overlays/README /boot/firmware/overlays/
終わったら再起動してみます。
reboot
::::::起動を待ちます::::::
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.6.31-rt31-v8-16k #2 SMP PREEMPT_RT Sat Oct 12 21:23:55 JST 2024 aarch64 GNU/Linux
成功したようです。
その後ちょこちょこ使っていますが、特に問題ないような気がします。
皆さんも秋の夜長をLinux kernel ビルドして楽しんでみてはいかがでしょうか。
« 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル | トップページ | 絶縁型 正負電源基板 »
「Raspberry Pi」カテゴリの記事
- 秋の夜長にはRaspberryPi5 RT-linux セルフビルド(2024.10.13)
- 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル(2024.10.10)
- RaspberryPi 5 の公式OSは32bit版でも64bit?(2024.10.09)
- 秋の夜長にはRaspberry Pi5 64bit カーネル・セフル・ビルド (2024.10.07)
- OSC Tokyoの準備で「IGZO 7インチ」1920x1200 LCDを動かそうとしたら・・・(2024.03.08)
コメント
« 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル | トップページ | 絶縁型 正負電源基板 »
pi4(6.6.31-rt31)でもSabreberry32を使用する事ができました。
pi4のメモリが2Gだからか、熱でcpuの速度が落ちたのか、理由は分かりませんが
ビルドに4時間かかりました。
正に夜長でした (^^;
今はsyncモードで音楽を楽しんでいます。
また、2CタイプOLEDを接続してのサンプルレート表示(鈴木さんのmpd_oled_ctrl_lite)
と、shairport-syncを利用したAir Playも動作しています。
今夜は音楽鑑賞で夜長になりそうです。
投稿: あみのん | 2024年10月14日 (月) 15時24分
あみのんさん
さすが仕事が速い! build時間は、RTパッチを当てたバージョンはちょっと長めにかかっているかもしれません。
Pi4はCPUを放熱してあげないとPi3よりも速度が落ちるというのがベンチマークででていて話題になりました。
また、SDカードの速度も影響されます。 4時間というと・・メモリ容量も影響ある可能性がありますね。スワップしているのかも。
ちなみに
Pi4はeeprom更新により発熱が下がったそうです。 初期のpi4をお持ちでしたらEEPROMアップデートしてみるのも良いかもしれません。
sudo rpi-eeprom-update -a
sudo reboot
です。
vcgencmd bootloader_version
でEEPROM バージョンが見れます。
投稿: たかじん | 2024年10月14日 (月) 15時45分
moode audioも、RT-kernelが復活すればいいのですが。懐かしい。
投稿: AYOR | 2024年10月15日 (火) 02時35分
AYOR さん
Moode AudioはRaspberryPi OSがベースでしたので、この方法でOSをアップデートしてしまうという手もありますね。
お手軽とは言えないですが、満足度は得られると思います。
Pi5はビルドは速いですが、発熱が結構あるのでオーディオ機器として運用するときの排熱をどうするかは、悩み所です。
投稿: たかじん | 2024年10月15日 (火) 20時03分
たかじんさん
記事の内容とは関係なくて申し訳ないのですが、タイトルの「秋の夜長」に引っ掛けて・・・。😰
紫金山・ATLAS彗星を10月16日に撮影したとですよ。彗星の撮影は初めてでしたが、なんとか撮れました。
投稿: 三毛にゃんジェロ | 2024年10月19日 (土) 15時12分
三毛にゃんジェロさん
お写真、拝見させて頂きました。 素晴らしいですね。
札幌市内でこんなに彗星がキレイに撮れるんですね。
肉眼でも見えるくらいの明るさだったのでしょうか?
その昔、ハレー彗星が来ていたとき、私の眼では全く見えませんでした。
投稿: たかじん | 2024年10月20日 (日) 08時06分
たかじんさん
Pi4のEEPROMアップデートの情報、ありがとうございます。
バージョンが2023/01/11だったのでアップデートしてみました。
私自身、オーディオ用にPi4を二つ所有しておりまして、枕元用とリビング用とに使い分けています。
枕元で使っているPi4はファンレスのアルミアーマーケースにnorth fox digiを乗せてあり、
バラック状態でcpuは48度前後で安定して動いています。
自分的に枕元で使うにはファンレスが最重要なので、排熱及び電源の関係からPi5の活用は悩みますね。
Pi4に比べて劇的に音が良いとなればまた別ですが(^^;
たかじんさんは以前にオーディオ用だとPi3B+が最適と書かれていましたが、現時点ではいかがお考えでしょうか?
投稿: あみのん | 2024年10月20日 (日) 12時34分
たかじんさん
肉眼では彗星の頭しか見られません。
8x30の双眼鏡ではちゃんと尾まで見えます。
横浜でも見られるんじゃないでしょうか。
今日あたりは日没から40分以降、西からちょっと南寄り、高さ30度辺りに見えます。確か4等星ぐらいの明るさのはずです。
投稿: 三毛にゃんジェロ | 2024年10月20日 (日) 13時06分
あみのんさん
悩ましいですね。 Pi4も発熱が多いので、十分冷やすヒートシンクか放熱できる構造のケースが必須ですよね。
Pi5は更に発熱が多いように感じます。 FAN付きのケースでFAN回転数が低めでもケース全体が結構熱く、USB端子やEthernet端子もカイロなみに暖かいです。
一方、Pi3はそこまで発熱がなくMPDの実行にも十分な能力を持っています。
とは言えVolumioやMoodeAudio も年々動作が重くなってきているので、Pi4やPi5じゃないと快適に使えないってことが起こりえます。
私が持っているPi4は初期のもの4枚あるのですが、どれも有線LANが途切れ気味でNASとの相性があまり良くありません。 USBメモリは平気です。
三毛にゃんジェロさん
おお。 本日、曇りでだめでした。 明日以降も微妙な天気・・・
4等星は、私の眼では見えないかもしれません。 オペラグラス級の双眼鏡で挑戦するくらいかな。。
投稿: たかじん | 2024年10月21日 (月) 21時29分
たかじんさん
こちらも、昨日・今日と西の空には雲がかかっていたので駄目でした。どんどん暗くなるので、大口径の双眼鏡を使わないともう無理かも。😿
ちなみに、天体観測が趣味の友人は先日の低緯度オーロラを写真に収めてました。
投稿: 三毛にゃんジェロ | 2024年10月21日 (月) 21時39分
三毛にゃんジェロさん
こちらもここ数日の夜は晴れないようです。 オーロラですか。
昨年、スターリンクトレイン(衛星の列)が見えるらしいって話で、見ようと思ったのですが、4等星くらいで全然見れませんでした。
スカっと晴れていなく、極うすい雲のようなものがあると、周囲の街が明るいので空が白っぽくなっているんですよね。 真上以外は。
ISSは見えるのでトレインも真上を通るものなら見えても良さそうなんですけどね。。。 大きさが違うのかな??
投稿: たかじん | 2024年10月23日 (水) 22時28分