Raspberry Pi をWi-Fiルーターに (2)

Fan付きケースに入っているRaspberry Pi 3 Model B+(左)とパッシブなケースに入っている同Model B

ほんの昨日まではAirMac Time Capsule 3TBの電源を抜き差しすればしばらくはWi-Fiルーターの機能をしていましたが,今日になって電源リセットも効かなくなりました.

それで,実験には使えるが実用的ではないと結論した,Raspberry PiによるWi-Fiルーターを実用運転することになりました.ハードウェアはRaspberry Pi 4 Model B (RPi4)です.

厳密にはブリッジ機能にしているのでルーターというよりはアクセスポイントといった方が良いかも知れません.

しばらく動かしてみると,昨日の実験よりは安定しています.しかし同時にRTSPを受信するためにVLCを動かすとVLCは安定しません.

また,RPi4ではもったいないので,これからRaspberry Pi 3 Model B+ (RPi3+)をWi-Fiアクセスポイントに仕立ててみます.

Raspberry Pi をWi-Fiルーターに

どうも長年使ってきたAirMac Time Capsule 3TB1が不調なようなので,新しいWi-Fiルーターを購入しなければなりそうです.その前に,Raspberry Piを使ったWi-Fiルーターがどのくらい使えるものか試してみました.

AirMac (AirPort) Time Capsule.2014年購入

これはある意味確立された技術です.Raspberry Pi 4 Model B (RPi4)を使用してテストしました.

まずはGeminiに聞いてセットアップしました.特に引っかかる点もなく,結果的にIP マスカレーディングによる独立したサブネットとしてWi-FiのLANが構成できました.

これでも良いのですが,IPv6が通らなかったのでブリッジタイプにすることにしました.

ブリッジはこちらの記事を参考にしました.

こちらも特に引っかかる点はなく,ブリッジができました.IPv4は有線LAN内のgatewayのdhcpdからアドレスをもらい,IPv6はネイティブです.

インターネットアクセスのスピードは30Mbps程度です.

これでしばらくテストしようかと思いましたが,どうも接続が安定しないので早々に切り上げました.

まあ,結論としては実験的には使えるが実用的ではない,でした.

  1. 調べたら2014年6月にクレジットカードの引落がありましたから,同年4〜5月の購入と思われます.12年間よく働いてくれました. ↩︎

RasPi 3でWayland

いやー,Gemini君のおかげで長年の問題が解決しました.

Raspberry Pi 3 Model B (RPi3)および同Model B+ (RPi3+)でATOM Cam 2の発するRTSPをモニターしてきました.ただこれがWaylandではうまくいかずXorgでやってきました.今回Geminiに聞きながらWaylandにしました.

これまでWaylandで問題になるのは,

  • 起動時に自動起動できない
  • 起動後に手動でVLCを起動しても,HDMIで接続しているデジタルテレビの電源をOFFにしてしばらくしてONにすると映像が来ない

の2点で,これは日常的に使うには致命傷に近いです.まずテレビをOFF/ONすると消えてしまう点について相談しました.

Geminiの回答を引用しますと,

  • GUIでの設定: メニュー > 設定 > Raspberry Piの設定 > ディスプレイ タブから「画面のブランク」を無効にします。
  • 設定ファイルでの対応: ~/.config/wayfire.ini を開き、以下の項目を確認(または追記)してください。
[idle]
dpms_timeout = 0
screensaver_timeout = 0

とのことで,この通りにして解決しました.

こうなると自動起動も解決したいです.RPi3(+)を起動し,まだPIXEL1のデスクトップが表示される前にsshでつないでtopコマンドで状況を見ると,vlcが一瞬見えますが,実際には起動してくれません.

起動の.timerファイルのOnBootSecなりOnStartupSecの時間を3minとか5minにしても,起動直後にvlcが見えて実際には動作してくれません.

これはひょっとして,RPi3(+)はReal Time Clock (RTC)がバッテリーでバックアップされていないから起動時は1970年1月1日0:00とかになるはずで,それからカウントしているのではないかと思い当たりました.

既に56年経っていれば3分も5分もとっくの昔で,XorgやWaylandが起動するのを待たずに即時起動されるわけです.

Geminiに聞くとまさにそのようで,systemd-time-wait-sync.serviceを起動して,vlcを起動するrun_vlc.serviceでは,

[Unit]
Description=My delayed service
# 時刻同期が完了するまで待つ
After=time-sync.target
Wants=time-sync.target

とするのが肝要とのことで,この既述をしてrun_vlc.timer内で,

[Timer]
OnBootSec=15sec

とすることでうまくいきました.

この辺については,Xorgでは動き,Waylandでは動かないというのは,それぞれの性質によるようです.

  1. Raspberry Pi OSの標準desktop manager. ↩︎

reset-failed

何気なくroot権限で1

systemctl status

で全体を眺めようとしたら,赤い字で “degraded” と出ます.

これまでも出ていたと思いますが気にしていませんでした.せっかくですからAI (Gemini)に聞いてみました.

systemctl --failed

で,certbot.timerであることがわかりました.以下省略しますが,もともとSlackwareでLet’s Encryptから証明書を “手動” で発行してもらっています.その場合,自動で更新できないようです.どっちみち管理しているもう一か所も手動なので,いつも2台続けて更新作業をしてきました.ですので,certbotによる自動更新を止めます.

systemctl disable --now certbot.timer
systemctl reset-failed certbot.service

これでめでたく “degraded” が消えました.

  1. 筆者はSlackware流儀のため,システムのメンテはroot権限で行いコマンド毎のsudoは使いません. ↩︎

Moving to RPi OS (debian)

当BLOGの前身はもともとはx86_64のSlackware64で動いていました.それをSlackware ARM 14.xに移行したのは2016年頃であったようです.

Slackwareを使っているといつも遭遇するのですが,ソフトの陳腐化です.パッチレベルでは新しいものが配給されますが,メジャーバージョンのupgradeは基本的にありません.それで14.2でしびれを切らせていた頃15.0が出てくれました.

そのSlackware ARM 15.0に移行したのが2022年4月です.それから3年ちょっとですが,いくつか前述のように最新のソフトをキャッチアップしない故の不具合が出てきました1詳しくは書きませんが😓

長年愛用してきたSlackwareを離れてRaspberry Pi OSに移行することにしました.まあそれなりに慣れたdebianみたいなもんです.

GUIなしでRaspberry Pi 4 Model B (RAM 4GB)に仕立てて,うまくいったらサーバーをスイッチし,さらにRaspberry Pi 5 Model Bにして,GUIもいれます.

なかなか前途は多難だと思いますが,ひと頑張りしてみます.