これまで、いくつかマイコンボードを試してきた。
それらはいわゆる組み込み用のマイコンで、Linuxで動作するものは無かった。
Linuxで動作するものと言えば、Raspberry Piシリーズ。
今回はその中でも最安値のRaspberry Pi Zero 2 Wを使って、遊んでみたい。
ちなみにおじさんにはLinuxの知識はほとんどない。大丈夫だろうか?
先人の知恵を参考に、ChatGPTに訊きながら何とかしてみる。
Raspberry Pi Zero 2 Wの主なSpec
・クアッドコア Cortex A53 1GHz
・512MB RAM(LPDDR2)
GUIを起動して使うには苦しいが、組み込みで使う分には十分すぎる性能だろう。たぶん。
と、いうことで、早速秋月電子に発注↓ 3,360円
発注して4日ほどで届いた。
ブレッドボードと並べて、このくらいの大きさ。思ったより小さい。
ちなみに電源はamazonでこちらを注文した。ケーブルにスイッチが付いていて扱いやすい
SDカード無しで電源を入れただけではLEDは光らないので何も分からない。
電源LEDとLチカを試す用のLEDをブレッドボードに付けて接続しておく。
次に、動作させるためにはOSをSDカードに書き込む必要があるらしい。
いろんな記事を見ると32GBくらいあると良いらしい。
ダイソーで調達↓
実際に動かすにあたっては、Mini HDMIコネクタからDisplayにつないで、USBコネクタからキーボード、マウスに繋ぐのが良いのだが、変換コネクタを用意したりディスプレイを繋ぎ直したりするのは、いろいろめんどくさい。
いろんな記事を読むと皆さんは、ディスプレイ、キーボード等つながずに、PCからリーモートログインして使っていることが多いらしい。
なので、おじさんもそうしてみたい。
今回のゴールは、リモートログインして動かしてみる
ところまで何とかしてみたい。
まず最初にこちらのページ↓を参考に動かしてみる
有線キーボード無しでRaspberry Pi Zeroのセットアップをする(SSH接続、Raspberry Pi Imager)
まず、Raspberry Piのホームページからラズベリーパイ・イメージャーをダウンロードしてPCにインストールして起動する
・対象モデル選択でRaspberry Pi Zero 2 W
・OSはどれが良いのか分からなかったが、64bit版にしてみる(推奨らしい)
・書き込み先はSDカードを指定
次へを押すと設定変更するか?と聞いてくるので変更するを押す。
一般のタブで、ユーザー名とパスワード、WiFi設定、ロケールを設定
WiFiは5Gはサポートしていないので、2.4Gを指定
リモートログインしたいので、サービスのタブでSSHを有効にする。
保存を押すと、OSの書き込みが始まる
時間は測ってないけど10分くらいはかかったと思う。
書き込みが終わったら、SDカードをRaspberry Pi Zero 2に挿して電源を入れる。
今度は、緑のLEDが点滅して起動しているっぽい感じ。
次にWindows PCのコマンドプロンプトを起動.。
arp -aと入力し、つながっている機器のIPアドレスをリストする。
何度かやってると、Raspberry Pi Zero 2が起動して、新たなIPアドレスが追加される。
そうしたら、SSHでつながるかどうか試してみる。
ユーザー名をnyaにしたので、ssh nya@raspberrypi.localと入力
パスワードを聞いてくるので、設定したパスワードを入力
無事つながった。
ここまでは順調。
主な手順をまとめると(ユーザー名:nyaの場合)
・デスクトップ環境(Xサーバー)が動いていないので動くようにする
lightdmが軽量なデスクトップ環境らしい
sudo systemctl enable lightdm
sudo systemctl set-default graphical.target
・VNC有効化:
・Interface Options → VNC → Enable
・Display Options → Resolution で仮想解像度設定
sudo chown nya:nya /home/nya/.vnc
サービス再起動:
0.0.0.0:5900 / :::5900 がLISTENならOK。
アドレス:<Raspberry PiのIPアドレス>
ユーザー名:nya
パスワード:ユーザーパスワード
なお、FireFox等のブラウザはメモリ不足で立ち上がらない。
リモートでのGUI操作が出来るようになったので、いろいろ設定していく。
ロケールを日本語にして日本語表示に
今後使うであろう、SPIとI2Cのモジュールを自動で読み込むように設定
スクリーン右上のWiFiマークからAdvanced Optionメニューを開いて、使わないIPv6は無効にしておく
最後に、いろいろと、ネットを調べたりChatGPTに訊いたりすると、 Raspberry Pi ZeroだとGUIは結構重いので、普段は停止しておき、SSHで必要なときだけ起動する運用がよく使われるらしい。
なるほど。
ChatGPTにお願いしてまた試行錯誤。
最初に起動時はGUIは無しにしておく
SSHログイン時に自動でGUIとVNCを起動する には
1.~/vncstart.sh というスクリプトを作成
中身は
#!/bin/bash
echo "Starting GUI and VNC..."
# GUI起動(LightDM使用)
sudo systemctl start lightdm
# VNC ServerをService Modeで起動
sudo systemctl start vncserver-x11-serviced
・保存して実行権限を付与:
chmod +x ~/vncstart.sh
2. SSHログイン時にスクリプトを実行する
~/.bash_profile(ログイン時だけ読み込まれる)を編集:
nano ~/.bash_profile
末尾に以下を追加:
~/vncstart.sh
これで、ただ電源を入れただけでは、GUIは立ち上がらずsshで接続したときには自動でGUIが立ち上がってVNCで接続できるようになる。
うん、確かに・・













