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+