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.
作っては消す箱庭遊び.
一回失敗して,もう一回更に戻してインストールし直しました.まさに箱庭遊びです.

Debian x86 32bit PAEのGUI動く

Debian 9から飼っているx86 32bit PAEの仮想マシン(もとは実マシンと思われます)のGUIがいつからか動かなくりました

Debian 9は2017年6月17日にリリースされ,Debian 10は2019年7月10日ですから,最も古ければ6年半,少なくても4年半前のものです.

ふと思ってビデオをvirtioからQXLに替えてみたところ動きました.VGAでも動きます.まだ当分飼っておけそうで安心しました.

仮想マシンは箱庭みたいなもんで気に入らなくなるとすぐに消してしまうので,最も古い貴重なものとして今後もメンテしていきたいです.

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を動かしてみます.

あとでも良いのですが.

Raspberry Pi OSのvlcはRTSP OK

2023年11月3日(金) 22:00 JSTに確認したところ,Raspberry Pi OS Bookworm 12.2のvlc 3.0.18で,RTSPを見ることができました(音声についてはうまくいっていませんが).USB接続のSSDで稼働しているRaspberry Pi 4 Model Bと,SDカードで稼働しているRaspberry Pi 3 Model B,同じくSDカードのRaspberry Pi 3 Model B+で確認しました.

なお,Manjaro ARM, Manjaro AMD64, Debian AMD64のそれぞれの正式配布によるVLC (3.0.18〜20) は依然としてRTSPの視聴ができません

これもあくまで当社調べですが,同じソースのRTSPに接続した場合,ffplayよりもvlcのほうがCPU loadが低い場合が多いです.

Slackware64は,公式ではないですがAlienさんのbuildしたものが使えます.
Manjaro ARMは再確認中です.

RasPiでDebian使いたかったらRaspberry Pi OS

何がしたいかというと,Raspberry Pi 4 Model B (RPi4)でDebian + KDE Plasma Desktopを動かし,fcitx5+Mozcによる日本語入力をしたいというのが最終目標です.

紆余曲折

この節は,他の人,というか自分自身にとってもなんの役にも立たない愚痴です

そもそもなんでRaspberry Pi OSでなくてDebianなのかというと,Raspberry Pi OSの標準DesktopであるPIXELが気に入らんのです.なんとしてもManjaro ARMのように,KDEを動かしたいのです.「だったら,Raspberry Pi OS LITEをインストールして,そこにKDEをインストールすればいいじゃないか」,と思った人は正解です.昨年の6月に私もそれに気がついて,やっていたんです.

しかし,今回なぜすぐにそれをしなかったかというと,Debian Bookworm (12)がリリースされたのが今年の6月10日であるのに,Raspberry Pi OS Bookwormは10月11日です.これは本家を使わなければ時代から取り残されるとの危機感を抱いたのです.

そこで,DebianのサイトにあるRasperry Pi用イメージを試してみましたができがよろしくない.これは好事家によるcontributionなのであまり文句はいってはいけないようですが,起動が遅いうえ,USB-3接続のSSDにインストールすると,upgradeができないという致命的な問題がありました

そこで,Debian ARMの公式のインストールDVDイメージをダウンロードしてドキュメントの初めの方を読んでみましたが,基本的にUEFI対応のハードウエアでないとDVDイメージは使えず,Raspberry Piのようなそうでないハードウエアに対しては,自分でなんだかんだとインストーラー的なものを作らないといけない.

そう,それをやっているのがRaspberry Pi OSのcontributerたちなわけです.寄ってたかって作っているわけですから,好事家の私家版が及ぶ訳はないし,ましてや筆者ごときが逆立ちしたってそれより良いものは作れないわけです.

というあたりをこの週末の作業で悟ったり思い出したりしたわけです.

RPi4でKDE + Mozc

Raspberry Pi OS Lite (64bit)をインストール

説明はいらないと思います.Liteなら数GBのSDカードにコピーできそうですが,手持ちの関係で32GBのmicroSDカードを使いました.

最初の起動では,色々設定があり,素直にしたがって設定をします.その後の起動でネットの接続を確認して,apt update; apt upgradeをかけました.

SSDへのコピー

SSDへのコピーのタイミングはいつも迷いますが,早いほうがupgradeや新規インストールの作業が高速なのは言うまでもありません.しかし,あまり早い段階ですると,そこから先は製作元の想定していない使い方なのでトラブルが発生するリスクが高くなります.

しかし,KDEのインストールでは1000以上のパッケージがインストールされるので,この段階で移行しました.

ご存知のようにRPi4では,USB接続したHDD/SSDからブートも可能ですが,SSDの第1パーティションをManjaro ARMのブート用のままにして,SDカードを差すと第3パーティションをrootにしてDebianが起動するようにしました.

この場合,32GBのSDカードをそのまま使うこともできますが,もったいないので手持ちで一番小さい2GBのmicroSDカード(以下 “小SD(カード)” )をブート用に仕立てました.

ここまで使用してきたSDカードのルートから,Debianが活きたままSSDにコピーすることもできますが,その場合あとでいくつか呪い(まじない)が必要なので,他のLinuxマシンで死んだ状態のSDカードからコピーしました

コピー先は,SDカードの第1パーティションは,MBR式パーティションの小SDカード(vfatのパーティション一つだけ)のvfatパーティションへ,SDカードの第2パーティションの中身はSSDの第3パーティションへ,です.

コピーコマンドはいずれも,

cp -Rdvp  元  先

または,

rsync -artlvd --delete  元  先

です.

Raspberry Pi OSはデフォルトでパーティションラベルでパーティションの識別をしているので,それはそれで楽なので,fatlabel, e2labelコマンドで,起動用の小SDカード,rootパーティションに適当な名前を付け,ブート用小SDカード内のcmdline.txtとrootハーティションの/etc/fstabのそれぞれの該当部分を編集します.

あとは,起動用に新しく仕立てた小SDカードとSSDを接続して,祈りながら起動します.間違いがなければ起動するはずです.

KDE Plasma Desktopのインストール

無事起動したら,いよいよGUIのインストールです.メインというか,root以外の唯一のユーザーでログインして,あとはSlackware的流儀で行くためすかさずsudo -iをします.

まずインストールするのは,sddm, kde-plasma-desktopです.今回はsddmを明示しましたが,いらないかもしれません.

次に,kde-fullです.完了したら,また祈りながらリブートですが,sddmが起動してくれませんでした.

sddm workaround

RPi4を起動しても,sddmが起動してくれません.CUIのコンソールから(root権限にて),

systemctl start sddm

とすると,sddmが起動してKDE Plasma Desktopにログインできますから,なにかタイミングの問題と思われます.

systemctlで,sddmdisableにしてから再度enableにしたり,sddmパッケージを削除して再インストールするというようなオーソドックスな方法を試みましたが,改善しません.

実は,/usr/lib/systemd/system/sddm.serviceに解決のヒントが書いてあります.

略
# If using tty1 and plymouth, sddm will fail till plymouth stops
# consider using:
## After=plymouth-quit.service
# or to forcefully stop plymouth and start earlier:
## Conflicts=plymouth-quit-wait.service
## After=plymouth-start.service plymouth-quit-wait.service
## OnFailure=plymouth-quit.service
略

ところがどっこい,提案してあるどちらを試しても状況は変わらずでした

さて,何をいつまで待てば良いかわからないので,単純に30秒待つことにしました.

具体的には,/etc/systemd/system内に,次の内容で,テキストファイル,sddm.timerを作成します.

[Unit]
Description=Delayed start of sddm

[Timer]
OnBootSec=30sec

[Install]
WantedBy=timers.target

CUIから,

systemctl disable sddm
systemctl stop    sddm   ← 念のため
systemctl enable  sddm.timer

ここで,リブートして,動作確認します.筆者の環境ではうまくいっています.

その後,待ち時間を削り,最終的にOnBootSec=0secにしてもsddmが起動します.

日本語環境

Mozcをインストールする前でもあとでもいいですが,/etc/X11/xorg.conf.d00-keyboard.confというテキストファイルを以下の内容で作ります.ローマ字入力の人には関係ないかもしれませんが,これをしないと,あとでKDEのsettingでどこをどうしてもかな入力で濁点や半濁点,長音記号が使えなくなります.

Section "InputClass"
    Identifier "system-keyboard"
    MatchIsKeyboard "on"
    Option "XkbLayout" "jp"
    Option "XkbModel" "jp106"
    Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

fcitx5-mozc

apt install fcitx5-mozc

して,一般ユーザーのホームディレクトリーに,.xprofileという名前で,

export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS='@im=fcitx'

が中身のテキストファイルを作ります.たぶん,sddmの再起動だけで良いと思いますが,システムごとリブートして確認してみます.

あとは,KDE settingsのキーボード設定やMozc設定や他なんやかんやで使えるようになると思います.

経緯の記録くらいの意味はあるかもです.
LXDEからの派生.
厳密に言うとapt upgradeすると,起動しなくなる.
あくまで当社調べです.
いや,世の中一人ですごいことをする天才はいますが,確率は低いです.
“読者”はこの記事を忘れた頃に読み返す筆者自身を主に想定しています.
この時点ではWifiは使わず有線LANでつないでます.
Manjaro ARMのrootは第2パーティション.
筆者の場合はManjar ARM.
あ,最近した作業のどこかでUUIDで識別しているところもありましたが,どの環境だか忘れました.本筋でないので確認は省略.
システムいじりは一般ユーザとして無責任にsudoを連発して行わず,rootになって責任を自覚しつつ行う.
/usr/lib/systemd/の中身をいじることは推奨されていませんから,/usr/lib/systemd/system/sddm.service/etc/systemd/system/sddm.serviceにコピーしてから改変します.