長いあいだ世話をしてきた WordPress で作られたサイト (ここではない別のところ) の運用を、新しい担当者に引き継ぐことになった。さしてアクセスがあるわけでもなく、といってなくすわけにもいかないサイト。複数人の書き手がいて、特に詳しい人もいないのに誰かが管理者の役を引き受けなければならないような、そんなサイト。
引き継ぎのメモを作っているうちに、次から次に思いついてどんどん膨大に。ふと「これまとめたら書籍っぽくなるんじゃないか」と思いついた。文章化は LLM の力をだいぶ借りたが、メモと言うにはあまりに長く、書籍にするにはボリュームが足りないか、というものが出来上がった。まともな出版物としての書籍には程遠いが、電子書籍なら自力でなんとかなる。
インストールやデザイン・構築にはまったく触れず、記事の書き方にも触れない。ただサイト維持、日々の運用というまったく地味な作業のためのガイドブックである。案外、ここに特化してまとめられたものは少ないような気がする。
いまさら WordPress、しかも本、10年遅れかと思わなくもない。それでももし価値ありと思ってもらえたら、無料で配ってもらってかまわないが、編者にコーヒー代程度を送っていただければたいへんありがたい。Amazon の Kindle にも置いてみたので、そちらからでもどうぞ。
……と、検索画面の AI モードに聞いたら、ほんの 2,3のやり取りで以下の答に。以前ならこれにたどり着いて対処するまでにはかなり時間がかかっただろう。確かに便利にはなっている。
根本的な原因
- WebKitGTK の仕様変更:
Debian 12 (Bookworm) 以降などで採用されている WebKitGTK 2.42 以降、パフォーマンス向上のために「DMA-BUF」という技術がデフォルトで有効になりました。
- ドライバとの相性:
特に NVIDIA の独自ドライバ(Proprietary Driver)や、Intel/AMD の古いドライバ、または Wayland 環境下での実装の不備により、このデータ転送が正常に行われないバグが多くの Linux ディストリビューションで報告されています。
根本原因の詳細
NVIDIAのプロプライエタリ(独自)ドライバを使用している環境で、WebKitGTK(Foliateの描画エンジン)がGPUのメモリ管理機能(DMABUF)を正しくハンドリングできていないことが原因です。
X11環境下でも、WebKitGTK 2.42以降は「ハードウェア・アクセラレーション」を効率化しようとしますが、NVIDIAのドライバとの間で画像データの受け渡しが失敗し、中身がレンダリングされず(=真っ白)に終わってしまいます。
他のアプリで症状が出ないのは、ブラウザ(ChromeやFirefox)や多くのデスクトップアプリがWebKitGTKではなく、独自の描画エンジンや別のライブラリ(GTK3/4の標準描画など)を使っているためです。
今後の運用について
この問題は、WebKitGTK側かNVIDIAドライバ側のアップデートで修正されるまで続く可能性が高いです。そのため、以下のいずれかの方法で設定を固定しておくのが最も現実的です。
- システム全体に適用(確実)
~/.bashrc または ~/.profile に export WEBKIT_DISABLE_DMABUF_RENDERER=1 を追記する。
- Foliateのショートカットだけ修正
/usr/share/applications/com.github.johnfactotum.Foliate.desktop をエディタで開き、Exec= の行を Exec=env WEBKIT_DISABLE_DMABUF_RENDERER=1 foliate %U に書き換える。(※アップデートで上書きされる可能性があります)