Raspberry Pi のハードウェア情報を表示

投稿者: | 2020年1月7日

Raspberry Piはいろいろなハード(バージョン)が出ているので、複数個のRaspberry Piを使っていると、どれがどのバージョンかわからなくなります。そこで、Raspberry Pi のハードウェア情報を取得するものをつくってみました。

目次

ハードウェアのバージョンコード

ハードウェアのバージョンコードは本家に記載があります。

コマンドでの確認

コマンドで確認する方法は以下になります。

CPU情報

$ cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

Model名

$ cat /proc/device-tree/model
Raspberry Pi 3 Model B Rev 1.2

カーネルモジュールのバージョン

$ cat /proc/version
Linux version 4.19.66-v7+ (dom@buildbot) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1253 SMP Thu Aug 15 11:49:46 BST 2019

ハードウェア設定

$ vcgencmd get_config int
aphy_params_current=819
arm_freq=1200
audio_pwm_mode=514
config_hdmi_boost=5
core_freq=400
desired_osc_freq=0x36ee80
disable_commandline_tags=2
disable_l2cache=1
display_hdmi_rotate=-1
display_lcd_rotate=-1
dphy_params_current=547
force_eeprom_read=1
force_pwm_open=1
framebuffer_ignore_alpha=1
framebuffer_swap=1
gpu_freq=300
init_uart_clock=0x2dc6c00
lcd_framerate=60
over_voltage_avs=0x10c8e
pause_burst_frames=1
program_serial_random=1
sdram_freq=450
hdmi_force_cec_address:0=65535
hdmi_force_cec_address:1=65535
hdmi_pixel_freq_limit:0=0x9a7ec80
hdmi_pixel_freq_limit:1=0x9a7ec80

プログラムでの確認

Pythonで確認する方法は以下になります。

#
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import sys

def getBIOSver():
  myBIOSver = os.popen("cat /proc/version | awk '{print $3;}'").read().strip()
  return myBIOSver.strip()

def getCPUtype():
  myCPUtype = "Unknown"
  myCPUcode =  os.popen("cat /proc/cpuinfo \
                |grep 'Revision' \
                | awk '{print $3;}'").read().strip()
  CPUmodel = {"a03111":"4B"  ,"b03111":"4B"  ,"c03111":"4B",\
              "a020d3":"3B+","9020e0":"3A+",\
              "a52082":"3B","a32082":"3B","a22082":"3B","a02082":"3B",\
              "900021":"A+","900032":"B+","0010":"B+",\
              "a01041":"2B","a01040":"2B",\
              "a22042":"2B","a21041":"2B","a01041":"2B","a01040":"2B",\
              "920093":"Zero","920092":"Zero","900093":"Zero","900092":"Zero",\
              "9000c1":"ZeroW" }
  if myCPUcode in CPUmodel:
      myCPUtype = CPUmodel[myCPUcode]
  return myCPUtype.strip()


#実行
if __name__ == "__main__":

    # CPU
    myTYPE = getCPUtype()
    myBIOSver = getBIOSver()
    print "CPU:%s" % (myTYPE)
    print "BIOS:%s" % (myBIOSver)

走らせた結果は以下になります。

$ sudo python cpu.py
CPU:3B
BIOS:4.19.66-v7+

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です