秋の夜長にはRaspberry Pi5 64bit カーネル・セフル・ビルド
何年かぶりにkernel build をしてみました。
いつから対応したのか把握しておりませんでしたが、64bit版のgccなどが用意されていました。これでセルフビルドが手軽にできるようになりました。
Pi4とPi5が同じカーネルで起動するのか、ちょっと調べてみました。
各ラズパイが使用するカーネルは以下のようになっています。
ラズパイの種類 | CPUコア | 使用するkernel img |
初代Raspberry Pi B | ARM11 | kernel |
初代Raspberry Pi A | ARM11 | kernel |
Raspberry Pi B+ | ARM11 | kernel |
Raspberry Pi A+ | ARM11 | kernel |
Raspberry Pi ZERO | ARM11 | kernel |
Raspberry Pi ZERO W | ARM11 | kernel |
Raspberry Pi 2 B | Cortex-A7 | kernel7 |
Raspberry Pi 2 B v1.2 | Cortex-A53 | kernel7 / kernel8 |
Raspberry Pi 3 B | Cortex-A53 | kernel7 / kernel8 |
Raspberry Pi 3 B+ | Cortex-A53 | kernel7 / kernel8 |
Raspberry Pi 3 A+ | Cortex-A53 | kernel7 / kernel8 |
Raspberry Pi ZERO 2 W | Cortex-A53 | kernel7 / kernel8 |
Raspberry Pi 4 B | Cortex-A72 | kernel7l / kernel8 |
Raspberry Pi 400 | Cortex-A72 | kernel7l / kernel8 |
Raspberry Pi 5 | Cortex-A76 | kernel_2712 / kernel8 |
赤いのが64bit版です。 Pi5はデフォルトでkernel_2712、それがないときはkernel8が走るようなことが書いてありました。
ラズパイ公式のRaspberryPi OS も64bit版が用意されています。
Raspberry Pi OS Lite(64bit) を使っていきましょう。
ではさっそく
以下、ピンク文字がコマンド入力です。
SSHを有効にしてリモート接続します。ユーザー名とパスワード、WifiなどはRaspberryPi imagerで設定しておきます。
USER=pi
PASS=raspberry
■ カーネルソースのダウンロード(安定板)
安定板のURLを探します。 公式のGithubへ行って、
https://github.com/raspberrypi/linux
ブランチの横あたりの「Tags」をクリック。
今回はRaspberryPi OS Liteと同じ日付の「Stable_20240529」を選択しました。
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
■ カーネルソースのダウンロード(最新版)
sudo apt update
sudo apt install git
git clone --depth=1 https://github.com/raspberrypi/linux
公式の方法はgitで最新版のソースを持ってきますが、安定して動作するソースかどうかはタイミングによります。
rpi-sourceが動作すれば、実行中のソースを取得できるのですが・・・(下の方に追記しました)
■ ビルドツールのインストール
sudo apt install bc bison flex libssl-dev make
これで準備が整いました。公式の64bit版コンパイラが用意されたので32bitのときと何も変わらずお手軽になりました。
■ Pi4 64bitの場合
cd linux
KERNEL=kernel8
make bcm2711_defconfig
make -j6 Image.gz modules dtbs
50~60分くらい待つと完成。
nohup make -j6 Image.gz modules dtbs 2>&1 | tee make.log &
としてssh接続を切ってもよいでしょう。
■ Pi5 64bitの場合
cd linux
KERNEL=kernel_2712
make bcm2712_defconfig
make -j6 Image.gz modules dtbs
30~40分くらい待つと完成。さすがにPi5は速いです。
nohup make -j6 Image.gz modules dtbs 2>&1 | tee make.log &
としてsshの接続切ってもよいでしょう。
■ kernelとmoduleのインストール
kernelとkernel moduleをOSが起動するときに使う場所へコピー(インストール)します。
sudo make -j6 modules_install
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/
終わったら再起動してみます。
sudo reboot
::::::起動を待ちます::::::
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.6.51-v8-16k+ #1 SMP PREEMPT Thu Oct 6 21:15:19 JST 2024 aarch64 GNU/Linux
ビルドした64bit kernelが起動できたみたいです。
本日はここまで。
このあとSerberBerry32ドライバをコンパイルしていきます。
rpi-sourceを試してみましたが、ダメなようです。
sudo wget https://raw.githubusercontent.com/RPi-Distro/rpi-source/master/rpi-source -O /usr/local/bin/rpi-source
sudo chmod +x /usr/local/bin/rpi-source
sudo rpi-source --skip-gcc -d /home/pi/
*** SoC: BCM2712
*** Arch: 64-bit
*** Page Size: 4096
ERROR:
Can't find a source for this kernel
Help: https://github.com/RPi-Distro/rpi-source/blob/master/README.md
32bit版でもダメだったので現在のkernelには対応できていないようです。 もう少し古いkernelでは使えるかもしれません。
« 小型の新ヘッドホンアンプ基板(2) | トップページ | RaspberryPi 5 の公式OSは32bit版でも64bit? »
「Raspberry Pi」カテゴリの記事
- MotionEyeと余っているラズパイで監視カメラ(2024.11.21)
- 秋の夜長には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)
コメント
« 小型の新ヘッドホンアンプ基板(2) | トップページ | RaspberryPi 5 の公式OSは32bit版でも64bit? »
久々にSabreberry32の登場ですね。
ラズパイ5でも活躍できそうですね!
我が家ではラズパイ4→Sabreberry32→HPA-1000
で使用しています。
syncモードの音が好きで、Sabreberry32がメイン機です。
新しいZ-mpd でもsyncモードが使えるととても嬉しいです。
投稿: あみのん | 2024年10月 8日 (火) 18時16分
あみのんさん
ありがとうございます。 現在64bit版で試行錯誤していますが、Pi4では音がでるものの、Pi5ではドライバが正常に動作しておりません。
Pi5 32bit版ではどうなのか。 Pi5 特有の問題なのか。 など調査が必要です。
syncモードのキレ味はやみつきになりますよね。 完全にDPLLを止めるモードは、なかなかありません。 HPA-1000との相性も抜群ですね。
投稿: たかじん | 2024年10月 8日 (火) 21時03分