大多数の仮想マシンを壊す

Real Time Streaming Protocol (rtsp)をRaspberry Pi 3 Model B (RPi3)でどう見るかの続きです.

残念ながらManjaroは,RPi3では動かないようです.そこで今度は,Ubuntuを試すことにしました.まずはx86_64 (AMD64)で試してからの方が早いだろうと思い,第2 workstation (WS2)の仮想マシンのUbuntuを久しぶりに動かしてみました.いつupgradeしたか全く記憶にありませんでしたが,LTS 20.04になっていました.せっかくだからこの際,最新の22.04にしようと,ネット検索してやり方を探しながら試みました.で,最後のまじない,

do-release-upgrade

を実行していたところ,突然電源が切れました.すぐに何が起こったか解りました.もともと電源コードが緩いのです.ACスイッチをON/OFFすると電源コードにどうしても触れて,しばらく繰り返すと,プラグが外れてしまいます.

それが解っているので,電源ON/OFFの際プラグを押し込む様にしていますが,しばらく忘れていたところ,一番抜けてはいけないタイミングで抜けてしまいました😓

まあ,最近はjournaling file systemなので,途中でズバッと電源を切ったところで,ファイルシステム(FS)が壊れることは滅多にありません.しかし,do-release-upgradeの途中なのでdpkgデータベースがかなり深刻にダメージを受けているに違いありません.

実際,ネットの情報を調べてaptなんとかかんとかしても,全然前進しません.こういうときのために,バックアップを取ってあります.

しかし,そのバックアップのディスクイメージをコピーすると, “input/output error” とかなんとか言ってコピーできません.rsyncでもcpでもだめです

心配になってそのディスクにあるファイルを調べてみると,ここ1年以内に作ったqcow2以外のqcow2が皆同じエラーを出します.

最初はSSDの問題か,マザーボードのインターフェースの問題か,あるいはSSDとマザーボードの相性の問題か,などと考え,問題のSSDをUSBエンクロージャーに入れて,Raspberry Pi 4 Model B (RPi4)につないでcpやrsyncを試しましたが,同じエラーが出ます.

ということで,ここ1年より前に作った,まあ,知的資産のqcow2は全滅のようです.ほとんどここ数年触っていないファイルで,今回の電源断の時もリードオンリーでさえ開いていないので,電源断が問題とは思えません.

まあ,古い仮想マシンの仮想ディスクなんか,滅多に役に立つことはないので,実害はないのですが,長年熟成してきたのに寂しい気はします.

md5sumでも同様のエラーが出ます.

rtspがVLC playerで開けない 〜Python3のライブラリーも遅い〜

Raspberry Pi3 Model B (RPi3B) にRaspberry Pi OSを走らせている環境で,Mplayerを試したところ,遅れがどんどん蓄積していって,ライブの監視が事実上できないので他の方法を探しています.

Pythonのモジュールで監視カメラを見るという面白い試みを見つけ,試してみました.

結論的にはやはり遅れがどんどん蓄積していくので,事実上リアルタイムの監視用途には使えません.

前の記事で引用した,

を参考にしました.というかそのまんまを試しました.

事前の準備としてpip3にて,rtsp, pysimpleguiのインストールに成功しました.

で,おもむろに本体のスクリプトを動かしてみましたが,「cv2がないよ」,「pilがないよ」というエラーが出ました.

Raspberry Pi OSでは,

apt install opencv-python python3-imagetk.pil

が必要です

これだけの追加で見事に動いてくれました.ただし,冒頭に書きましたとおり,遅れが蓄積していくのは,mplayerと同じです.

元の記事では, “pip” ですが,Python2, 3混在のシステム(Slackware😓)を長い間を使ってきているので,明示的に “pip3″としています.Debian / Raspberry Pi OSにはPython2.xはインストールしてないので,pip3とする意味はありませんが,こういうオジ(イ)さん対策のため,pip3が効くようになっています.
やはり,pipと dpkgの混用になりました.

rtspがVLC playerで開けない 〜dpkgとpip〜

コマンドラインの “mplayer” を,Raspberry Pi 3 Model B (RPi3) のRaspberry Pi OS (64bit bullseye)で試しました.

1920×1200のモニターにほぼフルスクリーンで監視カメラのからのライブ動画が表示できます.

しかし,時間がたつのが遅い😓 たちまち数分遅くなって,自分でカメラの撮影範囲に行って戻ってくると,その時の自分の様子を見ることができます💦

どんどん遅れが蓄積していくので,これは監視カメラのモニターとしては使えません.画質を落としてみれば良いのでしょうが,他の方法を先に探ってみます.

そこで検索して見つけたのが,Pythonのライブラリーを使う試みです.

これは,試みとして面白いです.Pythonのライブラリーの実力を試すこともできます.しかし,Debianのようなパッケージマネージャーにガチガチに管理されているシステムで,言語ローカルなパッケージマネージャーである,pipやcpanを使ってよいものか.いつもそこら辺のところを悩みます.

“そこら辺” は,ゆるゆるのSlackwareは気楽でした.

もちろん,DebianでもUbuntuでもManjaroでも,やっちまえばできるんですが,debian教/Ubuntu教/Manjaro教の人たちに許してもらえるのか.

ディスクイメージを保存した上で,pipで荒らしてみるというのが一番正解かもしれません.Pythonのストリーミング動画ライブラリーが,RPi3では使い物にならないということであれば,復元して他の方法をまた探せば良いです.

rtspがVLC playerで開けない 〜解決というか結論〜

Raspberry Pi OSのVLC playerでrtspが開けない問題ですが,話がDebianまで広がったので,検索したら簡単に答えが見つかりました.

要するに,Debianの方針で再生できないようにしているとのことで,バグではありません.

ということで,Debianの方針が変わらない限り,他のDistroを使うか,他のアプリを使うしかなさそうです.

Manjaroの軽いデスクトップのバージョンをインストールしてSDカードベースで使えないか,試してみることにします

追記(2023/10/07)

ffplay (FFMPEG)を使うことでなんとかなりました → Raspberry Pi 3 でRTSPを見る(結論)

追記(2023/11/7)

その後,Raspberry Pi OSのVLCはRTSPを見ることができるようになりました.

と思ったけど,Manjaro ARM64には,Avahi / mdnsが使えないという問題がありました(後注: 解決済みです).

Manjaro ARMでAvahi/nss-mdnsが機能しない

注: 本件は解決済みです → Manjaro ARMのAvahi解決

筆者のLAN内では,複数台のmacOS機器と複数台のLinux機器が動いています.LAN内のDNSも動いていますが,大抵はBonjour / Zeroconf / Avahiで名前解決して接続しています.

前からどうもRaspberry Pi 4 Model B (RPi4) で動くManjaro ARM64だけ,他の機器につなぐことも,他の機器からつなぐこともできません.とはいえ,DNSを使えば名前解決できるので放置してました.

同じRPi4でRaspberry Pi OSを動かすぶんには,難なく相互に接続できます.また,Intel Core i7の第2workstationのManjaro AMD64(x86_64)版も相互に接続できています.

RPi4でManjaro ARM64を動かしているときだけ,Avahi-daemonも,nss-mdnsも機能していないということです.

自分でbuildして試してみようかな.

[2022年6月23日(木)]

追記: かつても経験

なんか😓 自分のBLOG内にかつてのAvahiの不具合が記してありました.

このときは原因不明のまま,問題となるLinuxマシンのKernelのバージョンが上がったら直りました.いや,このときは直ったようで直ってないようですね😓

しかし,時を経ていつの間にか直ってます.

今回もKernelの問題か,Avahi自体でないところに問題があるのかもしれません.知らんけど.

[2022年6月24日(金)]

追記2: 解決しました