2025年のふりかえり

By ftake @ 2025-12-25 10:00

今日は openSUSE Advent Calendar 最終日です

1月

  • OSC 2025 Osaka に出展しました
  • 技術書同人誌博覧会に出展しました

2月

  • OSC 2025 Tokyo/Spring に出展しました

5月

  • OSC 2025 Nagoya に出展しました

7月

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

8月

9月

10月

  • openSUSE Leap 16.0 がリリースされました。
  • オープンソースカンファレンス2025 Tokyo/Fall に出展しました。

11月

12月

音が出ていなかった 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 では、いくつか標準でコンテナイメージが用意されています。その中には 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冬号を発行します

By ftake @ 2025-12-17 22:24

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 と冬の海のカメレオン

この記事は 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”
と入力すれば元に戻りました。

コンソールでトラブったときにお試し下さい。

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 のリリースイベントを開催します。新機能や新しいインストーラーについても紹介予定です。

https://opensuseja.connpass.com/event/372009