zram

Debianのサーバーを立ち上げましたが,久しぶりにLinuxいじりの気分になって,Manjaro ARMを復活させたりして遊んできました.

その中で気がついたのは,旧来,swap専用パーティションやルートディバイス上のファイルをswapに使ってきましたが,最近のdistroではzramというディバイスをswapに使っていることです.

zramについては,ネットで調べればいろいろ詳しく書いてあると思いますが,主記憶の一部を仮想的なディスクに使うものです.同じく主記憶を使うtmpfsとの違いは,保存するデータを圧縮する点のようです.

もちろん,旧来のディスク(実ディスク)のswapも併用可能ですが,zramにうんと高いプライオリティーが与えられて,実ディスクの方に書き込まれることはほとんどないようです.

この方法,Raspberry Piなどディスクとして書き込みが低速なSDカードを使っている場合特に効果的なのはいうまでもありません.

残念ながらSlackwareARM 15.0ではデフォルトではzramが使われませんが,ネットの情報を参考にして設定したら,うまく動くようになりました.

$ swapon
NAME TYPE SIZE USED PRIO
/dev/sda2 partition 4G 0B -2
/dev/zram0 partition 4G 0B 100

こんな感じです.

下記のページを参考にしました.元記事ではzram0〜3までの4つ,それぞれのサイズを512MBにしていますが,筆者の場合は,zram0ひとつだけ作って,その代わりサイズを4GBにしました(RAM 8GBのマシンです).

100など.

お手軽簡単な仕組みははまると超難解

とあるDebianのサーバーですが,MariaDBの移植は予想外に簡単にできました.昔のx86 32bitマシンで使っていたデータベースのネイティブなデータを新しいx86 64bitのデータのディレクトリーに展開しただけです.

続いて,phpMyAdminをインストールしようと調べてみると,Debianにはパッケージがあって,apt install phpmyadmin で基本的にはうまく行くようになっています.

ところがどっこい,このパッケージに付属しているインストールスクリプトは,まだMariaDBなりMySQLがインストールはしてあるが使ったことがない状態を前提としています.

rootのパスワードを設定するところでエラーが出て,提示された次善の策3〜4の選択肢のうち, “Ignore” を選びましたが,そのあとの経過は芳しくありません😓

いろいろ調べたり,自分で考えたりして,2時間ほど試行錯誤しましたが,結局あきらめて, apt remove phpmyadmin をしました.

たぶん,MariaDBのuser databaseから,rootを削除して,もう一度, apt install phpmyadmin を実行すればいいんじゃないかと思います.あるいは,普通にphpmyadminのサイトから公式のパッケージをダウンロードして,自分で展開した方が楽かもしれません.

いずれにせよ,また次回にします.

そりゃまあ既にrootのパスワードは設定してあるから.

Systemd

世の中みんなsystemdになってきました.筆者が最初にいじったsystemdのシステムは,1〜2代前のRaspberry Pi OSで,たぶん2017年頃だったと思います.Raspberry Piに赤外線リモコンのソフトを組み込んだ時,デーモンの起動にsystemdを使いました.

その後はたぶん,Gentoo, Manjaro, Debianをインストールして評価して,いつものように,習うより慣れろ的にやってきました.

今回,とあるサーバーの更新に際して,慣れたSlackwareではなく,次のLTSへのupgradeもオンラインでできることを期待して,Debianにしました

で,いろいろ必要なサービスを設定していくのですが,そのために細かいことまでsystemdに対応するようservice設定をしているところです.設定が終わったら,

systemctl start サービス名

で,起動して,動作を確認する場合は,

systemctl status サービス名

なので,キーボードの上矢印を押して前のコマンドを編集するわけですが,まん中のコマンドを書き換えるのは,ちょっとやりにくいなと感じています.

systemctl サービス名 コマンド

というシンタックスにして欲しかったです.

それはさておき,困るのは,何か困った時に,

debian 困った事柄

で,ネット検索しても.systemdでない方の情報が圧倒的に多いことです.

いちいち検索のキーワードにsystemdを入れるか,あるいはdebianは入れずに,

systemd 困った事柄

で検索するようにしています.

実用的な用途のためのインストールではなく,インストールのためのインストール😓
Debianでそう呼ぶかは知りません😓
根こそぎupdateをSlackwareの場合リモートからできないため.

Manjaro ARM復活

RaspberryPi OS以外のARMのLinux distroでMozcは使えますよね,あ,でも実例が示せない,ということで久しぶりにManjaro ARMをインストールしてみました.サーバーの予備機の位置づけのRaspberry Pi 4 RAM 4GB (RPi4 4G)です.

しかし,新規インストールからどうやってもMozcが使えません.昔の下卑た言い方でいうと「やきが回った」ようです😓 省略しますがいろいろやりました.fcitx (古いversion4のほう)も,fcitx5も試しましたが,動いてくれません

また,けしからんことにjoeがなくて,ネットで調べるとしばらくupdateされていないから,去年のいつか,Manjaroから削除されてしまったそうです.

記憶が正しければ,去年まではMozcが使えていたはずなので,どこかに去年いじっていたManjaro ARMのバックアップはないかなとあまり期待しないで探したらありました.2021年3月23日のものです.

SSDのvfatパーティションに/bootの内容を,残りをext4のパーティションにrsyncに–deleteオプションを付けてコピーしました.

RPi4 4GにSSDをつないで起動すると,ちゃんとManjaroのログイン画面まで進みます.たいしたもんです.

しかし,ここから先が苦難の道です.わずか1年3か月前の状態なのに,GUIのupdaterではupdateできません.

あちこちを参照して,まず(以下全てroot権限),

pacman-mirrors -f

をしました.これは成功しますが,その後のupdateではエラーが出ます.エラーメッセージにlibcanberraとlibcanberra-pulseがなんだかんだ言うので,その2つを,

pacman -R libcanberra libcanberra-pulse

で削除しました.よく見ませんでしたが,依存性のあるたくさんのパッケージが削除されました.それでも,次に,

pacman -Syyu

をしたら,今度は成功します.起動するとシンプルなグリーターが出ますが,パスワードを入力してリターンしても先に進みません.

そこでさらにあちこちの情報を参照したりしなかったりして,以下のパッケージをインストールしたり削除したりまたインストールしたりしました.

  • gnome
  • gdm
  • sddm

最終的には,gnomeとgdmは削除して,

ここら辺の記事を参考に,sddmとkdeのパッケージについて再インストールしたところ,無事KDE plasma desktopが起動するようになりました.

ここまで何とか来ましたが,マウスポインターの動きが遅くて使い物にならなくなりました.これは “known issue”だそうです.

要は,/boot/config.txtの dtoverlay=vc4-fkms-v3ddtoverlay=vc4-kms-v3d-pi4 に書き換えればよいです.

Mozcもjoeも使えます.あちこち壊れている可能性もありますが,updaterは “Up to date” といいます.

やっぱりバックアップは取っとくもんです.

復活させたManjaro ARMでは,fcitx5がインストールされ,機能しています.
Powered USB HUB経由.SSDをRPi4 4G本体直結ではブートしません.
libcanberraとlibcanberra-pulseは,update完了後に再インストールしておきました.何に使うかよくわかりませんが😓

SlackwareARM 15でMozcはNG

ついでに,SlackwareARM 15でも,fcitx-mozcのbuildを試してみました.下準備としてのzinniaは難なくbuild & installできました.

fcitx-mozc本体に関しては,748ステップとかのbuildは完了しますが,そのあとの過程でエラーが出てしまいます.

SlackwareARMでGUIを使うつもりはないのでこれ以上はやめておきます

現在Slackwareをインストールしている唯一の実機(Raspberry Pi4).
あとで,うんと暇になったら,もう少しちゃんとしたレポートを書くかもしれません.