このページは,Linuxが更新されていく中で, 以前の環境を維持するために行ったことをつらつらとアップしています. 同じ思いの人に届いたら幸いです.

cron (crontabのメール設定)

Debian 13(trixie)でcrontabのジョブ出力のメールが
Content-Transfer-Encoding: quoted-printable
になるようになった(bsd-mailxの仕様と思われる)ので, crontab -eにて以下を追加.
CONTENT_TRANSFER_ENCODING=8bit
さらに,場合によっては"Content-Type:"も指定してもいいかも.
CONTENT_TYPE=text/plain; charset=UTF-8

emacsからcannaを使う

通常,ローカルのかんなサーバ(cannaserver)は, UNIXドメインソケット/tmp/.iroha_unix/IROHA経由で接続する. このソケットは,環境によっては(emacs 27 on openSUSE 15.4で確認), /run/canna/IROHAなど他の場所の場合がある.
もし yc.el (Ver. 5.2.x は emacs 23 に対応: 以下の操作はこれ基準) などでcannaが使えなくなったら,まずソケットのパスを確認するとよい.
yc.elの,接続先設定のほかに,新しいemacsで非推奨となったAPIの置き換えや,
関数定義における冗長部分の補正(警告回避)も行い,差分をアップ.

386c386
<                     :remote "/tmp/.iroha_unix/IROHA")
---
>                     :remote "/run/canna/IROHA")
396c396
<     (process-kill-without-query yc-server)
---
>     (set-process-query-on-exit-flag yc-server nil)
2074c2074
< (defun yc-yomi (&optional idx &optional cut)
---
> (defun yc-yomi (&optional idx cut)
警告を無くすために.(emacs 30.1 on debian 13(trixie)にて)
@@ -385,2 +385,4 @@
                      :buffer yc-debug
+                     :family 'local
+                     :service "/tmp/.iroha_unix/IROHA"
                      :remote "/tmp/.iroha_unix/IROHA")
toggle-input-methodがうまく動作しなかったので,yc-input-modeで切り替える様に. (emacs 30.1 on debian 13(trixie)にて)
@@ -3234,8 +3236,21 @@
   (remove-hook 'input-method-activate-hook 'yc-input-mode-function))
 
+(defvar yc-toggle-first-time t)
+(make-variable-buffer-local 'yc-toggle-first-time)
+
+(defun yc-init-buffer-input-method ()
+  "バッファごとに一度だけ current-input-method を初期化して「あ」を表示する。"
+  (unless (eq current-input-method "japanese-yc")
+    (setq current-input-method "japanese-yc")
+    (setq yc-toggle-first-time nil)
+    (force-mode-line-update t)))
+
 (defun yc-input-mode (arg)
   "読み編集モード。
 入力されたローマ字をひら仮名に変換しながら入力するモード。"
   (interactive "P")
+  (when yc-toggle-first-time
+    (yc-init-buffer-input-method))
+
     (when (not (local-variable-p 'yc-input-mode (current-buffer)))
       (make-local-variable 'yc-input-mode))

virshで仮想環境のバージョン

ディストリビューションをアップグレードすると, virshがサポートする仮想x86アーキテクチャのバージョンが変わることがある.
qemu-system-x86_64 -machine helpコマンドで対応バージョンを確認し, 仮想マシンの定義ファイル(XML)内の設定等を変更する.

ログイン履歴情報の変更(last から wtmpdb へ)

ログイン履歴情報を32ビット時間管理の/var/log/wtmpから, データベース(DB)形式のwtmpdbに切り替わる.(debian 13(trixie)から)
※ 2038年問題回避と履歴管理の信頼性と性能の向上

PostgreSQLのタイムゾーン設定

postgresql.confでtimezone, log_timezone の指定を, "Japan"から"Asia/Tokyo"へ変更.(少なくとも17から非対応)

ディスクのデバイス名(/dev/sd?)の固定化

通常の起動ではディスクのデバイス名はデバイス接続の順番になることが ほとんどであるけれど,休止から復帰などの際に順番が変わることがある.
その際の不具合を避けるためには,/etc/fstabや hibernate の記録先 swap のディスク指定をUUID等の固定デバイス名で行うのがベストなのでしょうけれど, 順番になっていると確認せずに/dev/sd?#をつい使ってしまうなど 指定ミスを回避するためには, デバイス名の順番を固定できた方が便利だと思う.
以下の様な udev での制御で(順番通りに)固定できた.
/etc/udev/rules.d/70-persistent-disk.rulesに以下を記述

KERNEL=="sd*", ENV{ID_PATH}=="pci-0000:00:1f.2-ata-1.0", NAME="sda%n"
KERNEL=="sd*", ENV{ID_PATH}=="pci-0000:00:1f.2-ata-2.0", NAME="sdb%n"

※ pci-### は 使用端末の/dev/disk/by-path/で確認.
  ENV{ID_SERIAL} で指定するのも良い./dev/disk/by-id/で確認.
  udevadm info --query=all --name=/dev/sd*でも確認できる

うまくいったと思っていたけど,休止からの復帰で固定できない時があった. やはり,ディスクやパーティションの指定にはUUID等を使うのが正解なのだろう...

SYMLINK+="***\n" でリンクつけすれば,変わることがない.これを利用してもよいかも.

Resizable BAR/Smart Access Memory を有効に

MBの設定で "Resizable BAR" や "Above 4G Decoding" を有効にしても使えない場合,ドライバやGPUのvBIOSのバージョンを確認する.
有効になっているかどうかは,nvidia-smi -qの "BAR1 Memory Usage" の Total が 256 MiB より大きく(GPU搭載メモリの容量に)なっているかで確認できる.

ZOTAC製GPU: vBIOSのバージョンが同じでも中身が違うものがある.
たとえば,GeForce RTX 3090 で VBIOS Version: 94.02.42.00.F1 には 2種類(2020-12-10 と 2021-03-05)あり. 新しい方でないと "Resizable BAR" に対応しない.

NVIDIA GPU: resource sanity check のログ

systemd journal に

{日時} {ホスト名} kernel: resource sanity check: requesting [mem 0x000c0000-0x000fffff], which spans more than PCI Bus 0000:00 [mem 0x000e0000-0x000e3fff window]
{日時} {ホスト名} kernel: caller _nv000722rm+0x1ad/0x200 [nvidia] mapping multiple BARs

と記録される場合は,ドライバのバージョンを確認.
"Resizable BAR" 有効でも, "resource sanity check" が出る場合は, ドライバのバージョンを更に新しくするとよい.(fixed!?)

GeForce RTX 3090 で対応バージョンを確認
470.xxシリーズ: 94以降
510.xxシリーズ: 47.03以降
515.xxシリーズ: 48.07以降
※ 470.xx, 510.xxシリーズでは,計算機を一旦休止して再開すると "resource sanity check" が出力される様になった.

KVM

ハードウェアをアップグレードした際にKVMが動かなくなった場合,
BIOS設定でVMXを有効にする必要がある.(意外と気付きにくいポイントw)