Raspberry Pi Zero 2 Wを使って、ここまで何とか作業してきた。
ここで、いよいよWebラジオの製作にかかろうと思ったら、
Raspberry Pi Zero 2Wが起動しなくなった。
あれれ?
SDカードを抜いてPCに挿しても認識してくれない・・・
SDカードが壊れている・・・
ファイルシステムが壊れてるとかじゃなくて、物理的に壊れているっぽい。
仕方が無いので新しいSDカードを用意してOSのセットアップから始める。
前にやったので、その通りにしてみるが、また上手くいかない。
ChatGPTとやり取りして動かした結果が以下
まずWindowsのコマンドプロンプトを開いてsshでログイン
SDカードが壊れている・・・
ファイルシステムが壊れてるとかじゃなくて、物理的に壊れているっぽい。
仕方が無いので新しいSDカードを用意してOSのセットアップから始める。
前にやったので、その通りにしてみるが、また上手くいかない。
ChatGPTとやり取りして動かした結果が以下
まずWindowsのコマンドプロンプトを開いてsshでログイン
ユーザー名がnyaなので
ssh nya@raspberrypi.local
ログイン出来たら
・RealVNC Server インストール
sudo apt install realvnc-vnc-server realvnc-vnc-viewer -y
sudo apt install realvnc-vnc-server realvnc-vnc-viewer -y
・VNC有効化:
sudo raspi-config
・Interface Options → VNC → Enable
sudo raspi-config
・Interface Options → VNC → Enable
・他の VNC サーバーを停止
sudo systemctl stop wayvnc
sudo systemctl disable 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 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
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でリモート接続出来るようになった。
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
中身は
#!/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
保存してリブート
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カードはがダイソーで調達したものだから、と言う訳でもないと思うのだが、壊れた理由は良く分からない。
まぁ、でも、これから試してみようという人にとっては まとまってて良かったのかも・・・等と自分を慰めるのである。
「これも修行のうちニャ、そのうち悟りも開けるニャ」
「これも修行のうちニャ、そのうち悟りも開けるニャ」
確かに・・悟りを開いた仏様のような お顔ですな


