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

お父にゃんの電子工作

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

Raspberry Pi Zero 2 Wを使って、ここまで何とか作業してきた。

ここで、いよいよWebラジオの製作にかかろうと思ったら、

Raspberry Pi Zero 2Wが起動しなくなった

 

あれれ?

SDカードを抜いてPCに挿しても認識してくれない・・・
SDカードが壊れている・・・
ファイルシステムが壊れてるとかじゃなくて、物理的に壊れているっぽい。
仕方が無いので新しいSDカードを用意してOSのセットアップから始める。

前にやったので、その通りにしてみるが、また上手くいかない。
ChatGPTとやり取りして動かした結果が以下

まずWindowsのコマンドプロンプトを開いてsshでログイン
ユーザー名がnyaなので
ssh nya@raspberrypi.local
 
ログイン出来たら
・RealVNC Server インストール
 sudo apt install realvnc-vnc-server realvnc-vnc-viewer -y
 
・VNC有効化:
 sudo raspi-config
 ・Interface Options → VNC → Enable
 
・他の VNC サーバーを停止
 sudo systemctl stop wayvnc
 sudo systemctl disable wayvnc
 sudo systemctl disable --now x11vnc
 
・VNCの設定ディレクトリ作成:
 sudo mkdir -p /home/nya/.vnc /root/.vnc ←ユーザー名nyaの場合
 sudo chown nya:nya /home/nya/.vnc    ←ユーザー名nyaの場合
 
 sudo systemctl restart vncserver-x11-serviced
 
・Xorg 追加
 sudo apt install --reinstall xserver-xorg xserver-xorg-core xinit -y

・RealVNCはXorgでないと動かないので、LightDM を Xorg で動かすように修正
 sudo nano /etc/lightdm/lightdm.conf

 エディタが開いたら
 [Seat:*] のところを以下のように修正、追加
 greeter-session=lightdm-greeter
 user-session=LXDE-pi-x
 autologin-session=LXDE-pi-x
 session-wrapper=/etc/X11/Xsession
 
・再起動
 
他にも、いろいろやったのでこれで全部かどうかわからない
※)読者の皆様が実際に行う際にははChatGPTにお願いして、具体的なやり方を訊いてください。
 
まぁ、とりあえずRealVNCでリモート接続出来るようになった。
 

次にGUIを自動起動ではなくてsshでログインしたときのみGUI起動するようにする。
最初に起動時はGUIは無しにしておく
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

 ・保存して実行権限を付与:
  sudo chmod +x ~/vncstart.sh

2. SSHログイン時にスクリプトを実行する
   ~/.bash_profile(ログイン時だけ読み込まれる)を編集:
  nano ~/.bash_profile

 

  末尾に以下を追加:

  ~/vncstart.sh

 

これで、ただ電源を入れただけでは、GUIは立ち上がらずsshで接続したときには自動でGUIが立ち上がってVNCで接続できるようになる。
 
 
これでOSの準備は出来たが、これまでやった追加作業もしなければならない

●液晶を動かすためにLuma.lcdのインストール
sudo apt install python3-luma.lcd python3-pil

●日本語対応フォントがインストールされていないので、noto-cjkをインストール。
sudo apt install fonts-noto-cjk

● rpi-lgpioにアップデート
sudo apt remove python3-rpi.gpio
sudo apt install python3-rpi-lgpio 

● I2Sドライバを有効化
sudo nano /boot/firmware/config.txt

ファイルを開いたら以下を追加: 
# PCM5102 用 I2S 設定
dtparam=i2s=on
dtoverlay=hifiberry-dac

保存してリブート
 
● pigpiod を自動起動に設定
sudo systemctl enable pigpiod
sudo systemctl start pigpiod

●pigpioがPCM用タイマを使っているので、PWMタイマーを使う設定にする
sudo mkdir -p /etc/systemd/system/pigpiod.service.d
sudo nano /etc/systemd/system/pigpiod.service.d/override.conf
エディタが開いたら以下を記入
[Service]
ExecStart=
ExecStart=/usr/bin/pigpiod -t 0 -l

保存してリブート
 
一応、前に作った液晶の動作とMP3再生動作のプログラムで動作確認をして、ようやく原状復帰出来た。
 
ああ、また回り道をしてしまった。
SDカードはがダイソーで調達したものだから、と言う訳でもないと思うのだが、壊れた理由は良く分からない。
 
まぁ、でも、これから試してみようという人にとっては まとまってて良かったのかも・・・等と自分を慰めるのである。


「これも修行のうちニャ、そのうち悟りも開けるニャ」
確かに・・悟りを開いた仏様のような お顔ですな