Raspberry Piモデルには、ユニーク(一意)のリビジョンコードがあります。Raspberry Piのリビジョンコードを知るにはコマンドで一発です。
Raspberry Pi 4Bはワールドワイド版と日本の技適取得版とではリビジョンが異なります。
もっと言うと、電源からの給電にあった初期不良がハード的に改善されているバージョンと言えます。ただ、フラッシュROMであるEEPROMのアップデートにより、発熱問題などは既に解決しています。旧版のハードではケーブルを選ぶという点は残ります。(※安い品が適合する)
cat /proc/cpuinfo
恐らく現在に手にできるRaspberry Pi 4Bは、殆どが既に日本の技適取得後のパッケージになっていますので、リビジョンは「c03112」となっていると思います。
リビジョンやOSの調べ方
冒頭のリビジョンの他にインストールされているOSのバージョンなんかも簡単です。
OSのバージョンを調べるコマンド
cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
こんな感じでBusterと分かります。
更にLinux自体のバージョンは
uname -a
Linux raspberrypi 4.19.50-v7l+ 〜
検索して絞り込む
冒頭のコマンド(cat /proc/cpuinfo)では、CPUが4コアあるので、ズラズラと4つのCPU情報が表示された後、最後の方に、Hardware(ハードウェア)、Revision(リビジョン)、Serial(シリアル)と出てきます。
2020年現行のRaspberry Pi 4Bであれば・・・。
Hardware:BCM2835
Revision:c03112
Serial:10000000XXXXXXX(※シリアルは一意です)
Model:Raspberry Pi 4 Model B Rev 1.2
それぞれ、HardwareはCPUのモデル、Revisionはリビジョン、つまりバージョン、そしてSerialは個体に振られた一意の番号です。シリアルナンバーということです。
最後にModel(モデル)とあり、ここにモデル名とバージョンが表示されます。
リビジョンだけを知りたいならgrep検索させましょう。
cat /proc/cpuinfo | grep Revision
こうすることで、Revisionの項目だけ抜き出して1行で表示可能です。
Revision : c03112
このようにコマンドの後に|(パイプ)を挟んでその後のコマンドを追加できます。
よくある使い方なので、覚えると楽です。
検索なら「〜|grep 文字列など」
そして、次にこのRevisionを調べると面白いので、別に覚えなくても知っておくと・・・少しは為になるかと思いますのでご紹介します。
Revisionは16進数
このリビジョンの数字も2進数や16進数という話になっています。リビジョンの値は16進数です。
例えば、2020年最新のリビジョンがRaspberry Pi 4B v1.2となり、「c03112」です。意味がある番号だとは察しが付くと思います。
では、これを2進数に直してみましょう!
110000000011000100010010
分かりにくい数字の羅列ですが、2進数なので0と1で表現されます。
以前にも2進数について触れました!
この並びはルールが決められていて並んでいます。公式ページに載っています。
uuuuuuuuFMMMCCCCPPPPTTTTTTTTRRRR
こういう並びとなっていて、それぞれが基板の情報を表し、それを並べているということです。
では、先程の数字と一緒に並べてみます。(都合上、縦に並べます)
桁数 | 意味 | 選択肢 16進数 | リビジョン 2進数 | 16進数 |
uuuuuuuu | 未使用 | ーー | ーー | ーー |
F | フラグ | 1:新しい 0:古い | 1 | 1 |
MMM | 搭載 メモリー | 0: 256MB 1: 512MB 2: 1GB 3: 2GB 4: 4GB | 100 | 4 |
CCCC | 製造元 | 0: Sony UK 1: Egoman 2: Embest 3: Sony Japan 4: Embest 5: Stadium | 0000 | 0 |
PPPP | プロセッサー CPUの種類 | 0: BCM2835 1: BCM2836 2: BCM2837 3: BCM2711 | 0011 | 3 |
TTTTTTTT | モデル タイプ | 0: A 1: B 2: A+ 3: B+ 4: 2B 5: Alpha (early prototype) 6: CM1 8: 3B 9: Zero a: CM3 c: Zero W d: 3B+ e: 3A+ f: Internal use only 10: CM3+ 11: 4B | 10001 | 11 |
RRRR | リビジョン | ver 1.0や1.2など | 0010 | 2 |
表のように16進数の選択肢を選んで、それを2進数に直した物が0と1の羅列と表せます。
これらを全桁で16進数に直すと先程の「c03112」となるわけです。決められた桁も合わせますから、最大桁に満たない場合は0で埋めます。(4は004など)
uuuuuuuu | F | MMM | CCCC | PPPP | TTTTTTTT | RRRR | |
16進数 | 未使用 | 1 | 004 | 0000 | 0003 | 00000011 | 0002 |
2進数 | 未使用 | 1 | 100 | 0000 | 0011 | 00010001 | 0010 |
リビジョン番号はv1.2でも2と入っているだけですね。
他のモデルのリビジョンは?
では、日本で買える主な歴代ラズパイモデルのリビジョンを並べてみます。
リビジョンコード | モデルタイプ | バージョン | メモリー | 製造元 |
c03112 | 4B | 1.2 | 4GB | ソニー UK |
c03111 | 4B | 1.1 | 4GB | ソニー UK |
b03111 | 4B | 1.1 | 2GB | ソニー UK |
a03111 | 4B | 1.1 | 1GB | ソニー UK |
a020d3 | 3B+ | 1.3 | 1GB | ソニー UK |
a32082 | 3B | 1.2 | 1GB | ソニー 日本工場 |
a02082 | 3B | 1.2 | 1GB | ソニー UK |
9000c1 | Zero W | 1.1 | 512MB | ソニー UK |
900093 | Zero | 1.3 | 512MB | ソニー UK |
中から3B+を例にして確かめ算をしてみましょう。
「a020d3」が3B+のリビジョンなので、これを2進数に直して並べてみます。
1 010 0000 0010 00001101 0011 |
F MMM CCCC PPPP TTTTTTTT RRRR |
これを決められた桁毎に2進数から16進数へ変換すると・・・。
各項目の16進数 | 選択肢の中身 |
M=2 | 2: 1GB |
C=0 | 0: Sony UK |
P=2 | 2: BCM2837 |
T=1D | d: 3B+ |
R=3 | 1.3 |
このようにソニーUKで製造されたRaspberry Pi 3B+のバージョン1.3と分かりますね。
ハードウェアバージョンは未だにBCM2835
Raspberry Pi 4Bのcpuinfoにあるハードウェアバージョンが、BCM2835になっていることが解せませんでした。
海外の掲示板によると、Raspberry Pi 4BのチップはBCM2711だけども、ハードウェアに記録された物を表示していて、それは32bitリビジョンにおけるビットフィールドのせいだとありました。
よく分かりませんが、ラズパイは32bitの基板で、OSが64bitの場合、下位互換するためにそのままにしてあるという意味らしいです。
BCM2835系には違いないので、まぁ、「細けぇこたぁーいいんだよ」ってことなのかな?? ちょっと混乱しますね。
だから、間違いないので気にしないで良いです。はい。
以上、リビジョンを調べてみたら面白かったというお話でした。簡単に調べられますので試してみてください。