お父にゃんの電子工作 -27ページ目

お父にゃんの電子工作

暇なおじさんが、電子工作(主にラジオ製作)をして勝手な感想を書く

これまで、いくつかマイコンボードを試してきた。

それらはいわゆる組み込み用のマイコンで、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円

秋月電子:Raspberry Pi Zero 2 WH

発注して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と入力

パスワードを聞いてくるので、設定したパスワードを入力

無事つながった。

ここまでは順調。

 
更に、GUIを起動して、PCからリモートで操作できるようにしていく。
ネット上で、いろんな記事がヒットするので、まずVNCを使って接続を試みるが、まるで上手くいかない。諦めて、比較的簡単そうなxrdpを使っての接続を試みるも青い画面になって、そのうちエラーログが表示される。
 
むむむ・・基礎知識のないおじさんでは、どうしようもない
 
心機一転、ChatGPTに最初からいろいろ訊きながら作業を始める。
ChatGPTによると、RealVNCを使うのがお勧めらしい。
ChatGPTの指示に従って、いろいろ作業していく。それでも上手くいかない。

 

いろいろやって分かったのだが、Raspberry Pi Zeroでは、デフォルトではGUIは起動せず、コマンドだけで動かすようになっているっぽい。
なので、他の記事に有るようにxdrpやvncを動かしただけでは、そもそもGUIが動いていないので、動作しようもい。またRealVNCをインストールしても他のVNCと競合するのでそこも修正が必要。
 

主な手順をまとめると(ユーザー名:nyaの場合)

・デスクトップ環境(Xサーバー)が動いていないので動くようにする

 lightdmが軽量なデスクトップ環境らしい

 sudo systemctl enable lightdm
 sudo systemctl set-default graphical.target

 

・RealVNC Server インストール
 sudo apt install realvnc-vnc-server realvnc-vnc-viewer -y

・VNC有効化:
 sudo raspi-config
 ・Interface Options → VNC → Enable
 ・Display Options → Resolution で仮想解像度設定
 
・競合防止 & ディレクトリ準備
 WayVNCや他のVNC実装を停止(衝突回避) 
 sudo systemctl disable --now wayvnc
 
 VNCの設定ディレクトリ作成:
 sudo mkdir -p /home/nya/.vnc /root/.vnc
 sudo chown nya:nya /home/nya/.vnc

 サービス再起動:
 sudo systemctl restart vncserver-x11-serviced
 
 ポート確認:
 sudo netstat -tulpn | grep 5900
 0.0.0.0:5900 / :::5900 がLISTENならOK。
 
・Windows/Macから接続
 VNC Viewer をインストール(RealVNC公式)
 アドレス:<Raspberry PiのIPアドレス>
 ユーザー名:nya
 パスワード:ユーザーパスワード
 
他にも必要な手順があったかもしれない。素人では良く分からない。
各コマンドで具体的に何をやっているのかも、実は良く分かっていない。
 
まぁ、とにかくChatGPTと、長い長いやり取りをして、ついに、動作した↓
思ったより動作がスムーズで特に支障は無い

なお、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で接続できるようになる。
 
これで、Raspberry Zero 2にキーボード、ディスプレイ等つながずに、いろいろ遊べる環境が出来た。
 
 
ああ、大変だった
素人のおじさんには、なんとも重い作業なのであった。
でも、なんとかなって良かった。
Linuxの操作はどんなものか、少しだけ分かったような気になっている。
 
 
「重いという事なら、おいらは負けないのニャ」

うん、確かに・・