RPi5でVM遊び (2) qemu-system-x86がマルチにならない

忍耐の限界を超える,と言いながら,その後も時々怖いもの見たさでDebian x86_64の仮想マシンをRaspberry Pi 5 Model B (RPi5)で動かしています.

先程気がついたのですが,仮想マシン側でCPUを上限の4個に設定し,実際仮想マシンでは4つのthreadをフルに使っていますが,ホストマシンではqemu-system-x86のCPU占有率は100%前後で,1つのコアしか使っていないようです.

このスクリーンショットは,仮想マシンのデスクトップの右端とその下のホストのデスクトップのデスクトップの右端で,どちらのデスクトップにもgkrellmがありCPUの動作状況などを表示しています.

左側の仮想マシンではたしかに割り与えられたCPU4個をほとんどフルに使用していますが(上4つのグラフ),ホスト側では1個のCPUがフルに使われているだけの状況(同じく上4つのグラフがCPU1〜4ですが,このスクリーンショットでは上から2番めだけがフルに稼働しています.使用されるCPUは時々で変わります)です

もちろんネイティブのARM64の仮想マシンの場合は,仮想マシン側のCPU稼働率がそのままホスト側に反映します.

x86のエミュレーションでもホストの4個のCPUが使われれば,今のおそすぎる状況から4倍速くなることが期待できます.

しかし,ざっとネット検索したところでは解決策どころか,この状況を問題と取り上げている記事も見つかりません.

topで見ても同じです.

zram (5) resumeの問題

zramの設定について,自己完結のために記事を書きましたが,自己完結していないので補記です.

Debianのクリーンインストールをデフォルトで行うと,ルートパーティションの後ろにswapパーティションが作られてしまいます.

/etc/fstabからswapの行を削除しても次に起動するとswapパーティションが使われています.fdiskでswapパーティションを削除するという強硬策に出ると,さすがにディスクのパーティションを使用したswapはしませんが,起動がやたら遅くなります.

これは随分前から何度も経験している “RESUME” の問題です.initramsfs内の起動設定でRESUME用にswapパーティションを必要とするため,マウントしたいけどできずタイムアウトまで無駄に時間を浪費する,ということです.

仮想マシンに独自にRESUME機能をもたせても意味がありませんから(仮想マシンとしてresumeできる),ここを無効にするのですが,distroにより流儀が違うようです.

Manjaroに関しては,当blog内に記事がありました

Debianに関しては,/etc/initramsfs-tools/conf.d/resumeの一行だけあるRESUMEの行をコメントアウトすればよいです

3年前の記事です.何年か周期で同じことを繰り返しています😥
当然/etc/initramsfs-tools/conf.d/resumeを削除しても良いですが,残しておけば後で何かの手がかりになるかもしれません.

RPi5でVM遊び

Raspberry Pi 5 Model B (RPi5)は速いです.そうだこれだけ速いならVM遊びをしよう,ということで最初は無謀にもx86_64の仮想マシンを動かしてみることにしました.

別のx86_64マシンで動いているDebian x86_64 (AMD64)の仮想ディスクイメージをコピーしてきてチョチョイのちょいとおまじないをしたら動きました.

Raspberry Pi 5 Model B上で動くx86_64 Debian (QEMU-KVM使用)

しかし,遅い.遅いにもほどがあるというほど遅く,何かちょっと設定するだけでも忍耐の限界を超えるので人間の方にまだダメージが少ないうちにやめときました.

AppleのM1のMacではx86のソフトがx86の実機より速く動くという話を覚えていたので,少し期待しましたが,無理な話でした.

まだマシだろうということで,ARM64のソフトを動かしてみることにしました.最近いじりなれていて楽なのでDebianにしました.ほとんどDebianと同じであるRaspberry Pi OSをホストとして動くDebian ARM64です.net-instのcdromイメージを使って更からインストールです

スピード的には十分使える速度で,たぶんRaspberry Pi 4 Model B (RPi4)の実機より速いと思います.しかし,そのままほっといて食事から戻ってみると,死んでいたようなことが何度かあり,安定性には難があるようです.

Raspberry Pi 5 Model BのRaspberry Pi OSのもとで動くDebian ARM64.どちらもデスクトップはKDE Plasma Desktop.
作っては消す箱庭遊び.
一回失敗して,もう一回更に戻してインストールし直しました.まさに箱庭遊びです.

RTSPの視聴が不調 (2) マクドもffplay

関東ではマックといいますが,フランスではマクドというらしいです.

VLC macOS版の3.0.20 (Intel 64bit版)も,うちのカメラのRTSPを表示してくれなくなりました.ずっとこのバージョンのままのような気もするので,カメラ側の仕様が変更になってコンパチビリティーが失われたのかもしれません(少し前にカメラのfirmwareのupdateがありました).

Raspberry Pi OS版のVLCも含めて症状は同じで,カメラに接続したその時の画像が静止したままです.システムもVLCも生きていて,

killall vlc

で止められます.

それでマクドミニの方でもffplayを試してみようかと思ったら,当然ですがX用しかなく,まずXQuartzをupdateしてからMacPortsでFFMPEGをインストールしました.

その結果大きな問題なく動きました.

正常に動いた場合のVLCと比較して,Raspberry Pi OS版と同様に小さいブロックノイズが時々出ます.また時間遅れがかなりあります

VLCでは出ません.
遅れが蓄積していくかは検証してません.

RTSPの視聴が不調

防犯カメラに内蔵されているReal Time Streaming Protocol (RTSP) サーバーに接続して防犯カメラの映像をスマホ専用の防犯カメラアプリだけでなく,あちこちのPCで見る,というのを試しています.なかなか実用に至らないのでまだ「試して」います.

見る側は現状ではMacintosh 2台,Raspberry Pi 5 Model B (RPi5), Raspberry Pi 3 Model B+ (RPi3+), Raspberry Pi 3 Model B (RPi3)がそれぞれ1台です.RPi5はPC用の2Kモニターに,RPi3とRPi3+はそれぞれ別の地デジテレビのHDMIポートにつないでいます

アプリはいずれも VLCを使用してきました.しかし,最近どうもVLCが不安定です.RTSPサーバーも不安定でよくフリーズしたり落ちたりしますが,RTSPサーバーが生きていてもVLC側の接続が切れてしまうことがあります.特にCPUパワーの小さいRPi3とRPi3+でトラブルが多いですが,Mac版も以前と比べて動作が安定しません.

そこで,VLCはやめにしてffplay (FFMPEGの一部)に切り替えたところ随分安定になり,サーバー側のトラブル以外止まることは少なくなりました

ffplayは動作は安定ですがどうしたものか,ブロックノイズが多いときは数秒おきに出たりと,面積はあまり大きくなく実用上は差し支えありませんが,気になるレベルで出ます.

今度VLCが安定になったら,updateをしないように設定しときます.

ただし,テレビ側の音声入力への仕様が辛いようで音声は出ません(起動後しばらく出ることもありますがじきに途絶えます).
ただし,Mac版のFFMPEGはX対応(XQuartz)のものしかなく試せないことはないですがあまりやりたくないので今のところ使っていません.