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とか5miniにしても,起動直後に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. ↩︎

ブラウザのベンチマーク (2)

バッテリー駆動 & ファンレスの自然空冷(手前のMacBook Air M4)で,SpeedoMeter 3.1でこれだけのスコアが出ることをApple Siliconを使ってない方々はご存じない.奥は強制空冷のM4 Mac mini.

以前,手持ちのいろんなPCの環境でSpeedoMeter3.1によるベンチマークを測定しました.

今回Raspberry Pi 4 Model B RAM 8GBにRaspberry Pi OS 13.4 (Trixie)を走らせてFirefoxで測定しました.スコアは0.668で最低新記録を更新しました.

Raspberry Pi 4 Model B RAM 8GB Raspberry Pi OS 13.4 Firefoxによるベンチマークスコア

M4 Mac miniでx86_64(AMD64)をエミュレートするより遅いとはなかなかです😓

比較表をupdateしました.

DescriptionSafariFirefoxChrome (Chromium)BraveOptionalComment
M4 Mac mini51.740.056.053.8
Macbook Air M450.639.256.353.7
M4 Mac mini w/Rosetta 249.916.60.785Intel binaryをRosetta 2で動かす.Chromeについては本文参照
Intel Mac mini (2018)19.913.719.918.9Core i7 6-core 3.2GHz
Lenove ノートPC17.818.0 (Edge)Core i7-10750H 2.60GHz
Manjaro Linux AMD6411.17.26 (Konqueror)Core i7-4790S 3.20GHz
Nixos Linux AMD649.7210.9 (Chromium)8.21 (GNOME Web)同上
Mac mini Late 20129.625.8710.69.55Core i7 quad-core 2.6GHz
Raspberry Pi 52.534.73 (Chromium)6.55Raspberry Pi OS 13.3 RAM 8GB
Raspberry Pi 4 Model B0.668Raspberry Pi OS 13.4 RAM 8GB

VLC RTSP視聴が不安定 (2)

しかし,それではシステム全体のセキュリティー上の問題が残ります.そこでGeminiに相談して,VLC関係パッケージのみupdate/upgradeしないようにしました.

dpkg -l | grep vlc

とすると,筆者のシステムでは16のパッケージがあることがわかります.そこで,

apt-mark hold $(dpkg -l | grep vlc | awk '{print $2}')

とする1ことで,以後のupdate/upgradeでholdされた16パッケージは除外されます.

実際にこの状態で最新の13.4にupdate/upgradeして一晩経ちますがVLCは安定してReal Time Streaming Protocol (RTSP) 画像の再生を続けています.

  1. 筆者はSlackware流儀にのっとりroot権限でシステムのメンテをしています. ↩︎

NixOS 〜理想は高いが現実はきびしい〜

NixOSを試し初めて数日経ちます.インストールしてみた環境は,

  1. M4 Mac mini: macOS + UTM1
  2. Core i7実機
  3. Core i7: Manjaro (Linux) + KVM/QEMU

この中で一番サクサク動くのは,1のM4 Mac mini + UTMです.Aarch64だとあれはだめ,これはだめ,という制約は今のところないです.

NixOSを選んだ理由の一つには,昔Slackwareで標準デスクトップに選ばれたことのあるEnlightenmentが選べるということもあります.よく覚えていないのですが,何かキラキラした印象が残っていて,また使ってみたいと思いました.

最初はGNOMEを利用したBudgieというデスクトップにしました.これまで使用したことがない感じなので選びました.アプリケーションの起動は,MacではCommandキーを押してドックとアプリケーションの一覧を表示して行います.あまりそういうスタイルにはなじみがないのですが,だからいいのかなと思いました.

しばらくしてわかってきた頃に,Enlightnmentに切り替えを敢行しました.普通のLinux distroであればCUIやGUIのパッケージマネージャーで行うわけですが,/etc/nixos/configure.nixという設定ファイルをエディターで書き換えます.そこがNixOSの一番の特徴です.そして,

nixos-rebuild switch

というコマンドをroot権限で実行すると,必要なパッケージの追加やデフォルト設定が行われて,rebootすると新しいデスクトップ環境で動きます.

最初のBudgieからKDE Plasmaは問題なく行きました.しかし,期待のEnlightnmentはエラーが出てしまい,切り替えることができませんでした.ネットで調べるとPythonのモジュールの何かの依存性に問題があってしばらくこの状態が続いているようです.

ManjaroでKDE Plasma, DebianでもKDE PlasmaなのでNixOSでもKDE Plasmaにしたままでは何の面白みもないので,そこでKDE PlasmaからBudgieに戻しましたが,マウスポインターが半透明のグレーの正方形(スクリーンショット画像のFirefoxのアイコンの上のグレーの正方形)になって,どういう状況でも変わらず,非常に使いにくくなってしまいました.

ドックのFIrefoxのアイコンの上にあるグレーの正方形がマウスポインターの化けた姿

また,ブートローダーのinstall, updateに何か制約があるのか,3のCore i7のKDE/QEMU環境ではうまく起動しくれません.

一つの設定ファイルの書き換えでシステムを大きく組み替える,という高い理想のシステムを大胆な仕組みで実現しようとしていて,そこは大いに評価したいですが,実用的にはなかなか厳しいかなと思います.

Core i7 の実マシンはある程度「評価」してまたDebianに戻します.

  1. MacBook Air M4 + UTMでもインストールしましたが,本質的にはM4 Mac miniと変わらないので割愛. ↩︎

RPi5 is in charge now

約5日間に渡り,Raspberry Pi 4 Model B RAM 8GBで試験運用を続けました.

サーバー(https, samba等)としてのレスポンスは問題ありません.brute-force attackなどに対しては適度に遅いと言えるかもしれません.

GUIコンソールでFirefoxを用いてWordPressの管理や投稿・編集をするのも十分速いとは言えませんが,ストレスになるほど遅くもありません.

ということで一応の成果を見て,本来のRaspberry Pi 5 (RPi5) RAM 8GBに交代しました.

予備用にRPi5をもう一台買うべきと考えていましたが,RPi4が十分使えるので予備用の位置づけにします.来たるべきRaspberry Pi 6の発売を待ちます.