Select Your Language

免責事項

  • 本サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。

    本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。一般のオーディオファンの方のためのものではありません。
    また、頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。

    電子工作では、火傷、感電、火災などの可能性があります。十分に注意をして作業して下さい。

    営利目的のご使用は認めておりません。 記事の転載や、基板・キットの商用利用の方は、ご連絡ください。学生やサークルの学習目的でまとめてご購入する場合は特別価格でご提供させていただきます。
無料ブログはココログ

スポンサー

« 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル | トップページ | 絶縁型 正負電源基板 »

2024年10月13日 (日)

秋の夜長にはRaspberryPi5 RT-linux セルフビルド

さてさて、ここ1週間の作業はPi5用RT-linux ビルドのための準備体操ということはバレバレだと思います。

RT-linuxというのはリアルタム版のLinuxのことで、一定時間内にイベントに応答できるという特徴があります。

Rt_os

つい最近メインカーネルに統合されたというニュースが出ていました。これはチャレンジするしかないっすね。

 

こちらの記事です。

「リアルタイム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

Github_tag_stable_00

ブランチの横あたりの「Tags」をクリック。

今回はRaspberryPi OS Liteと同じ日付の「Stable_20240529」を選択しました。バージョンは6.6.31になります。

Github_tag_stable_01

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_66

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

Rt_preempt

 > General setups  > Preemption Model で見られます(設定できます)

 

Rt_hz

ついでなので、周期も変更しちゃいましょう。

> 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」カテゴリの記事

コメント

pi4(6.6.31-rt31)でもSabreberry32を使用する事ができました。
pi4のメモリが2Gだからか、熱でcpuの速度が落ちたのか、理由は分かりませんが
ビルドに4時間かかりました。
正に夜長でした (^^;

今はsyncモードで音楽を楽しんでいます。
また、2CタイプOLEDを接続してのサンプルレート表示(鈴木さんのmpd_oled_ctrl_lite)
と、shairport-syncを利用したAir Playも動作しています。
今夜は音楽鑑賞で夜長になりそうです。

あみのんさん

さすが仕事が速い!  build時間は、RTパッチを当てたバージョンはちょっと長めにかかっているかもしれません。 

Pi4はCPUを放熱してあげないとPi3よりも速度が落ちるというのがベンチマークででていて話題になりました。
また、SDカードの速度も影響されます。 4時間というと・・メモリ容量も影響ある可能性がありますね。スワップしているのかも。

ちなみに
Pi4はeeprom更新により発熱が下がったそうです。 初期のpi4をお持ちでしたらEEPROMアップデートしてみるのも良いかもしれません。

sudo rpi-eeprom-update -a
sudo reboot

です。

vcgencmd bootloader_version

でEEPROM バージョンが見れます。

 moode audioも、RT-kernelが復活すればいいのですが。懐かしい。

AYOR さん

Moode AudioはRaspberryPi OSがベースでしたので、この方法でOSをアップデートしてしまうという手もありますね。

お手軽とは言えないですが、満足度は得られると思います。

Pi5はビルドは速いですが、発熱が結構あるのでオーディオ機器として運用するときの排熱をどうするかは、悩み所です。

たかじんさん

記事の内容とは関係なくて申し訳ないのですが、タイトルの「秋の夜長」に引っ掛けて・・・。😰
紫金山・ATLAS彗星を10月16日に撮影したとですよ。彗星の撮影は初めてでしたが、なんとか撮れました。

三毛にゃんジェロさん

お写真、拝見させて頂きました。 素晴らしいですね。
札幌市内でこんなに彗星がキレイに撮れるんですね。

肉眼でも見えるくらいの明るさだったのでしょうか?

その昔、ハレー彗星が来ていたとき、私の眼では全く見えませんでした。

たかじんさん

Pi4のEEPROMアップデートの情報、ありがとうございます。
バージョンが2023/01/11だったのでアップデートしてみました。

私自身、オーディオ用にPi4を二つ所有しておりまして、枕元用とリビング用とに使い分けています。
枕元で使っているPi4はファンレスのアルミアーマーケースにnorth fox digiを乗せてあり、
バラック状態でcpuは48度前後で安定して動いています。

自分的に枕元で使うにはファンレスが最重要なので、排熱及び電源の関係からPi5の活用は悩みますね。
Pi4に比べて劇的に音が良いとなればまた別ですが(^^;

たかじんさんは以前にオーディオ用だとPi3B+が最適と書かれていましたが、現時点ではいかがお考えでしょうか?

たかじんさん

肉眼では彗星の頭しか見られません。
8x30の双眼鏡ではちゃんと尾まで見えます。

横浜でも見られるんじゃないでしょうか。
今日あたりは日没から40分以降、西からちょっと南寄り、高さ30度辺りに見えます。確か4等星ぐらいの明るさのはずです。

あみのんさん

悩ましいですね。 Pi4も発熱が多いので、十分冷やすヒートシンクか放熱できる構造のケースが必須ですよね。
Pi5は更に発熱が多いように感じます。 FAN付きのケースでFAN回転数が低めでもケース全体が結構熱く、USB端子やEthernet端子もカイロなみに暖かいです。

一方、Pi3はそこまで発熱がなくMPDの実行にも十分な能力を持っています。 

とは言えVolumioやMoodeAudio も年々動作が重くなってきているので、Pi4やPi5じゃないと快適に使えないってことが起こりえます。

私が持っているPi4は初期のもの4枚あるのですが、どれも有線LANが途切れ気味でNASとの相性があまり良くありません。 USBメモリは平気です。


三毛にゃんジェロさん

おお。 本日、曇りでだめでした。 明日以降も微妙な天気・・・  
4等星は、私の眼では見えないかもしれません。 オペラグラス級の双眼鏡で挑戦するくらいかな。。

たかじんさん

こちらも、昨日・今日と西の空には雲がかかっていたので駄目でした。どんどん暗くなるので、大口径の双眼鏡を使わないともう無理かも。😿

ちなみに、天体観測が趣味の友人は先日の低緯度オーロラを写真に収めてました。

三毛にゃんジェロさん

こちらもここ数日の夜は晴れないようです。 オーロラですか。

昨年、スターリンクトレイン(衛星の列)が見えるらしいって話で、見ようと思ったのですが、4等星くらいで全然見れませんでした。

スカっと晴れていなく、極うすい雲のようなものがあると、周囲の街が明るいので空が白っぽくなっているんですよね。 真上以外は。

ISSは見えるのでトレインも真上を通るものなら見えても良さそうなんですけどね。。。 大きさが違うのかな??

コメントを書く

(ウェブ上には掲載しません)

« 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル | トップページ | 絶縁型 正負電源基板 »

サイト内検索(new)

2024年11月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30