Raspberry Pi専用のツールについて。Raspberry Pi OSには標準でインストールされているが、他ディストリから追加インストールして使うこともできる。
Raspberry Pi専用の設定ツールで、ハードウェアに関係する部分とソフトウェアに関係する部分の両方が設定できる。
GUI版と端末版の2つがあり、パッケージ名も異なるが、ほとんどの項目はどちらからでも設定できる。
ssh
という名前の空のファイルを作成することでも有効化できるここで設定されるRaspberry Pi OS標準のVNCサーバはRealVNC社のもので、同社のサイトからクライアント(x86_64のLinux用もある)をダウンロードして使わないとクライアントが動作しない。GNU/Linux PCなどでRemmina
などの汎用のリモートデスクトップクライアントを用いるには、代わりにPiにtightvncserver
をインストールしてサーバソフトウェアを置き換える必要がある。
GPUへの割り当てメモリ量は、動画再生支援のみの利用であれば128Mあればよい。
rc_gui
sudo raspi-config
として実行)raspi-config
各種情報を表示したり、一部のハードウェア制御を行ったりできるコマンド。サブコマンドの数が多いが、よく使用されるものを以下に示す。
(温度を“temp=52.6'C”のような形式で表示・数字部分のみを得るには少し加工が必要)
$ vcgencmd measure_temp
(CPUクロックを“frequency(45)=600000000”のような形式で表示・これも数字部分を得るには加工が必要)
$ vcgencmd measure_clock arm
(ディスプレイ出力をオフにする)
$ vcgencmd display_power 0 >/dev/null
(ディスプレイ出力をオンにする)
$ vcgencmd display_power 1 >/dev/null
(CPUとGPUそれぞれから利用可能なメモリ量を表示)
$ vcgencmd get_mem arm; vcgencmd get_mem gpu
(現在の詳細な設定を表示)
$ vcgencmd get_config int; vcgencmd get_config str
(使用可能なサブコマンド名の一覧を表示)
$ vcgencmd commands
決まった時刻にディスプレイの出力をオン/オフにする機能は、crontab
で実行するようにする(スクリプトの中にこのコマンドの実行の記述を含めるのも可)と便利で、使い方次第では節電にもなる。
下はPythonでクロックと温度を表示する例。
#! /usr/bin/python
from __future__ import print_function
import subprocess
c = subprocess.check_output(("vcgencmd", "measure_clock", "arm")).decode("ascii")
t = subprocess.check_output(("vcgencmd", "measure_temp")).decode("ascii")
clock = float(c.split("=")[1]) / 1000000000
temp = t[t.index("=") + 1:-3]
print("Clock:{:.2f}[GHz] Temp:{}['C]".format(clock, temp))
上のスクリプトにおけるクロックの出力については、手元のPi 3B+ではコマンドで直接取得すると0.6GHzとなるがこのスクリプトで表示すると処理負荷によりクロックが引き上げられて1.4GHzとなることが多い。なお、このコードはPyPyを用いても実行時間は短縮されない。
上のPythonのコードと同様にしてクロックと温度をそれぞれ取得してまとめて表示する例。LuaJITを使用している。
#! /usr/bin/luajit
do
local f = io.popen("vcgencmd measure_clock arm")
local c = f:read()
f:close()
f = io.popen("vcgencmd measure_temp")
local t = f:read()
f:close()
local idx = c:find("=")
local clock = c:sub(idx + 1) / 1000000000
idx = t:find("=")
local temp = t:sub(idx + 1, t:len() - 2)
print(("Clock:%.2f[GHz] Temp:%s['C]"):format(clock, temp))
end
手元のPi 3B+ではPythonを使用したものより処理時間がかなり短く、クロックが1.4GHzに上がることもほとんどない(0.6GHz表示になる)。