Select Your Language

免責事項

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

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

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

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

スポンサー

無料ブログはココログ

« RaspberryPi kernelとDriverのクロスコンパイル方法 | トップページ | 2/21(金)2/22(土)OSC東京は駒澤大学にて »

2020年2月 5日 (水)

RaspberryPiのCPU比較 どれが64bitで動くの?

初代RaspberryPiが発売になったのは2013年の春ころです。

その年は話題にはあがるけど、日本では全然売っていない、買えないという状況が続きました。そんな中、夏頃にリビジョンが上がって、8pinの追加IO端子からI2S信号を出せるという嬉しい知らせが入りました。

2013年の年末に購入してVolumioを試したのがこの記事でした。

Pi1and4
  < 初代ラズパイ(+IrBerryDAC)とラズパイ4 >

そんな昔話はどうでもいいですね。

 

 

本日は、それぞれ動作するカーネルと64bitカーネルはどのラズパイで動かせるのかをまとめました。

ラズパイの標準OSであるRaspbianは、起動時に自動でCPUに適切なカーネルが選択される仕組みが入っていて、同じSDカードでPi1/0からPi4まで意識することなく使えるというユーザーに優しいディスクイメージが提供されています。

そんなわけでRaspbianの/boot フォルダの中には4つのカーネルイメージが入っています。kernel8.imgだけサイズが2倍以上大きいのは圧縮されていないからです。

Boot_folder

 

そして、各ラズパイが使用するカーネルは以下のようになっています。

ラズパイの種類 CPUコア 使用するkernel
初代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 4 B Cortex-A72 kernel7l / kernel8

この中の「kernel8」が64bitカーネルです。

Cortex-A53/A72はARMv8というアーキテクチャになっていて、32bitのAArch32と64bitのAArch64の2つの実行モードが搭載されています。

Cortex-A53以降のCPUを搭載しているラズパイは、/boot/config.txtに「arm_64bit=1」と記述をいれると64bitモードで起動させることができます。

 

ラズパイも種類が増えてきたので、少しややこしくなってきましたね。末尾に「A」「B」が付いているのは リビジョンやバージョンではなくModel 名称です。A=有線LANを省いたモデルで搭載RAMも少なめ。 B=フルスペックモデル。

 

ARM11系のラズパイがなくなれば、潔く64bitを標準にできるのでしょうけど、昔の基板もサポートし続けるのは某A社とは違うところです。

 

今からラズパイを購入するという方におススメは、、、

やはり最新版ということでPi 4になります。

 

ただ、発熱の多さや消費電流の多さなどからすべての用途で最適とは言えません。。。

夏場の暑さも考えると、気楽に使えるのはPi 3B+ですかね。Wi-Fiの受信感度もチップアンテナを使っていたPi 3よりも良いようですし。

 

 

ベンチマーク 32bit 対 64bit

いろいろなwebサイトで簡易的にベンチマークソフト(Unix Benchなど)を走らせて32bitモードと64bitモードとを比較していますが、現在のRaspbianは64bitのバイナリを作るgccが整備されていません。

つまり、gitして、makeして、実行しただけでは、

32bitカーネル上での32bitプログラム

      と

64bitカーネル上での32bitプログラム

の比較をしていることになります。

 

それも意味がないわけではありませんが、64bitのCPUを有効に使うにはプログラムも64bit化したものを使うのが適切な気がしています。intelのx86もそうですが、64bit CPUで32bitのバイナリ(プログラム)が全く問題なく動作するのってスゴイですよね。ARM社は、そればかりか32bit専用だった頃のCPUよりも高速に32bitプログラムが動くと言っています。いや~ 恐れ入ります。

 

でもでも、はやくAArch64のgcc、glibでてこないかな~

 

 

 

にほんブログ村 PC家電ブログ PCオーディオへ にほんブログ村

ブログランキングに参加中です。 めざせ1位! 

もしよろしければ「ぽちっと」お願いします。 

 

 

« RaspberryPi kernelとDriverのクロスコンパイル方法 | トップページ | 2/21(金)2/22(土)OSC東京は駒澤大学にて »

Raspberry Pi」カテゴリの記事

コメント

https://www.tal.org/tutorials/raspberry-pi3-build-64-bit-kernel
ここをみる限り、gccを自分でbuildすればaarch64なものは入るように思えます。ご参考まで。

ありがとうございます。実はこの記事を書いた直後から1週間ほど、あれこれチャレンジして撃沈していました。

1回目のgccのビルドまでは行きますが、そのあとのglibがコンパイルエラーでたり、2回目のgccがエラーで止まったりと。。。 cleanしたあと再度最初からトライすると、今度は1度目のgccでもエラーが出たり。

同様にやり方を書いているサイトがいくつかあって、それぞれの方法で試していたら1週間かかりました。

で、全滅です。Pi4でやったのがNGだった可能性もありますが、原因判らず。

懲りずにx86上でクロスコンパイルしてaarch64用gccビルドも挑戦したのですがそちらもエラーを回避できず、撃沈。

コメントを書く

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

« RaspberryPi kernelとDriverのクロスコンパイル方法 | トップページ | 2/21(金)2/22(土)OSC東京は駒澤大学にて »

サイト内検索

Sponsors link

2020年8月
            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 31