Debian 11 “bullseye”
Debian 11 "bullseye" リリース
Debian 11 "bullseye" が stable としてリリースされました。めでたい。
buster リリースもつい先日のような気がしますが,2019 年 7 月 6 日と,もう 3 年以上も前のようです。
今回はドラスティックな変更はありません。実際,勢いでメインマシンをそのままアップグレードしてみましたが,特に問題はありませんでした。一方,カーネルの系列が新しくなることでハードウェア対応が大きく強化されているほか,もちろんユーザランドのパッケージも新しくなっています。
最初の設定
レポジトリ設定ファイルの修正
クリーンインストールした際に,レポジトリのソースにインストールメディアが含まれているため,インストールメディアが接続されていないと 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
aptitude
,deborphan
(いずれも不要になったパッケージの追跡に便利)も検討に値します。
遭遇した問題
ランダムなフリーズ
Let’s note SZ5A (V2.00L25) で,ランダムなフリーズが発生しました。この現象ではカーソルも動かなくなり,強制的な電源断以外の対応はできません。
これは,Intel が提供しているドライバの品質低下に起因しているようであり,Kernel 5.10.x 系列でのフリーズが報告されています。
workaround: GuC / HuC ドライバを読み込む
Intel Core 6th Gen 以降・10th Gen 以前のプロセッサにおいては,iGPU の一部の機能 (GuC / HuC) を利用するためのドライバが標準では読み込まれません。これは,これらを読み込むことがシステムの不安定性につながる場合があるのが理由とのことですが,逆にこれらを読み込むことによって安定性が改善される場合があることが報告されています。私の環境でも,GuC / HuC ドライバの読み込みによりフリーズは発生しなくなりました。
GuC は “Graphics microController”,HuC は “HEVC/H.265 microController” の略です。
なお,この問題はすべての Intel システムで発生するわけではないようであり,デスクトップマシンでは,同じ世代(Skylake)のマシンであってもこの問題は発生していません。影響を受けないシステムの場合はこの設定は原則として不要です。
手順は以下のとおりです。
まず,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 無効化だけでは防ぐことができませんでした)。しかし,動作がぎこちなくなりますので,最後の手段として考えるべきでしょう。
サスペンドからの復帰時にロック前の画面が一瞬表示されてしまう
これも Intel ドライバの不具合が原因です。
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/grub
の GRUB_CMDLINE_LINUX=
行に, acpi_backlight=video
を追加します。UEFI / BIOS 実装によっては,video
ではなく vendor
や native
を指定すると効果がある場合もあります。
注意:上で紹介した DRI を無効化する設定ファイルなど,Xorg の設定ファイルを利用している場合は追加しないでください。干渉して画面輝度を変更できなくなります。
Let’s note SZ5A (V2.00L25) の IOMMU に関する問題
Let’s note SZ5A (V2.00L25) で,Bad RMRR エラーが報告されました。これは通常 OS の問題ではなく,UEFI 実装の問題です。
workaroud: 無視または VT-d の無効化
アップデート手順メモ
包括的な情報については公式マニュアルを参照してください。
以下は最低限の手順についての個人的なメモです。また,可能であればクリーンインストールを推奨します。GNU/Linux での環境移行は基本的にパッケージを apt 等で導入して ~/ をそのままコピーするだけであり,他の多くの OS と異なり非常に簡単です。
0, マニュアルに掲載されている手順と既知のバグに目を通す。また,バックアップを確認する。
既知のバグのなかにも気になるものもあります。特に #984760 (grub-efi-amd64),#948318 (openssh-server),#982459 (mdadm),#991788 (xfce4-settings) あたりは目を通しておくべきでしょう。
1, レポジトリ情報を編集する。
今回は security セクションの書式がちょっと変わっていて,buster/update
となっていたのが bullseye-security
となります。bullseye-update
とも揃いますし,こっちのほうがわかりやすくていいですね。
# 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
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
...
2, 基本部分をアップグレードする。
# apt update
# apt upgrade --without-new-pkgs
# systemctl reboot
2 段階に分けてアップグレードすることで依存関係の問題が深刻化することを防げます。ここで問題が発生した場合は,必要に応じてパッケージを削除します。
再起動は必須ではありませんが,手元のデスクトップマシンであれば,いったん再起動したほうがログの確認や問題の切り分けが楽です。
3, 問題ないようであれば,すべてをアップグレードする。
# apt full-upgrade
# systemctl reboot
4, 不要なパッケージを削除する。
# apt autoremove
# apt install aptitude
# aptitude search '~c'
# aptitude purge '~c'
# aptitude search '~o'
# aptitude purge '~o'
# apt install deborphan
# deborphan --guess-dummy
5, ディレクトリを /usr 以下に統合する
次の 12 "bookworm" では /bin,/sbin,/lib が /usr 以下に集約されることになっており,今リリースでも / 直下にこれらのディレクトリが存在する状態は非推奨となっています。これは usrmerge
をインストールすると自動で移行されます(不可逆)。
# apt install usrmerge
シンボリックリンクも作られるので問題は生じにくいと思いますが,不可逆の手順ですので注意深く検討して実行してください。
投稿にあたり,完全な IP アドレスが保存されます(公開されません)。
コメントはスパムフィルタで処理され,承認後に公開されます。