Raspberry Pi Zero 2を使ってみる その1(Xfce、Vivaldi、Node-RED)
はじめに
今回はRaspberry Pi Zero 2を使ってみました。Maker Faire Tokyo 2023にて会場で販売されていたので購入してみました。
一度Raspberry Pi OSのデスクトップ環境をインストールしてみたのですが、熱くなって動作が遅いことがありました。さすがに普段使っているパソコンやRaspberry Pi 4よりは遅いのかな?という印象です。
基本的にはCUIで、必要に応じてGUIで使おうかなと思っています。
▼スイッチサイエンスの販売ページはこちら。今は売り切れていますね。
▼Amazonでも販売されています。
▼以前の記事はこちら
環境構築
OSのインストール
今回はRaspberry Pi OS Liteをインストールしました。デスクトップ環境がありません。後でインストールします。
▼Raspberry Pi Imagerは以前といろいろ変わっていますね。デバイスなどを選択後、SSIDなどの設定について聞かれました。
▼32bitのRaspberry Pi OS Liteをインストールしました。
WiFiとの接続
sudo apt updateの時点でエラーが出ていたのですが、そもそもWiFiに繋がっていないのではないか?と思い、調べてみました。
nmcliコマンドを使ったところ、以下のエラーが出ました。
▼NetworkManagerが起動していないというエラーです。
Error: NetworkManager is not running.
▼こちらの記事を参考にすると、解決しました。
▼以下のコマンドでサービスを起動後、状態を確認しました。
service NetworkManager start
nmcli connection show
やはりWiFiに接続できていなかったので、接続しました。
▼こちらの記事を参考にしました。
▼接続可能なSSIDを表示し、接続します。SSID名は適宜変更してください。
nmcli radio wifi on
nmcli device wifi list
nmcli device wifi connect <SSID名> --ask
デスクトップ環境の構築
Xfceのインストール
後でNode-REDを使いたかったので、デスクトップ画面も表示できるようにしてみました。今回はXfceをインストールしました。
▼Xfceのページはこちら
▼こちらのページに詳しく書かれていました。
https://wiki.archlinux.jp/index.php/Xfce#.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB
▼以下のコマンドでxfce4とxfce4-goodiesをインストールしました。
sudo apt install xfce4
sudo apt isntall xfce4-goodies
実行してみると、Unable to fetch some archivesというエラーと一緒に、sudo apt-get updateを実行するように書かれていました。実行後、再度xfce4のインストールを行うと、エラーが出ませんでした。
startxfce4 でデスクトップ画面が表示されます。
▼このときも以下のエラーが出ました。
Failed to execute child process "dbus-launch"
▼以下の記事を参考に、dbus-x11をインストールすると解決しました。
sudo apt install dbus-x11
▼表示されました!HDMIで接続しているディスプレイに表示しています。
▼キーボードのボタンで、スクリーンショットを撮ることもできました。
ブラウザのインストール
Xfceのブラウザのボタンを押すと、ブラウザが無いというエラーが出ていました。
まずはChromiumをインストールしてみたのですが、めちゃくちゃ遅い!Chromiumより軽量のものは無いかということで、試しにVivaldiをインストールしてみました。
結局のところ、後述するSwap機能を変更するとブラウザを開けるようになりました。
▼Vivaldiのインストールはこちらから。
https://vivaldi.com/ja/download/?platform=linux
ブラウザを開くことができる別のパソコンでダウンロード後、USBメモリでZero 2のデスクトップにコピーしました。
▼Linux DEB ARMをダウンロードしました。
sudo apt install でファイルのパスを指定すると、インストールできました。インストールしたブラウザはDefault Applicationsで設定しました。
▼Applications→Settingsにあります。
▼Vivaldiを設定しました。
Swap機能の設定
メモリのSwapという言葉は初めて聞きました。メモリが足りないときに、ストレージを仮想メモリとして使うことができるようですね。
▼調べると、いろいろ出てきました。
▼こちらの記事を参考に、dphys-swapfileを削除してSwap機能をoffにしてみたのですが、動作が遅くなりました。
https://ponkichi.blog/raspberry-setup/
この状態では、インストールしたブラウザを開くことはできませんでした。dphys-swapfileを再インストールし、Swap領域を拡張してみました。
▼こちらの記事を参考に、Swap領域を拡張すると、ブラウザを開けるようになりました。
https://lang-ship.com/blog/work/raspberry-pi-zero-2-w-3/
Zero 2のメモリがそもそも小さいので、拡張しないと動作しないという感じでしょうか。
▼ブラウザを開いてTask Managerを見ていたのですが、Memoryは60%ぐらいでした。
Node-REDをインストールする
Node-REDのページを参考にインストールしました。
▼こちらに詳しく書かれています。
https://nodered.org/docs/getting-started/raspberrypi
▼インストールするためのコマンドはこちら
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
▼同じページに書かれていたのですが、以下のコマンドでNode-REDを起動しました。未使用のメモリを早く解放できるように指示できるようです。
node-red-pi --max-old-space-size=256
▼Node-REDのエディタ画面が表示されました!
このあとZero 2のNode-REDでMQTTブローカーを起動し、WindowsのNode-REDとMQTT通信を行ってみました。ブラウザにNode-REDの画面が表示されるのは遅くても、通信はできているようでした。
▼以下のコマンドで、Zero 2の起動時にNode-REDを起動するようにできます。再起動後も、MQTT通信をすることができました。
sudo systemctl enable nodered.service
電源を切る
デスクトップ環境ならマウス操作で電源を切ることができますが、基本的にはCUIで使うのでシャットダウンもコマンド入力です。
▼shutdownに関するマニュアルのページはこちら
https://manpages.ubuntu.com/manpages/impish/ja/man8/shutdown.8.html
▼ランレベルという用語が出ていたのですが、こちらで説明されていました。
https://manpages.ubuntu.com/manpages/impish/ja/man8/init.8.html
すぐに電源を切るときは以下のコマンドを使います。
sudo shutdown -h now
最後に
対症療法的にコマンドを入力しているので、もっといいやり方があるような気もしますが...
ブラウザであっても使ってみなければ分からないので、いろいろ試してみようと思います。
全体的に動作が遅いのですが、普段使っているパソコンに比べたら当然という感じです。その点、Pi 400はブラウザも早かったです。
組み込みやすい大きさでOSを載せることができるので、入出力デバイスと合わせて使いたいなと思っています。
▼他の記事も見ていたのですが、やっぱり時間がかかるみたいですね。