Ubuntu ARM64のVM動く

もう,「だったらなんだよ」って聞こえてきそうですが,Raspberry Pi 5 Model B (RPi5)のKVM/QEMU環境で,Ubuntu ARM64の仮想マシンがめでたく動きました.

CPUは3個割り当てました.UbuntuのサイトにはARM64のDesktop版のインストールイメージが見つからないので,とりあえずServer用イメージから余計なデーモンを追加しないでインストールを行いCUI環境で立ち上がるようにして,

apt install ubuntu-desktop

をして再起動したらGUI環境になりました.最初のうちは起動のたびになんかがクラッシュしたとダイアログが出ましたが,全部Noで答えて使っているうちに,クラッシュの報告もなくなり,安定してきたようです.なぜだか分かりませんが😥

“Settings” 内の “About Ubuntu” は次のように表示されます.

Processorが空欄です😥 問題なく動くので問題ないです.

このあとfcitx5-mozcをインストールして日本語入力もできるようになりました.

ちなみに,stress -c 3 で割り当てたCPU3個に負荷をかけたとき,ホストのCPUは3個がフルになって稼働しています.

左が仮想マシンのgkrellmで表示したCPUの稼働率で,上から3つ目の枠までがフルになっています.右のホストのgkrellmでは切り替わりながら4つのCPUのうち3個がフルになっている様子がわかります.

x86_64のエミュレーションでもこうなってくれればDebian x86_64(AMD64)が4倍速くなるはずです.

さて,Ubuntuの仮想マシンが使い物になるかどうかっていう総合評価ですが,Raspberry Pi 4 Model B (RPi4)やRPi5でホストOSとしてUbuntuを動かしたことがないので正確には言えませんが,今回インストールしたUbuntu ARM64の仮想マシンの体感速度と以前から試しているDebian ARM64の仮想マシンと実機の比較からして,Ubuntu ARM64もRPi4のホストOSとして動かすよりRPi5の仮想マシンのほうが速いのではないかと推定されます.安定性はまだ分かりませんが,スピード的には「使えなくない」レベルと思います.

よほどUbuntuが好きな人には,ネット情報を探してUbuntuをRPi4/5のホストOSとしてインストールするのがベターと思います.

まあ仮想マシン遊び(箱庭)が好きな人の作ってはいずれ消す箱庭の一つとするには良い景色と思います.

3個ではたしてsymmetricといえるのだろうか😥

RTSPの再生が安定しない (vlc)

その後も利用価値のあまりなくなった,Raspberry Pi 3 Model B (RPi3)と同B+(RPi3+)を防犯カメラの映像をRTSPで見るモニターとして利用する試みを続けています.

Raspberry Pi OS (RPiOS)の配布するvlcで一時期RTSPを見ることができませんでしたが,それも使えるように戻してくれたようで,RP3(+)に電源を入れて起動すると,メインユーザーで自動ログインした上でvlcも自動的に起動してカメラからのRTSP映像をHDMIでつないだディスプレーに表示するようにしていますが,どうも不安定で,数時間〜半日前後でvlcがブランク画面を表示するか,ある時刻の静止画のままになります.

OSは生きていて他のマシンからsshでログインできます.

これまで確認しているところ,カメラがトラブってRTSPを吐き出さなくなる場合と,カメラは生きているけれど,vlcがトラブる場合があるようで,他のマシンからカメラにつなぐことでどちらか確認できます.

前者のトラブルの場合,カメラの電源を切って再起動しますが,その場合RTSPにログインするためのUser IDとパスワードが変わるので,クライアントのスクリプトを修正する必要がありちょっと厄介です.しかし,幸いというか,このトラブルよりも後者のvlcのトラブルのほうが多いです.

しばらくvlcの使用はやめて,またffplay (FFMPEG)に戻して様子を見ることにします.明らかにCPU loadはvlcよりもffplayのほうが大きいです.

Manjaro ARM64 ぶっ壊れる

Raspberry Pi 4 Model B (RPi4)をWS(workstation)として使える可能性を一番示してくれているdistroである表記Manjaro ARM64を使い続けてきました.当BLOGの記事からすると2年半とかになると思います.ローリングモデルの性(さが)といいますか,途中でパッケージマネージャーのデータベースにほつれが出てだんだんおかしくなってきました.

コマンドライン版のpacmanではupdate/upgradeできるのですが,GUI版のpamac-managerではなにもしなくてもいつも”Up to date”になる状態が1年以上続いたと思います.それに本日終止符が打たれました.コマンドラインのpacmanで依存性に衝突が生じてupdateができなくなりました.

たぶん,パッケージデータベースを修復する方法もあると思うのですが,このWSではあまりややこしい設定はしていませんので,新規インストールをすることにしました.

といっても完全に新規でなくて,夏頃から取り組んできたRTSP表示のためManjaro AMR64をSDカードにインストールしたものが使わずに放置されていたのでそれを使いました.

/bootのパーティションはvfatにフォーマットした2GBのSDカードにコピーし,ルートパーティションはSSDの旧Manjaroのあったところにコピーです./boot/cmdline.txtと/etc/fstabを修正して起動しました.その後でバックアップからメインユーザーのデータをコピーしてほぼ元通りです.

Manjaroにjoeがないと以前騒いでいましたが,素直にコンパイルできるパッケージなので自分でmakeして/opt/binに置きました.

Raspberry Pi OSにphpMyAdminのインストール

標記の件,あちこちに書いてあると思いますが,自分ナイズした手順をメモっときます.

前提としては,別所ですでにphpMyAdminが動いていた/var/lib/mysql以下をバイナリーで手元に持ってきて,データベースとして正常に動作している状態であることです.

apt install phpmyadmin

いろいろ依存ファイルがインストールされ,最後にdpkg-なんとかで設定するかと聞いてきますが,すでにphpmyadminが動くように設定済みのMariaDBが動いているわけですから “No” です.

これでApache2を再起動してもphpMyAdminは機能してくれませんでした.設定が足りていません.

設定の最初ですが,phpMyAdminというデフォルトのpathは攻撃者の格好の標的となりますので,/etc/phpmyadmin/apache.confの最初の方にあるAliasを他の人が想像しにくいように変えます.

次に,Debian的に進めるために,/etc/apache2/conf-availableに,/etc/phpmyadmin/apache.confのsymlinkを貼ります.

cd /etc/apache2/conf-available
ln -s /etc/phpmyadmin/apache.conf phpmyadmin.conf

次に,Debianらしいコマンドa2eanbleを実行し,apache2の設定をreloadすれば完了です.

a2enable phpmyadmin.conf
systemctl reload apache2

次はLDAP

次は,OpenLDAPをインストールして,これも別所のデータをバイナリーで移してみます.これはx86からARMにもってきたときは失敗したと記憶しています.

slapdが動くようになったら,phpLDAPadminを動かしてみます.

あとでも良いのですが.

Slackware ARMとRaspberry Pi OS 64bitのMariaDBはバイナリーコンパチ

標記の件確認しました.そうだろうとは思っていました.逆にそうでなかったなら何なんだろうとも思っていました😥

これで,Raspberry Pi 5導入時にサーバーのOSをRaspberry Pi OS 64bitにする最大の懸念が払拭されました.

一応確認した方法を書いときます.

Slackware ARMのMariaDBを,

/etc/rc.d/rc.mysqld stop

で停止させてから,/var/lib/mysql以下をtarで固めてsftpするか,rsyncを使ってRaspberry Pi OS 64bitのマシンの適当な作業ディレクトリーに置いときます

以下はRaspberry Pi OS 64bit側での作業です.

apt install mariadb-server

で,mariadbのサーバーをインストールします.これだけでMariaDBが動き出しますが,念の為動作を確認してからおまじないを実行します.

systemctl status mariadb
mysql_secure_installation

これで,rootだけログインできる空のデータベースが動き出します.ここで一旦,

systemctl stop mariadb

で,MariaDBを停止させて,

cd /var/lib
mv mysql mysql-empty

あとは,Slackware ARMから持ってきたデータを展開してから,/var/lib/mysqlとして置きます.念の為,/var/lib/mysql以下のオーナー・グループがmysql:mysqlになっているか確認してなってなければ修正します.

これで,

systemctl start mariadb

として起動を確認して,あとはSlackware ARMで使っていたユーザーでログインして中身を確認します.

コマンドラインだけでは不便なので,phpMyAdminをあとでインストールしたいと思います.

Slackware ARMのMariaDBは再起動しておきます.