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 すれば完了です。

告知

openSUSE Leap 16.0 のリリースイベントを開催します。新機能や新しいインストーラーについても紹介予定です。

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

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 パッケージをインストールするか、起動オプションに を指定する必要があります。

参考: https://lists.opensuse.org/archives/list/users-ja@lists.opensuse.org/thread/PRGTJQYWV6GOKMNIXZ7TFWBV3QB3F2ZY


Geeko Magazine Special Edition 2025 夏

By ftake @ 2025-08-09 12:26

Geeko Magazine Special Edition 2025夏を発行します。初回の頒布は8月17日(日) に東京ビックサイトで開催されるコミックマーケットC106です。スペースは東地区Tブロック-22aです。閉会までいますので、午後からでもお越しください。

2024年振り返り

By ftake @ 2024-12-26 01:07

openSUSE Advent Calendar 2024 最後の記事です。openSUSE.Asia Summit の反動や、海外への旅立ちなどなど、なかなか厳しい結果となりました。そんな中でも若手メンバー3人が書いてくれたので、まぁ良かったかなと思います。

最後は、恒例の1年の振り返りです。

1月

OSC 大阪に出店しました。新幹線+宿のセットプランで行ったら、平日ということで色々なクーポンがついてきたため、前日に百舌古墳群に行ったり、あべのハルカスに行ったりと、大阪観光を満喫していました。夜はユーザ会関係者で前夜祭ということで、気づいたらたくさん串揚げを食べていました(2周目に入ったところで終了)

2月

Asia Summit の企画書を書く会議をした記録があります。

3月

OSC 2024 Tokyo/Spring に出展しました。オフラインの OSC も定着してきたので、関東に住んでいる若手にも新しく手伝ってもらいました。20代が3人もいて頼もしかったです。

4月

OSunC 川越に参加しました。

5月

まずは技書博こと技術書同人誌博覧会に参加しました。なんだかんだ出展者としての参加は初めてでした。奥に樽酒が少し写っていますが、懇親会で鏡割りが行われました。

OSC名古屋にも参加しました。

6月

久しぶりにOSC北海道に参加しました。しかも、一人だけではなく、今年は修太さんに加え、rlysleepynickさんがブース番をしてくれました。北海道は頼んだ!

OSC後はちょっと足を伸ばして知床へ行ってきました。

7月

openSUSE.mini Summit & Leap 15.6 リリースパーティを開催しました。懇親会枠が早々に埋まってしまいましたが、久しぶりの人が多い単独イベントになって良かったです。

OSC京都に参加しています。私は参加していないので記録なし。

8月

コミックマーケットC104に参加しました。Geeko Magazine Special Edition 2024夏号を頒布しました。今回の表紙はパイナップルでした(そろそろネタ切れ)。

9月

Open Developers Conference (ODC) に参加しました。

10月

OSC東京/Fallに参加しました。この日から Open Source Summit Japan、Open Compliance Summit、Japan SBOM Summit、openSUSE.Asia Summitと10日間連続イベントで、かなりハードなスケジュールでした。

11月

openSUSE.Asia Summit 2024を7年ぶりに日本で開催しました。アジアを中心に世界各地から約150名が麻布台ヒルズに集まりました。会場として株式会社SHIFT様に、本社のエントランスホールとカンファレンスルームを提供いただきました。

イベントレポートは年明けになりそうです。

12月

今年もopenSUSE Advent Calendarを開催しました。Advent Calendarはコミュニティ活動への入りやすい入り口ですので、ぜひ、来年はご参加ください。

12月30日にはコミックマーケットC105に出展し、Geeko Magazine Special Edition 2024冬号を頒布します。ぜひお越しください。

おわりに

2024年はAsia Summit開催のため奔走した1年となりました。2025年は2日間オフライン開催、セミナーありのフルサイズの OSC 東京/Spring が帰ってきます。会場は23区内、駒澤大学です。これ以外にも国内イベントや、できればハンズオンなどのイベントも開催していければと思います。

Geeko Magazine Special Edition 2024 冬

By ftake @ 2024-12-16 00:32

12月30日(月)コミックマーケット C105 2日目に Geeko Magazine Special Edition 2024 冬号を発行します。スペースは西2ホール”う”-04a です。午後は比較的空いていますので、チケットを事前にご購入の上、お越しください。

今回の内容は次のようになっています:

  • openSUSE.Asia Summit 2024 開催
  • Proxmox VE の CPU 回りの変更を少しだけ追いかけてみた
  • AVX 命令を使うプログラムが Proxmox の仮想マシンで動かない
  • ARM サーバーのリファレンスモデル “SBSA” ゲストを KVM ホスト上で動作させてみよう
  • 小説エーデル・シュティメ「秋雨のカメレオン・パニック」
  • Krita と AI で描く賑やかな openSUSE.Asia Summit の光景

Geeko Magazine Special Edition 2024夏

By ftake @ 2024-08-01 23:07

この夏も Geeko Magazine Special Edition を発行します。最初の頒布はコミックマーケットC104 月曜日 西す04a です。ぜひお越しください。

Web カタログ

  • openSUSE Leap 15.6 リリース
  • openSUSE & WireGuard で VPN サーバーを構築する
  • Proxmox VE でお試しクラスタ
  • Proxmox VE で LXC コンテナを使う
  • openSUSE でロシア語入力を楽しむ
  • Leap Micro 6.0 + Rancher + k3s で Mastodon サーバー構築してみた
  • エーデル・シュティメ―カメレオンとパンダとツンとデレ
  • 今話題の AI 技術 BitNet で CIFAR10 を解かせてみた!

これまで自宅用の VPN はルーターの機能の L2TP/IPSec を使っていました。しかしながら、Android 12から L2TP/IPSec が使えなくなったり、もともと接続元のネットワーク環境次第で接続できないという制約もあり、VPN を WireGuard に乗り換えることにしました。

WireGuard は Linux カーネルに組み込まれている VPN プロトコルで、特にセキュリティとパフォーマンスを売りにしています。

構成はこんな感じです。VPN 接続用の IP アドレスは固定です。

  • 自宅側
    • ルーター
      • ヤマハのダイナミックDNSサービスで IP アドレスを引ける
    • VPNサーバー(ファイルサーバー)
      • openSUSE Leap 15.5
      • LAN側アドレス (eth1): 192.168.10.2(インターネットには直接つながってない)
      • VPN側アドレス: 192.168.2.1
      • ポート: 51820
  • リモート側
    • Android 14 スマートフォン
      • VPN側アドレス: 192.168.2.2
    • Android 13 タブレット
      • VPN側アドレス: 192.168.2.3
    • openSUSE Leap 15.6 ノートPC
      • VPN側アドレス: 192.168.2.4

秘密鍵・公開鍵を作成する

VPN に参加するサーバーとクライアントそれぞれの秘密鍵・公開鍵を作ります。openSUSE が動いている PC で以下のコマンドでそれぞれ作成します。

wg genkey | tee privatekey | wg pubkey > pubkey

privatekey と pubkey に秘密鍵と公開鍵それぞれが保存されます。合計3回実行することになります。

VPNサーバー側の設定

今回の説明の範囲外ですが、ルーターでポートフォワーディングの設定をしておきましょう。必要なポートはUDP 51820です。192.168.10.2 に転送するようにしておきます。

まずは VPN サーバー自体のネットワーク設定です。WireGuard そのものにはプロトコル上、サーバーとクライアントという関係はなく、どちらもサーバーでありクライアントなシンプルな構成です。後は WireGuard をどのような用途で使うかによって設定が変わってくるため、WireGuard の説明を見るときに、用途を意識してドキュメントを見ないと混乱するので注意が必要です。

今回は自宅で常時起動しているファイルサーバーを VPN サーバーの役割を持たせて、自宅のネットワークにつなぎたい端末からこのサーバーに繋いで使用することにします。ここからはいつもの Arch Wiki に感謝ですが、「特定のユースケース: VPN サーバー」 を見ることで、この用途の設定方法がわかります。

はじめに、転送とファイアウォールの設定です。YaST でやってしまいましょう。

  • YaST > 「ネットワーク設定」 > 「ルーティング」を開き、「IPv4 転送を有効にする」をON
  • YaST > 「ファイアウォール」 で使用しているゾーンで「ポート」 > 「UDP ポート」 に 51820 を追加

次に、WireGuard の設定をしていきます。wg コマンドで設定する方法もあるのですが、設定ファイルを直接作成するのが手っ取り早いです。

/etc/wireguard/wg0.conf

[Interface]
PrivateKey = VPNサーバーの秘密鍵
Address = 192.168.2.1/24
ListenPort = 51820
MTU = 1420

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth1 -j MASQUERADE

[Peer]
PublicKey = Android 14 スマートフォンの公開鍵
AllowedIPs = 192.168.2.2/32

[Peer]
PublicKey = Android 13 タブレットの公開鍵
AllowedIPs = 192.168.2.3/32

[Peer]
PublicKey = openSUSE Leap 15.6 ノートPCの公開鍵
AllowedIPs = 192.168.2.4/32

この設定から、VPN 用のインタフェース wg0 を作成します。Systemd を使用して、起動時に WireGuard インタフェースを立ち上げる便利スクリプトの wg-quick を使います。

systemctl enable --now wg-quick@wg0

クライアントの設定―openSUSE Leap 15.6

NetworkManager の接続の追加に WireGuard があり、これで接続できます。入力する必要の値は

  • openSUSE Leap 15.6 ノートPC 用の秘密鍵
  • ピア(接続相手: つまり、この場合サーバー)の設定
    • VPNサーバーの公開鍵
    • Allowed IPs (VPN を通して通信するアドレスレンジ)
      • LANとVPNのアドレスレンジ: 192.168.10.0/24, 192.168.2.0/24
      • 自宅LAN経由でインターネットに出たい場合は 0.0.0.0/0 を指定して、全部を VPN 経由にすることも可能

クライアントの設定―Android スマートフォン

Wireguard の接続アプリは Play Store から入手できます。NetworkManager と同様に手入力でもよいのですが、以下のようなファイルを PC 上で作成して QR コード化して送ることもできます。

[Interface]
Address = 192.168.2.3/24
PrivateKey = Android端末の秘密鍵
DNS = 192.168.10.1
MTU = 1420

[Peer]
PublicKey = VPNサーバーの公開鍵
AllowedIPs = 192.168.10.0/24, 192.168.2.0/24
Endpoint = 外からアクセスできるルーターのホスト名:51820

ファイル名を android-phone.conf とすると、QR コードは次のようにして作成できます。

qrencode -t ansiutf8  < android-phone.conf

qr コマンドでも同じことができます。