Raspberry Pi の OS に関する情報やハードウェアの情報を得る

メモ:

インストールされている OS を確認する

インストールされている OS を確認するには、「 lsb_release 」コマンドを使用します。「 -a 」オプションをつけることで OS の情報をすべて出力してくれます。

pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

「 lsb_release 」以外に次の方法で OS のバージョンを知ることができます、

pi@raspberrypi:~ $ cat /etc/debian_version
10.0

pi@raspberrypi:~ $ cat /etc/issue
Raspbian GNU/Linux 10 \n \l

カーネルの情報を確認する

カーネルのバージョン等を確認するには、「 uname 」コマンドを使用します。「 -a 」オプションをつけることで、カーネルに関する情報を出力してくれます。

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.57-v7+ #1244 SMP Thu Jul 4 18:45:25 BST 2019 armv7l GNU/Linux

「 uname 」コマンド以外に次の方法でもカーネルのバージョンを確認することができます。

pi@raspberrypi:~ $ cat /proc/version
Linux version 4.19.57-v7+ (dom@buildbot) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1244 SMP Thu Jul 4 18:45:25 BST 2019

CPU の温度や動作クロック、各種設定が取得できる vcgencmd コマンド

vcgencmd コマンドを使うと CPU の温度や動作電圧など Raspberry Pi の動作状況を確認することができます。

また、 Raspberry Pi には、通常のPCにおけるUEFI(BIOS)で指定する各種設定が /boot/config.txt に定義されているのですが、それらの情報も vcgencmd コマンドで取得することができます。

SoC の温度を取得する

「 measure_temp 」コマンドを指定することで、 SoC (BCM2835)の温度を確認することができます。

pi@raspberrypi:~ $ vcgencmd measure_temp
temp=47.2'C

「 measure_temp 」コマンド以外に次の方法でも温度を確認することができます。ただし、出力される値を 1000 分の 1 する必要があります。

pi@raspberrypi:~ $  cat /sys/class/thermal/thermal_zone0/temp
47236

CPU の動作電圧を取得する

「 measure_volts 」コマンドを指定することで、 CPU の動作電圧を確認することができます。

pi@raspberrypi:~ $ vcgencmd measure_volts
volt=1.2000V

「 measure_volts 」コマンドでは、 CPU 以外に SDRAM 周りの動作電圧も確認することができます。その場合、「 measure_volts 」に id を指定します。

pi@raspberrypi:~ $ vcgencmd measure_volts sdram_c
volt=1.2500V

指定できる id は、4つ用意されており次の電圧を確認することができます。

id(Device) 説明
core Core
sdram_c SDRAM controller
sdram_i SDRAM I/O
sdram_p SDRAM physical
pi@raspberrypi:~ $ for id in core sdram_c sdram_i sdram_p ; do \
> echo -e "$id: $(vcgencmd measure_volts $id)" ; \
> done
core: volt=1.2000V
sdram_c: volt=1.2500V
sdram_i: volt=1.2500V
sdram_p: volt=1.2250V

動作周波数を取得する

CPU などの動作周波数を確認するには、「 measure_clock 」コマンドに対象( arm )を指定します。

pi@raspberrypi:~ $ vcgencmd measure_clock arm
frequency(45)=600000000

出力される結果は、 600000000 Hz なので換算すると 600 MHz になります。 CPU 以外に次の動作周波数を確認することができます。

Clock 説明
arm ARM CPU
core Core
dpi Display Pixel Interface
emmc External MMC device
h264 h.264 encoder
hdmi HDMI clock
isp Image Sensor Pipeline
pixel Pixcel clock
pwm Pulse Width Modulation
uart UART clock
v3d Video 3D

その他 CPU に関する情報

vcgencmd コマンド以外にシステム統計情報からも CPU の情報を確認することができます。

pi@raspberrypi:~ $ cat /proc/stat | grep cpu
cpu  272899 214 51087 176254462 7665 0 64948 0 0 0
cpu0 108219 129 19472 43558827 2012 0 64941 0 0 0
cpu1 62656 39 11796 44217690 969 0 2 0 0 0
cpu2 41767 41 8836 44237006 614 0 4 0 0 0
cpu3 60257 5 10983 44240938 4069 0 1 0 0 0

各コア別の情報とトータル(4コア)の情報が別々に出力されるようです。

user nice system idle iowait irq softirq steal quest quest_nice
cpu 272899 214 51087 176254462 7665 0 64948 0 0 0
cpu0 108219 129 19472 43558827 2012 0 64941 0 0 0
cpu1 62656 39 11796 44217690 969 0 2 0 0 0
cpu2 41767 41 8836 44237006 614 0 4 0 0 0
cpu3 60257 5 10983 44240938 4069 0 1 0 0 0
  • user:ユーザーモードで費やされた時間
  • nice:ユーザーモードで低優先度(nice)で過ごした時間
  • system:システムモードで費やされた時間
  • idle:アイドルタスクで費やされた時間
  • iowait:I/Oが完了するのを待つ時間
  • irq:割り込みを処理する時間
  • softirq:ソフト割り込みを処理する時間
  • steal:仮想化された環境で動作しているときに他のオペレーティングシステムで費やされた時間
  • guest:Linuxカーネルの制御下でゲストOS用に仮想CPUを実行するのに費やされた時間
  • guest_nice:Linuxカーネルの制御下にあるゲストOS用の仮想CPUの実行に費やされた時間

config.txt に設定された情報を確認する

Raspberry Pi 起動時に読み込まれる config.txt (BIOSの代わり)に設定された情報は、「 vcgencmd 」コマンドの 「 get_config 」に設定項目を指定することで確認できます。

例えば、 CPU のクロックを確認したい場合、「 arm_freq 」を指定することで確認できます。

pi@raspberrypi:~ $ vcgencmd get_config arm_freq
arm_freq=1400

CPU ( arm ) のクロックが 1.4 GHz であることが確認でき、「 vcgencmd measure_clock arm 」コマンドから取得した結果から、通常動作が 600 MHz で動作していることが確認できます。

「 vcgencmd get_config 」コマンドには、int (整数)又は str (文字列)を指定することもでき、設定値が指定した型のもののみを表示することができます。

pi@raspberrypi:~ $ vcgencmd get_config int
aphy_params_current=819
arm_freq=1400
audio_pwm_mode=514
config_hdmi_boost=5
core_freq=400
desired_osc_freq=0x331df0
desired_osc_freq_boost=0x3c45b0
disable_commandline_tags=2
disable_l2cache=1
disable_overscan=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=37500
over_voltage_avs_boost=0x23186
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=0x9a7ec8

config.txt で指定可能なパラメータは、 config-txt で確認することができます。