Debian 11 “bullseye” リリース

Debian 11 “bullseye” リリース

Debian 11 “bullseye” が stable としてリリースされました。めでたい。

buster リリースもつい先日のような気がしますが,2019 年 7 月 6 日と,もう 3 年以上も前のようです。

今回はあんまりドラスティックな変更はない気がします。実際,勢いでメインマシンをそのままアップグレードしてみましたが,LUKS,デバイス認識,LXD など含め一切問題はありませんでした。一方,カーネルの系列が新しくなることでハードウェア対応が大きく強化されているほか,もちろんユーザランドのパッケージも新しくなっています。

今回は security セクションの書式がちょっと変わっていて,buster/update となっていたのが bullseye-security となります。bullseye-update とも揃いますし,こっちのほうがわかりやすくていいですね。

deb http://security.debian.org/debian-security bullseye-security main
deb-src http://security.debian.org/debian-security bullseye-security main

また,次の 12 “bookworm” では /bin,/sbin,/lib が /usr 以下に集約されることになっており,今リリースでも / 直下にこれらのディレクトリが存在する状態は非推奨となっています。これは usrmerge をインストールすると自動で移行されます(不可逆)。

既知のバグのなかに気になるものもあります。特に #984760 (grub-efi-amd64)#948318 (openssh-server)#982459 (mdadm)#991788 (xfce4-settings) あたりは目を通しておくべきでしょう。

Debian 11 のリリースは計画通りなのですが,Windows 11 が今秋リリースされることが発表されたことでなんとなくタイミングが揃ったのが面白いです。Windows 11 はいろいろと大きな変更が盛り込まれておりあまり評価が芳しくありませんが,Debian 11 は良くも悪くも大きく変わらない,安定の正常進化です。

アップグレードしておいてなんですが,最近は backports に加え Snappy や Flatpak,AppImage といった代替のパッケージ管理システムも充実しているので,パッケージのバージョンが古くなる stable でも実際の使用感はあんまり変わりません。いい時代ですね。

アップデート手順メモ

包括的な情報については公式マニュアルを参照してください。

以下は最低限の手順についての個人的なメモです。

  1. マニュアルに掲載されている手順と既知のバグに目を通す。また,バックアップを確認する。
  2. レポジトリ情報を編集する。
# sudoedit /etc/apt/sources.list
...
deb http://deb.debian.org/debian/ bullseye main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye main contrib non-free

deb http://security.debian.org/debian-security bullseye-security main
deb-src http://security.debian.org/debian-security bullseye-security main

# buster-updates, previously known as 'volatile'
deb http://deb.debian.org/debian/ bullseye-updates main
deb-src http://deb.debian.org/debian/ bullseye-updates main

...
  1. 基本部分をアップグレードする。
# apt update
# apt upgrade --without-new-pkgs
# systemctl reboot

2 段階に分けてアップグレードすることで依存関係の問題が深刻化することを防げます。ここで問題が発生した場合は,必要に応じてパッケージを削除します。

再起動は必須ではありませんが,手元のデスクトップマシンであれば,いったん再起動したほうがログの確認や問題の切り分けが楽です。

  1. 問題ないようであれば,すべてをアップグレードする。
# apt full-upgrade
# systemctl reboot
  1. 不要なパッケージを削除する。
# apt autoremove
# apt install aptitude
# aptitude search '~c'
# aptitude purge '~c'
# aptitude search '~o'
# aptitude purge '~o'
# apt install deborphan
# deborphan --guess-dummy
  1. ディレクトリを /usr 以下に統合する
# apt install usrmerge

シンボリックリンクも作られるので問題は生じにくいと思いますが,不可逆の手順ですので注意深く検討して実行してください。

最初の設定

レポジトリ設定ファイルの修正

デフォルトではレポジトリのソースにインストールメディアが含まれているため,インストールメディアが接続されていないと apt が正常に機能しません。

そのため,インストールメディアを指定している行をコメントアウトします。

sed -i -e '/^#/!s/deb cdrom:/# deb cdrom:/g' /etc/apt/sources.list

これは一度修正された挙動なのですが,bullseye ではなぜか戻ってしまいました。

ファイアウォールの設定

Debian では標準でファイアウォールが設定されていません。以下のように設定し,incoming を原則禁止します(Ubuntu と同じ設定)。

# apt install ufw
# ufw enable
# ufw default deny incoming
# ufw default allow outgoing

または,gufw を利用することで GUI で設定することもできます。

# apt install gufw

ドライバ等の導入

標準導入されていないもののあった方が便利なパッケージを導入します。

残念ながら,現在主流のシステムでは non-free に分類されるドライバの導入が必要です。まずこれらを導入します。

レポジトリで contrib および non-free を参照するように追記します。

# vi /etc/apt/sources.list
...
deb http://deb.debian.org/debian/ bullseye main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye main contrib non-free
...
# apt update
# apt install firmware-linux-nonfree firmware-iwlwifi

firmware-linux-nonfree はメタパッケージであり,基本的な non-free ドライバが一括導入されます。firmware-iwlwifi は Intel 製 Wi-Fi アダプタ用のドライバであり,firmware-realtek 等他のベンダのためのパッケージも用意されています。

Debian では標準導入されていないもののあった方が便利なパッケージは他にもあります。

# apt install bluetooth-module-pulseaudio gvfs-backends

aptitudedeborphan(いずれも不要になったパッケージの追跡に便利)も検討に値します。

遭遇した問題

ランダムなフリーズ

Let’s note SZ5A (V2.00L25) で,ランダムなフリーズが発生しました。

これは,Intel ドライバの品質に起因しているようであり,Kernel 5.10.x 系列でのフリーズが報告されています。

workaround: GuC / HuC ドライバを読み込む

10th Gen 以前のプロセッサにおいては,iGPU の一部の機能を利用するためのドライバ (GuC / HuC) が標準では読み込まれません。これは,読み込むことがシステムの不安定性につながる場合があるのが理由とのことですが,逆にこれらを読み込むことによって不安定性が改善される場合があることが報告されています。

手順は以下のとおりです。

まず,GRUB にカーネルパラメータを追加します。

# vi /etc/default/grub

GRUB_CMDLINE_LINUX 行に以下のように追記します。

GRUB_CMDLINE_LINUX="i915.enable_guc=2"
# update-grub

設定ファイルを記述します。

# vi /etc/modprobe.d/i915.conf
options i915 enable_guc=2
# mkdir /etc/initramfs
# vi /etc/initramfs/initramfs.conf
MODULES=(i915)
# update-initramfs -u

再起動して,反映されていることを確認します。

# dmesg | grep guc
...
[  987.026097] (NULL device *): firmware: direct-loading firmware i915/skl_guc_33.0.0.bin
[  989.757002] i915 0000:00:02.0: [drm] GuC firmware i915/skl_guc_33.0.0.bin version 33.0 submission:disabled
# dmesg | grep huc
...
[  987.026062] (NULL device *): firmware: direct-loading firmware i915/skl_huc_2.0.0.bin
[  989.757004] i915 0000:00:02.0: [drm] HuC firmware i915/skl_huc_2.0.0.bin version 2.0 authenticated:yes

別のアプローチとして,ハードウェアアクセラレーションを完全に無効化することも効果があるようでした(DRI 無効化だけでは防ぐことができませんでした)。しかし,動作がぎこちなくなりますので,最後の手段として考えるべきでしょう。

なお,デスクトップマシンでは,同じ世代(Skylake)のマシンであってもこの問題は発生していません。

サスペンドからの復帰時に一瞬ロック前の画面が表示されてしまう

これもドライバの不具合が原因です。

workaround: DRI を無効化する

ただし,3D アクセラレーションが無効化されるため 3D 機能を使用する用途には向きません。その場合,システムの電源管理を利用せず手動でロック画面を呼び出した上でサスペンドするスクリプトを使用するなど,ロックする方法を工夫することで対応できます。

DRI を無効化するには設定ファイルを追加します。

# vi /etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier "Intel Graphics"
   Driver "intel"
   Option "DRI" "False"
EndSection

副次的な効果として,ホットキーからディスプレイの輝度を変更できるようになります。

ホットキーでディスプレイの輝度を変更できない

Let’s note SZ5A (V2.00L25) で,ホットキーからの画面輝度変更ができませんでした。デバイスファイルに値を書き込むことによる輝度変更は可能です。

workaround: カーネルパラメータの追加

/etc/default/grubGRUB_CMDLINE_LINUX= 行に, acpi_backlight=video を追加します。

注:先述の DRI を無効化する設定ファイルを置いている場合は追加しないでください。逆に輝度を変更できなくなります。

Let’s note SZ5A (V2.00L25) の IOMMU に関する問題

Let’s note SZ5A (V2.00L25) で,Bad RMRR エラーが報告されました。これは通常 OS の問題ではなく,UEFI 実装の問題です。

workaroud: 無視または VT-d の無効化

コメントを残す

投稿にあたり,完全な IP アドレスが保存されます(公開されません)。

コメントはスパムフィルタで処理され,承認後に公開されます。