RaspberryPi 5 の公式OSは32bit版でも64bit?
Pi4、Pi5とでOS周りを調べているのですが、公式サイトのビルド情報にもPi5の32bitが書かれておらず、ちょっと疑問に思っていました。
という訳で、RaspberryPi OS Lite の32bit版をダウンロードしてSDカードに書き込んで実際に起動してみました。
Pi5に挿して起動。
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.6.31+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux
aarch64 というのが64bit kernelを使っている証拠になります。
では、同じSDカードをそのまま、Pi4に挿して起動してみましょう。
そんな馬鹿な・・・
/boot/firmware/config.txtに「arm_64bit=0」を追記してみました。
こんな感じで [all]の所に記載。
再起動してみると、見事に32bit kernelが起動しました。
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.6.31+rpt-rpi-v7l #1 SMP Raspbian 1:6.6.31-1+rpt1 (2024-05-29) armv7l GNU/Linux
では、このSDカードを Pi5に戻して起動してみましょう。
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.6.31+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux
やはり64bitです。
これではっきりしましたね。
32bit版のRaspberryPi OS LiteのSDカードのには4つのkernel.imgが入っています。
kernel8.img :Pi2~5、Zero2(Cortex-A53、A72、A76)の 64bit kernel
kernel.img :初代Piと初代Zero(ARM11)用 32bit kernel
kernel7.img :Pi2、Pi3、Zero2 (Cortex-A7、A53)用 32bit kernel
kernel7l.img :Pi4(Cortex-A72)用 32bit kernel
です。
ついでなので、Pi3と同じCPUの Pi Zero2 にもこのSDカードを挿して起動してみましょう。
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.6.31+rpt-rpi-v7 #1 SMP Raspbian 1:6.6.31-1+rpt1 (2024-05-29) armv7l GNU/Linux
32bitですね。
/boot/firmware/config.txtに「arm_64bit=0」をコメントアウトしてみました。
arm_64bit=1 で 64bit指定
arm_64bit=0 で 32bit指定
何も指定していないと、Pi4では64bitが起動していましたから、Pi Zero2(Pi3)ではどうかな?
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.6.31+rpt-rpi-v7 #1 SMP Raspbian 1:6.6.31-1+rpt1 (2024-05-29) armv7l GNU/Linux
32bitがデフォルトなようです。
arm_64bit=1 で 64bit指定すると
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.6.31+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux
ちゃんと64bitになりました。
初代 Pi Zero(初代Pi)は32bitのarm11なので当然ながら32bitです。
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.6.31+rpt-rpi-v6 #1 Raspbian 1:6.6.31-1+rpt1 (2024-05-29) armv6l GNU/Linux
まとめると、32bit版のRaspberryPi OS Lite は
Pi5:常に64bit
Pi4:デフォルトは64bit(arm_64bit=0 で 32bitも起動できる)
Pi Zero2(Pi3):デフォルトは32bit (arm_64bit=1 で 64bitも起動できる)
Pi、Pi Zero(ARM11):常に32bit (arm_64bit=1 指定すると不起動)
Pi2は片付けてしまったので未調査です。あしからず。 勝手な予想ではPi3と同じ挙動になるような気がします。
« 秋の夜長にはRaspberry Pi5 64bit カーネル・セフル・ビルド | トップページ | 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル »
「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)
コメント
« 秋の夜長にはRaspberry Pi5 64bit カーネル・セフル・ビルド | トップページ | 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル »
たかじんさん、浅草以来ご無沙汰してます。Open Audio Labの鈴木です。
Pi5のサポートはBookwormからと思うのですが、32bit版 Raspberry Pi OSでもPi4ではカーネルがaarch64になるのはBullseyeのKernel 6.1以降です。32bit版OSでは、カーネルは64bitでもライブラリ等は32bitが提供されているので、64bitカーネル上でアプリは32bit空間で動くようです。Pi5/Pi4にMPDなどをインストールする場合は64bit版OSを使った方が良いようです。MPDのインストール手順の「3.2 kaliko’s repositoriesから最新のMPDをインストールする方法」に備忘録としてメモを書いておきました。
参照先: www.openaudiolab.com/install-mpd/jp/
メモ:uname -aではなく、getconf LONG_BITで32bit/64bitを判断する理由。uname -a でarmv7lと表示されたら32bitカーネル、aarch64と表示されたら64bitカーネルです。Raspberry Pi OS Lite (32-bit) を Raspberry Pi 3B+で起動するとuname -mはarmv7lと表示します。しかし同じmicroSDカードでRaspberry Pi 4Bで起動するとuname -m はaarch64になります。Pi 4では config.txtに arm_64bit=0 という行を追加して明示的に64bitはOFFと指定して起動しないかぎりは64bitカーネルになります。BullseyeのKernel 6.1でこの変更が行われました。
64bitカーネルでもRaspberry Pi OS Lite (32-bit)にはarm64版 MPD Backportはインストールできません。Raspberry Pi OS Lite (32-bit) Bookwormには、armhf版 MPD Backportをインストールしてください。またarm_64bit=0で32bitカーネルとして起動した場合はCMA領域とvmallocヒープ領域などが競合して支障が出る場合があります。Raspberry Pi 4BではRaspberry Pi OS Lite (64-bit)で起動し、arm64版 MPD Backportをインストールするのが無難です。
投稿: すずき | 2024年10月11日 (金) 10時11分
鈴木さん
お久しぶりです。 鈴木さんのwebサイトはmpd設定のときにhitして参考にさせて頂きました。
aptでinstallできるMPDでも音はでるのですが、やはり64bit版が望ましいのですね。
キタムラデザインさんのMUTEでinstallするのが手っ取り早いのかもしれませんね。
さすがお詳しいですね。私もまだまだ勉強不足です。
CPUに応じて、自動でkernelが選択されているところと、ラズパイ公式で32bitOS、64bitOSが提供されているところ、そして、32bit版でも64bit kernelが起動しているところとか・・・
OSの64bit移行時期ということもあってややこしくなっているように感じました。
getconf LONG_BIT コマンドは知りませんでした。 32/64と明確に答えてくれるんですね。
投稿: たかじん | 2024年10月12日 (土) 08時21分
たかじんさん、
> aptでinstallできるMPDでも音はでるのですが、やはり64bit版が望ましいのですね。
すみません。部分的に引用したので誤解を与えてしまったかも知れません。
懸念があるのは、Pi4/Pi5で、32bit版 Raspberry Pi OS を、arm_64bit=0と設定して32bitカーネルで起動した場合です。これは、やらない方が良いでしょう。
「arm64版 MPD Backportをインストールするのが無難です。」というのは、kaliko’s repositoriesからMPDをインストールする場合です。
普通に apt install で MPDをインストールすること自体は、特に懸念はありません。ただPi4/Pi5に関しては特別な理由がない限りは64bit版 Raspberry Pi OSを使う方が無難と思います。
ご指摘のように移行期なのでややこしいと思います。キタムラデザインさんのMUTEは、このへんのややこしさを吸収してくれますね。
Pi5対応に関しては2024-07-04版で良くなっていると思いますので、時間のある時に再検証して「MPDのインストール」をもう少しシンプルに書き直したいと思います。
投稿: すずき | 2024年10月12日 (土) 11時36分
すずきさん
> 懸念があるのは、Pi4/Pi5で、32bit版 Raspberry Pi OS を、arm_64bit=0と設定して
> 32bitカーネルで起動した場合です。これは、やらない方が良いでしょう。
なるほど。 カーネルは64bit、ライブラリが32bitになっている可能性がありますしね。
> kaliko’s repositoriesからMPDをインストール
こちらは、試したことありませんでした。 debパッケージで提供されているんですね。 MPDを自分でコンパイルするより手軽そうです。
投稿: たかじん | 2024年10月14日 (月) 08時54分
https://kaliko.me/posts/2024/04/mpd-02315-backports/
ここか・・・ MPD 0.23.15
投稿: たかじん | 2024年10月14日 (月) 08時57分