2025年のふりかえり
今日は openSUSE Advent Calendar 最終日です
1月
- OSC 2025 Osaka に出展しました
- 技術書同人誌博覧会に出展しました
2月
- OSC 2025 Tokyo/Spring に出展しました

5月
- OSC 2025 Nagoya に出展しました

7月
- オープンソースカンファレンス2025 Hokkaido に出展しました。セミナーを開催しました。


8月
- コミックマーケット C106 に参加し、Geeko Magazine 2025 夏号を頒布しました。
9月
- openSUSE.Asia Summit 2025 がインドのファリーダバードで開催されました。
10月
- openSUSE Leap 16.0 がリリースされました。
- オープンソースカンファレンス2025 Tokyo/Fall に出展しました。
11月
- 三菱電機様の Serendie Street Yokohama において、openSUSE Leap 16.0 リリースイベントを開催しました。
- 関西オープンフォーラム (KOF) に出展しました

12月
- 12月31日に開催されるコミックマーケットC107でGeeko Magazine 2025冬号を頒布します。
Lunar Lake の PC で音が出るようになった
音が出ていなかった dynabook XP ですが、音が出るようになりました。
dmesg を見ると、以下のように sof-lnl-rt722-l0-2ch.tplg というファイルがないとメッセージが出ていました。
[ 7.311245] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: SOF firmware and/or topology file not found.
[ 7.311966] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: Supported default profiles
[ 7.311969] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: - ipc type 1 (Requested):
[ 7.311971] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware file: intel/sof-ipc4/lnl/sof-lnl.ri
[ 7.311976] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology file: intel/sof-ipc4-tplg/sof-lnl-rt722-l0-2ch.tplg
まずは先日リリースされた sof-firmware を 2025.05.1 にアップデートしました。しかしながら、これには肝心の sof-lnl-rt722-l0-2ch.tplg が含まれていません。そこで、他の sof-lnl-rt722* に従い、sof-lnl-rt722-l0-2ch.tplg から sof-tgl-rt712.tplg へのシンボリックリンクを作成したところ音が出るようになりました。
Proxmox VE で openSUSE 16.0 コンテナをインストールしてみる
Proxmox では、いくつか標準でコンテナイメージが用意されています。その中には openSUSE もあります。ただ、存在しているのは 15.6 で、16.0 はありません。しかし、コンテナソフトの開発をしている、Linux Containers のサイトには、openSUSE 16.0 のイメージが用意されていました。そこで、それを使って openSUSE 16.0 のコンテナイメージをインストールしてみることにしました。
コンテナイメージは https://images.linuxcontainers.org/ にあります。その中に openSUSE 16.0 があります。
opensuse 16.0 amd64 default
というエントリの所にリンク (2025/12/21 では 20251216_04:20) がありますので、そのリンクをクリックします。すると、ファイルの一覧が表示されますので、その中から rootfs.tar.xz をダウンロードします。このファイルを、たとえば opensuse16.tar.xz というファイルに改名して、proxmox が動いているサーバの /var/lib/vz/template/cache に配置します。
あとは通常通りコンテナを作成すると、openSUSE 16.0 のイメージをコンテナとして利用することができます。
追記(2025-12-30)
インストールはできるのですが、ネットワーク関係がかなり変です。インストール時に固定IPアドレス指定にしたのに、起動してみると DHCP でアドレスを取ってきます。NetworkManager の類も入っていないので、ネットワーク関連はまだきちんとできていないのかもしれません。
Geeko Magazine 2025冬号を発行します
openSUSE Advent Calendar の16日目です。
Geeko Magazine 2025冬号を発行します。最初の頒布はコミックマーケットC107です。スペースは南2ホールh-42bです。色々な技術同人誌が集まっていますので、ぜひお越しください。

今回の記事は
- openSUSE Leap 16.0 リリース
- Proxmox Datacenter Managerを試してみた
- いつの間にか増えた Windows のファイル属性は Samba でどう扱われる?
- openSUSE Leap をノート PC に入れるには?
- 小説 おひとり様ブツリ部の活動報告〜冬の海のカメレオンとの記憶〜
- Krita と Qwen-Image と冬の海のカメレオン
linux-pam パッケージをコンパイルしてみる
この記事は openSUSE Advent Calendar 2025 の8日目です。
openSUSE 16.0 から linux-pam のバージョンが1.7.0 になりました。オリジナルサイト
https://github.com/linux-pam/linux-pam
の最新は1.7.0 なので openSUSE は最新に追いついたと言えます。
openSUSE 15.x の pam は 1.3.0 だったのでかなり新しくなります。そのためいくつか違いがあるようです。どう違っているかを調べるため、マニュアル等を見てみることにしたのですが、オリジナルのマニュアルは xml なので、コンパイルして読みやすくしてみることにしました。
環境の準備
ソースを引っ張ってきてコンパイルするだけですので、わざわざそのために新しく環境を作るのは大変です。そこで、Proxmox VE の LXC コンテナを使うことにしました。単純なコンパイルとかはこれで十分です。フットプリントも小さいですし。
そして、とてもありがたいことに、 opensuse-15.6 のテンプレートがあります。それを使えばサクッと LXC 上の環境を作ることができます。
ただ、提供されているテンプレートはとても基本的なものなので、外から入ることができません。そこで、インストール後は zypper update し、さらに openssh-server、git と nano を入れます。また作業用のユーザも作っておきます。
ソースをダウンロード
git clone https://github.com/linux-pam/linux-pam.git
でソースをダウンロードします。
meson を使う
linux-pam のコンパイルには、meson が必要です。以前は autotools だったらしいですが。このため、いろいろ入れないと動きません。最低限コンパイラが必要です。今回は gcc を使います。
% cd linux-pam
で作業ディレクトリに移り、
% meson build
で configure を作り、さらに、
% meson -C build
で一応ビルドはできるようになります。ただし出来るのはバイナリだけ。マニュアルは出てきません。マニュアル作成には結局
libxslt-tools
docbook_5
docbook5-xsl-stylesheets
を追加インストールすることで、できるようになりました。
で、build/modules 配下ににある各モジュールディレクトリ中にマニュアルが、man 形式で生成されます。
ちなみにbuildした時点では、ディスク容量は 884M しか使っていませんでした。コンテナだと本当にフットプリント小さいですね。
コンソールのカーソルが変わってしまったのを四角のものに戻す方法
この記事は openSUSE Advent Calendar 2025 の1日目です。
openSUSE 15.6 を teraterm から使っているのですが、何かの拍子にカーソルが■からアンダーラインになってしまいました。teraterm 側で端末リセットしてもダメ、コンソール側で clear コマンド叩いてもダメ。視認性が悪くなって困ってしまいました。
しかし、https://infrapod.net/teraterm/manual/4.74/html/usage/tips/vim.html にヒントが。teraterm 側でカーソルのコントロールシーケンスを受ける設定に変更後、
echo -en “\033[0 q”
と入力すれば元に戻りました。
コンソールでトラブったときにお試し下さい。
dynabook XP に openSUSE Leap 16.0 をインストールする(セキュアブート有効、デュアルブート)
Windows 10乗り換えセールに乗じて、新しいPCを購入しました。Core Ultra 258V (Lunar Lake) を搭載した dynabook XP です。一応最新、かつ、搭載機種が少ない Lunar Lake ということで、最新の Leap 16.0 でもすんなりは入りませんでした。
Tumbleweed や Slowroll であれば、大丈夫だったかもしれません。
Windows 側でのいろいろ
まずはリカバリーディスクを作ります。32GB のディスクが必要でした。手持ちのメモリーはすべて16GB以下で、なんとか発掘した32GBのmicroSDカードに書き込みました。
次に、「ディスクの管理」でWindowsのパーティションを縮小して、openSUSEをインストールする領域を確保します。細かい説明は省略します。
セキュアブートの設定変更で何度もBitLockerの回復キーを求められたので、準備はしておいたほうがよいでしょう。普通にセットアップすると回復キーはログインしたマイクロソフトアカウントに保存されるそうです。https://aka.ms/myrecoverykey で参照できます。
UEFI の設定
openSUSEのブートローダー、カーネルを署名している鍵を有効化します。まず、UEFIの設定画面で、スーパーバイザーパスワードを設定します。設定すると、追加のメニューが表示されるようになり、「3rd party CA」を Enabled に変更します。
インストール
いろいろ試した結果、なんらかの原因でオンラインリポジトリにアクセスできないようで、ネットワークインストール用のインストーラーが使えませんでした。そのため、オフライン用のISOをダウンロードして、USBメモリーに書き込んでインストールします。
さらに、通常のインストーラーは途中で固まってしまったので、fail safe モードでインストールします。原因は後で分かって、Lunar Lake の GPU (Arc Xe2) にカーネルが対応していないためです。nomodeset を起動オプションに追加すれば、通常のインストーラーも使えます。
Leap 16.0 で導入された Agama インストーラーは Web アプリケーションになっており、fail safe モードの場合は、ネットワーク越しにインストーラーにアクセスして操作を行えます。スクリーンショットはタブレットで操作している様子です。

インストールの詳細は省略しますが、Windowsを残すために、「現在のパーティションを維持する」設定にするのを忘れずに。
UEFI に openSUSEを登録する
本来であれば、インストールが完了すると、GRUB が起動するはずなのですが、Windows が起動する上に、UEFI の設定画面にも Windows しか出てきません。efibootmgr で設定を変更しても、起動順序がもとに戻されてしまうようです。おそろらく UEFI が変えてしまっているのでしょうか。
dynabook の UEFI は efi ファイルを直接指定して UEFI エントリーを追加することができます。この機能で shim.efi (セキュアブート用のプリブートローダー)を指定して起動順序を先頭にしたところ、無事に起動するようになりました。

fail safe から不要なオプションを取り除く
fail safe モードでインストールすると、起動パラメータに問題になりそうな機能を無効にするパラメータが追加されます。これを1つずつ外して、インストーラーが固まった原因を探します。
BOOT_IMAGE=/boot/vmlinuz-6.12.0-160000.5-default root=UUID=c24385d6-faf7-48c7-ade1-906659977d4d ide=nodma apm=off noresume edd=off nomodeset 3 mitigations=auto quiet security=selinux selinux=1
1つずつ外していった結果、nomodeset を外すと途中で固まってしまいました。nomodesetを残した状態でもデスクトップは起動しますが、解像度が 1920×1080 に固定されてしまい、本来は1980×1200なので、縦に間延びした状態になってしまいます。
新しいカーネルを入れる
Lunar Lake の GPU である Intel Arc Xe2 のドライバはどこかのタイミングでカーネルに取り込まれているようなので、最新のカーネルに更新します。最新のカーネルは、OBS の Kernel:stable:Backport から提供されています (記事執筆時は 6.17.3、Leap 標準は 6.12.0 + パッチ)。
以下のコマンドでリポジトリを登録し、カーネルをインストールします。
sudo zypper ar -c https://download.opensuse.org/repositories/Kernel:/stable:/Backport/16.0/Kernel:stable:Backport.repo
sudo zypper in -r Kernel_stable_Backport kernel-default
このリポジトリのカーネルは、OBS の Kernel プロジェクトの鍵で署名されています。セキュアブートが有効なPCで使うには、この鍵を Machine Owner Key (MOK) として UEFI に登録しておかないと、起動させてくれません。
OBS から公開鍵をダウンロードし:
https://build.opensuse.org/projects/Kernel:stable:Backport/signing_keys
以下のコマンドで変換し、再起動時に取り込むように指定します。
openssl x509 -in Kernel_stable_Backport_cert.pem -outform der -out cert.der
sudo mokutil --import cert.der
再起動後にMockManagerが起動し、enroll すれば完了です。
(追記)サウンドカード
残念ながら現時点では動作しません。
[ 7.306875] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: hda codecs found, mask 4
[ 7.306889] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
[ 7.306894] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: BT link detected in NHLT tables: 0x4
[ 7.306899] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[ 7.311245] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: SOF firmware and/or topology file not found.
[ 7.311966] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: Supported default profiles
[ 7.311969] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: - ipc type 1 (Requested):
[ 7.311971] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware file: intel/sof-ipc4/lnl/sof-lnl.ri
[ 7.311976] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology file: intel/sof-ipc4-tplg/sof-lnl-rt722-l0-2ch.tplg
[ 7.311979] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: Check if you have 'sof-firmware' package installed.
[ 7.311980] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: Optionally it can be manually downloaded from:
[ 7.311982] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: https://github.com/thesofproject/sof-bin/
[ 7.316190] [ T110] sof-audio-pci-intel-lnl 0000:00:1f.3: error: sof_probe_work failed err: -2
追記2
ホットキー、バッテリーの充電停止容量の設定も動作していません。旧機種で使われていた toshiba_acpi ではダメなようです。
告知
openSUSE Leap 16.0 のリリースイベントを開催します。新機能や新しいインストーラーについても紹介予定です。
Steam を rpm パッケージ版から Flatpak 版に切り替える
openSUSE Leap 16.0 では、提供する 32bit パッケージ削減のため、steam パッケージの提供をしないことになりました。代替手段の1つは Flatpak です。
インストール自体は簡単です。
flatpak install com.valvesoftware.Steam
切り替えるときに困るのが、これまでダウンロードしたゲームのデータです。もちろん、再ダウンロードすることもできますが、rpm パッケージ版の Steam から引き継ぐこともできます。ただし、Flatpak のセキュリティで、アクセスできるディレクトリが制限されているため、従来の Steam のディレクトリにアクセスできるようにする必要があります。こちらもやり方は簡単。
flatpak override --user --filesystem=~/.local/share/Steam com.valvesoftware.Steam
あとは Steam の設定を開き、「ストレージ」で「ドライブを追加」し、上記のパスを設定するだけです。
補足: Leap 16 で 32 bit アプリケーションを実行するには
Leap 16 では、デフォルトで32 bitアプリケーションを実行する機能が、カーネルレベルでオフになっています。Steam と配信されているゲームには 32 bit アプリが多くあります。
有効にするには、grub2-compat-ia32 パッケージをインストールするか、起動オプションに ia32_emulation=on を指定する必要があります。
openSUSE の Proxmox LXC コンテナで ping を使う方法
openSUSE の Proxmox LXC コンテナで、一般ユーザで ping を使うと、
ping: socktype: SOCK_RAW
ping: socket: Operation not permitted
ping: => missing cap_net_raw+p capability or setuid?
となって、動きません。しかしこれは、https://blog.ssrf.in/post/ping-does-not-require-cap-net-raw-capability/ に書いてあるように、カーネルパラメータを調整することで、通常通り使えるようになります。実際に、
# sysctl -w net.ipv4.ping_group_range="0 65534"
と入力してみたら正しく動くようになりました。
なお、/usr/bin/ping にケーパビリティの設定を
setcap cap_net_raw+p /bin/ping
ですることでも解決します。これは https://hanaokaiwa.hatenablog.jp/entry/2024/06/17/120533 に情報がありました。
