昨年の秋ごろに発売された「Raspberry Pi 5」ですが、日本の技適マーク対応を待ってスイッチサイエンスから購入しました。この記事を書いているのが8月なので、随分と時間が経ってしまいました。
実は、あまり先頭を走らないタイプなのです。
今回は、Raspberry Pi 5 のセットアップとケースの組み立て、Python環境の構築までをやってみようと思います。
ちなみに Raspberry Pi 4B のセットアップも過去に記事にしています。
Raspberry Pi 5 のセットアップ
Raspberry Pi 5 をセットアップするには、以下のものが必要です。
- Raspberry Pi 5 本体
- Raspberry Pi 5用 アクティブクーラー
- MicroSDカード
- 電源(5.1V-5A推奨)
- マウス、キーボード、ディスプレイ
- イメージOS書き込み用のPC
開封前の各パーツ、写真には、マウス、キーボード、ディスプレイ、PCは載っていません。
Raspberry Pi 5 本体
スイッチサイエンスさんから「Raspberry Pi 5 / 8GB」を購入しました。
理由は、間違いなく純正品で、技適マーク取得後に発売しているからです。
今では、Amazon等でも純正品&技適取得のものも販売されているようです。
【特徴】
- Broadcom BCM2712、2.4 GHz quad-core 64 bit Arm Cortex-A76 CPU(512KB L2
キャッシュ/2MB 共有L3キャッシュ) - VideoCore VII GPU、supporting OpenGL ES 3.1、Vulkan 1.2
- 2 x 4Kp60 HDMIディスプレイ出力(HDR対応)
- 4Kp60 HEVCデコーダー
- 8 GB LPDDR4X-4267 SDRAM
- 802.11ac Wi-Fi(2.4 GHz / 5.0 GHz)
- Bluetooth 5.0 / Bluetooth Low Energy (BLE)
- SDR104(高速区分)が利用可能なMicro SDカードスロット
- 2 × USB 3.0ポート(同時に5 Gbpsの通信が可能)
- 2 × USB 2.0ポート
- ギガビットイーサネット(別売りのPi 5用PoE+ HATを接続することでPoE+も利用可能)
- 2 × 4レーンMIPI(カメラ/ディスプレイ用)
- 高速周辺機器用PCIe 2.0 x1インタフェース
- 電源入力:推奨5 V/5 A(カスタムPD)、最低5 V/3 A
- Raspberry Pi標準の40ピン ピンヘッダ
- 別売りの外部電源によるリアルタイムクロック(RTC)
- 電源ボタン搭載
Raspberry Pi 5用 アクティブクーラー
Raspberry Pi 5 用のアクティブクーラー(ヒートシンク+冷却ファン)が発売されています。
高負荷時でもRaspberry Pi 5を適切な温度範囲に収めます。冷却ファンは温度で回転数が制御できます。
【特徴】
- アルマイト加工されたアルミ製ヒートシンク
- 冷却ファンは回転数制御が可能
- Raspberry Pi 5とはプッシュピンで固定可能
- ヒートシンクには熱伝導率を改善するサーマルパッド塗布済
- Raspberry Pi 5 専用の電源供給ピンヘッダーに対応
MicroSDカード
Raspberry Pi 5はハイスピードSDR104モードをサポートしているため、SDカードの読み書きも速くなっていました。書き込み速度はSDカードの性能によるところなのであまり速くなっていませんが、読み込み速度はRaspberry Pi 4の2倍になっていました。SDカードを選ぶときはSDR104モードに対応したSDカード(SDHC IやSDXC I、SDUC Iなどのロゴ付きのもの)を選ぶと良いとのことです。
電源(5.1V-5A推奨)
Raspberry Pi 4B の時は、別売りの推奨電源や電源付属キットを購入して使ってもアラートが表示されることがあったので、今回は、確実に対応しているOUTPUTが5.1V-5A(27W)の電源を購入しました。(ディープラーニングや機械学習などを行うと、電力を大きく消費します。)
アクティブクーラーの取り付け
まずは、Raspberry Pi 5 にアクティブクーラーを取り付けます。
【取付手順】
- アクティブクーラー裏面のパッド表面のシールを剥がします。
- Raspberry Pi 5 の位置を合わせて貼り付け、プッシュピンで固定します。
- アクティブクーラーのピンを本体のピンヘッダに繋ぎます。
④写真のオレンジで囲った部分
プッシュピンがあるので、思ったより位置合わせは、簡単に出来ました。
Raspberry Pi OS イメージの準備
ソフトウェアの準備を行います。
私の場合は、WindowsPCを使ってイメージを書き込みました。
まずは、http://raspberrypi.com/software/ で最新のImagerをダウンロードします。
ダウンロードしたファイルを実行して、Imagerのセットアップを行います。
Raspberry PI Imagerを起動して、デバイスに「RASPBERRY PI 5」、OSに「RASPBERRY PI OS(64-BIT)」、ストレージに「SDXC CARD」をそれぞれ選択して「次へ」を押します。
「Would you like to apply OS customization settings?」と聞かれるので「設定を編集する」を押します。
「一般」の内容を設定して「保存」し、前の画面に戻るので「はい」を押します。
SDXCカードの内容が完全に削除されると言われますが、構わず「はい」を押します。
書き込みが完了して、イメージの準備が完了です。
Raspberry Pi 5 の初回起動
Raspberry Pi OS の Image を書き込んだMicroSDカードを差し込み、キーボードやマウス、ディスプレイを接続して、Raspberry Pi 5 を起動します。
裏面にMicroSDカードを差し込みます。
起動すると右側の画面になりました。この壁紙なんだか渋めですね。
問題なく、初回起動は出来ました。
マウスやディスプレイは、Jetson nano や Raspberry Pi 4B の時に使用していたものを流用していたので、少し古いものです。
なお、ディスプレイとディスプレイ切り替え機は、3Dプリンタで作成したケースにはめ込んで使用しています。
以下に類似のもののリンクを貼り付けておきます。
セットアップは、これにて完了です。
ケースの組み立て
合わせて Raspberry Pi 5 に対応している以下のケースを購入したので組み立ててみました。
箱から取り出すと①のように組みあがった状態になっているので、一度、ネジを止めて分解します。なお、この時に出来るだけ元の状態を崩さない方が後からの組み立てが楽になります。
底と上のアクリルは、保護シートが貼りついているので②のように剥がします。
組み立てマニュアル通りに Raspberry Pi 5 をピッタリと囲うようにケース部品を重ねていきます。
蓋のアクリルの保護シートを剥がして、ケースに重ねます。
ねじ止めして完成です。
日本語環境の構築
まずは、システムの最新化を行います。
~$ sudo apt update
~$ sudo apt upgrade
続いて日本語設定を行います。(初期で日本語設定になっていません。)
※この方法では、Chromiumだけは日本語入力対応にはできませんでした。
メニュー等の日本語化
まずは、ロケール設定を日本にしてメニュー等を日本語化します。
まずは、メニューから「Preferences」⇒「Raspberry Pi Configuration」を選択します。
Raspberry Pi Configration 画面の「Localisation」タブを選択します。
ここで、「Set Locale…」ボタンを押して次のように設定します。
Language: ja (Japanese)
Country: JP (Japan)
Character Set: UTF-8
タイムゾーンの設定は、そのままで問題なかったのそっと閉じました。
キーボードの設定は、次のように設定します。
モデル: Generic 105-key PC
配列: Japanese
種類: Japanese (ODAG 109A)
再起動して、ロケール設定は、完了です。
基本的には、これで完了ですが、一部のソフトウェアは、個別にロケールの設定が必要です。
FireFox もアプリのメニューからSettingsを選んでLanguageに日本語を指定します。
言語を日本語にすると下のようにすぐに日本語に変更されます。
日本語入力の設定
今回は、日本語入力メソッドは、fcitx5-mozc を使います。(他に ibus-mozcがあります。)
以下のコマンドで fcitx5-mozc をインストールします。
~$ sudo apt install -y fcitx5 fcitx5-mozc
これだけで日本語入力は可能になりました。
Chromium だと日本語入力できないので、デフォルトのブラウザを FireFox にしました。
お気に入りのフォント等をインストールします。
私は、IPAフォント と notoフォント をインストールしました。
~$ sudo apt install -y fonts-ipafont fonts-ipaexfont
~$ sudo apt install -y fonts-noto fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-color-emoji
システムの標準フォントを変更します。
メニューから「設定」⇒「外観の設定」を選びます。
外観の設定のフォントを選択します。
フォントの中から「IPAexゴシック Regular」を選択します。(何でも好きなので良いです。)
chronium の日本語化
簡単でした起動時に「–gtk-version=4」を追加すればで日本語入力が可能になりました。
$ sudo nano /usr/share/applications/chromium.desktop
アイコン設定を修正することで日本語入力が可能になりました。
…
Excec=/usr/bin/chromium --gtk-version=4 %U
…
Python 仮想環境の構築
2023年10月から Raspberry Pi OS がバージョンアップして、bullseye から bookwarm に変わりました。これにより python2がなくなり、python3だけになりました。pip でのインストールにも制限がかかるようになっており、python 仮想環境を構築して、そのなかにあるpythonにモジュール(ライブラリ)をインストールして利用する形が推奨されているようです。
なので、その方法を試してみたいと思います。
まずは、必要な外部モジュールをインストールします。
~$ sudo apt install -y make build-essential wget curl llvm xz-utils tk-dev liblzma-dev
~$ sudo apt install -y openssl libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev
pyenv をインストールします。
~$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
~$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
~$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
~$ echo 'if command -v pyenv 1>/dev/null 2>&1; then' >> ~/.bash_profile
~$ echo ' eval "$(pyenv init -)"' >> ~/.bash_profile
~$ echo 'fi' >> ~/.bash_profile
~$ source ~/.bash_profile
pyenvをインストールして、パスを通しました。
実は、このままだとRaspberry Pi デスクトップのターミナルだと毎回「source ~/.bash_profile」を記載しないと pyenv が動きません。対応は、後ほど記載します。
仮想環境用の python を設定します。
インストール可能な python のバージョンを表示します。
~$ pyenv install -l
…
3.11.9
3.12.0
3.12-dev
3.12.1
3.12.2
3.12.3
3.12.4
3.13.0b4
3.13.0b4t
3.13-dev
…
上記のように表示されました。どうも最新版は、3.12.4 なのでそちらをインストールします
~$ pyenv install 3.12.4
python のバージョンを切り替えます。
~$ pyenv global 3.12.4
仮想環境を構築して有効化します。
$ python -m venv pyenv
$ source ~/pyenv/bin/activate
仮想環境に入るとプロンプトが少し変わります。
(pyenv) ~$ python -V
python 3.12.4
他にも必要なものをセットアップしていきます。
(pyenv) ~$ pip install --upgrade pip
(pyenv) ~$ pip install --upgrade numpy
(pyenv) ~$ pip install --upgrade matplotlib
仮想環境にいくつかのライブラリをインストールしました。
以下のコマンドで仮想環境を無効化して通常に戻ります。
(pyenv) ~$ deactivate
以上でpythonの仮想環境構築は、完了です。
LXTerminal 起動時に ~/.bash_profile を読み込ませる
デスクトップ版を使っているとターミナルのアイコンをクリックしただけで、~/.bash_profile を読み込んで欲しいですよね。そこでアイコンの設定ファイルを編集して、読み込むようにします。
アイコン設定は、「lxterminal.desktop」というファイルに定義されているのですが、場所を探すのが面倒なので検索します。ファイル検索ツールを使って、/usr/share 以下をファイル名で検索します。
おそらく2ファイル表示されるので、パスをコピーして、nanoで編集します。
Exec設定の行を編集します。
「Exec=lxterminal」⇒「Exec=lxterminal -e “bash -il”」に修正します。
保存して、アイコンから LXTerminal を起動すると ~/.bash_profile が読み込まれるようになっています。
Wayland/Wayfire 環境でスクリーンショットを撮る
アクティブウィンドウのスクリーンショットを撮る方法
アクティブウィンドウのスクリーンショットを撮る。
こんな些細なことがX11からWaylandに変わったことで出来なくなってしまいました。
記事を書く上では、非常に不便です。
X11にすれば、「scrot -u -d 10」などが動くのですが、何故かキーボードレイアウトが強制的に英語101キーボードに変更されてしまい、入力が超不便になります。
なんとか、Waylandのままでアクティブウィンドウのスクショを撮りたいと思い色々調査して見つけました。
$ grim
こちらは、画面全体のスクリーンショットを撮ります。
$ sudo apt install -y slurp
マウスで矩形領域を選択できるユーティリティをインストールします。
$ grim -g "$(slurp)"
こちらだとマウスで選択した領域のスクリーンショットを撮ります。
マウスで選択も毎回だとかなり面倒です。何とかアクティブウインドウのスクリーンショットを撮りたいと探していたら以下の記事を見つけました。
grim -g "$(wf-info | grep 'Geome' | awk {'print $2, $3'})"
これで行けるっぽいです。いざ実行してみます。
$ grim -g "$(wf-info | grep 'Geome' | awk {'print $2, $3'})"
bash: wf-info: コマンドが見つかりません。
invalid geometry
wf-infoがインストールされていません。apt searchを使ってもヒットしませんでした。
以下のgithubでソースからビルドする必要があるようです。
wf-info のビルド
「Raspberry Pi OS 12 (bookworm)」にインストールされている「Wayfire」のバージョンは、0.7.5なので、0.7.x用のソースをビルドする必要があります。
まずは、ビルドに必要なツールとライブラリをインストールします。
sudo apt update
sudo apt install -y meson ninja-build
sudo apt install -y libcairo2-dev libglm-dev libpango1.0-dev libvulkan-dev libwayland-dev libwf-config-dev libwlroots-dev libxml2-dev wayfire-dev
ライブラリのインストールは、結構、時間がかかりました。
必要なものがインストールできたらビルドを行います。
git clone https://github.com/soreau/wf-info.git
cd ./wf-info
git checkout 0.7.x
meson build --prefix=/usr
ninja -C build
sudo ninja -C build install
こちらは、ほぼ一瞬で終わりました。
wf-infoコマンドがインストール出来たので、wf-infoプラグインを有効にします。
まずは、デフォルトで有効になっているプラグインを確認します。
$ grep 'plugins = ' /etc/wayfire/defaults.ini
plugins = alpha animate autostart autostart-static command cube pixdecor expo fast-switcher fisheye grid idle invert move oswitch place resize switcher vswitch window-rules wm-actions wrot zoom winshadows
プラグイン設定を自分の設定ファイル(~/.config/wayfire.ini)に行います。
[core]セクションを追加して、上記の結果をコピーし、末尾にwf-infoを追加します。
$ nano ~/.config/wayfire.ini
...
[core]
plugins = alpha animate autostart autostart-static command cube pixdecor expo fast-switcher fisheye grid idle invert move oswitch place resize switcher vswitch window-rules wm-actions wrot zoom winshadows wf-info
wf-info を使ってみる
wf-infoを実行してみます。
$ wf-info
実行しても黙っています。
何かウィンドウを選択すると答えを返してきます。
=========================
View ID: 58
Client PID: 2229
Workspace: 0,0
App ID: lxterminal
Title: chikuma@raspberrypi5: ~
Role: TOPLEVEL
Geometry: 362,175 655x461
Xwayland: false
Focused: true
=========================
アクティブなウィンドウを自動的に選ぶのは、以下のオプションで実行します。
$ wf-into -i -1
これだとコマンド入力後、即時に画面情報が取得されるのでアクティブウィンドウを選択する余地がないですね。シェルを作って少し後にアクティブウィンドウのスクリーンショットを撮るようにします。
grim-active-window.sh の作成
$ mkdir ~/bin
$ nano ~/bin/grim-active-window.sh
grim-active-window.sh
#!/bin/bash
WAIT=0
while getopts "w:" opt; do
case "$opt" in
"w")
WAIT=$OPTARG;;
esac
done
sleep $WAIT
grim -g "$(wf-info -i -1 | grep 'Geome' | awk {'print $2, $3'})"
Bash実行可能にモード変更します。
$ chmod 755 ~/bin/grim-active-window.sh
実行してみます。
$ ~/bin/grim-active-window.sh -w 5
5秒後にアクティブウィンドウのスクリーンショットが取れました。
ショートカットキーに設定
ショートカットのキーバインドに設定します。
ショートカットには、全画面版とアクティブウィンドウ版をそれぞれ登録します。
単独のPrintScrは全画面版、Ctrl+Alt+PrintScrはアクティブウィンドウ版にします。
ショートカット割付に上記の長いコマンドを書いて動くようにするのは時間がかかりそうなので、シェルスクリプトをパスの通った場所に作成して呼び出すようにしたいと思います。
$ sudo cp ~/bin/grim-active-window.sh /usr/bin/
ホームディレクトリに作ったシェルスクリプトは、-wオプションがありましたが、ショートカットに登録するものには必要ないので削除しました。
/usr/bin/grim-active-window.sh
#!/bin/bash
grim -g "$(wf-info -i -1 | grep 'Geome' | awk {'print $2, $3'})"
Bashsudo mousepad /etc/xdg/openbox/lxde-pi-rc.xml
警告が出ますが、無視して編集します。
CLIツールでメンテすべきなのかもしれませんが、このファイル長いのでGUIツールで編集しました。
<!-- Keybindings for running applications -->
<keybind key="Print">
<action name="Execute">
<command>scrot</command>
</action>
</keybind>
<keybind key="Print">
<action name="Execute">
<command>grim</command>
</action>
</keybind>
<keybind key="C-A-Print">
<action name="Execute">
<command>grim-active-window.sh</command>
</action>
</keybind>
左の状態から右の状態に変更しました。
元々は、scrotが設定されていたのですね。Ctrl+Alt+PrintScrでアクティブ画面のスクリーンショットが撮れるようになるはず。
再起動してショートカットを試してみました・・・うーん。全画面版は動いたが、アクティブスクリーン版が動かない。Wayland版のショートカット設定方法が分からない。
そもそもこれは「X11/OpenBox」での設定ですね。「Wayland/Wayfire」では関係なさそうです。
Wayfireのショートカット設定
「~/.config/wayfire.ini」に設定が見つかりました。
INIファイルの先頭に[command]セクションがあり、ショートカット設定があるように見えます。
他の設定を参考にアクティブウィンドウのスクリーンショットを撮るショートカットキーを追加してみます。
[command]
repeatable_binding_volume_up=KEY_VOLUMEUP
command_volume_up=wfpanelctl volumepulse volu
repeatable_binding_volume_down=KEY_VOLUMEDOWN
command_volume_down=wfpanelctl volumepulse vold
binding_mute=KEY_MUTE
command_mute=wfpanelctl volumepulse mute
binding_menu=<super>
command_menu=wfpanelctl smenu menu
binding_terminal=<ctrl> <alt> KEY_T
command_terminal=lxterminal
binding_bluetooth=<ctrl> <alt> KEY_B
command_bluetooth=wfpanelctl bluetooth menu
binding_netman=<ctrl> <alt> KEY_W
command_netman=wfpanelctl netman menu
binding_grim=KEY_SYSRQ
command_grim=grim
binding_orca=<ctrl> <alt> KEY_SPACE
command_orca=gui-pkinst orca reboot
binding_quit=<ctrl> <alt> KEY_DELETE
command_quit=lxde-pi-shutdown-helper
binding_power=KEY_POWER
command_power=pwrkey
...
INI[command]
...
binding_grim=KEY_SYSRQ
command_grim=grim
# Added shortcut to take screenshots
binding_screenshot_active_window=<ctrl> KEY_SYSRQ
command_screenshot_active_window=wf-info -i -1 | grep 'Geome' | awk {'print $2, $3'} | grim -g -
binding_screenshot_interactive=<shift> KEY_SYSRQ
command_screenshot_interactive=slurp | grim -g -
# Add up to here
...
INI「PrintScr」キーは、KEY_SYSRQみたいです。<ctrl>+<PrintScr>でアクティブウィンドのスクリーンショットが撮れました。ついでに<shift>+<PrintScr>で矩形選択してスクリーンショットを撮るショートカットも追加しました。
以上です。
コメント