🧰

archlinuxのカーネルをpf-kernelへ

2025/02/21に公開

環境(laptop)

  • OS: Arch Linux x86_64
  • Kernel: Linux 6.13.2-arch1-1
  • CPU: AMD Ryzen 7 4700U
  • GPU: AMD Radeon Vega Series / Radeon Vega Mobile Series [Integrated]
  • bootloader: systemd-boot

なぜ pf-kernel?

本来はデスクトップ用ですが、laptopのような発熱がしやすい環境でも安定して動作するっぽいので実験的に置き換えることにしてみました。
linux-pf なら、バックグラウンドでいくらビルドを回しても他の作業の邪魔になりにくいらしいんですよね (噂レベルですが)。

linux-pf をインストール

Arch User Repository (AUR) に linux-pf パッケージがあるので、普段お使いの AUR ヘルパー (ここでは yay) でインストールします。

yay -S linux-pf

btop
インストールには結構時間がかかります。CPU負荷もそれなりに上がるので、気長にお風呂に入ったり、大学のレポートでも書きながら終わるのを待ちました。

ようやくビルドが終わったら、次はカーネルイメージを作成します (もしかしたら不要かもしれませんが、念のため)。

以下のコマンドを実行すると、linux-pf のカーネルイメージが作成されます。

sudo mkinitcpio -p linux-pf

systemd-boot にカーネルを追加

systemd-boot の設定ファイルは、/boot/loader/entries/ ディレクトリに格納されています。

ここに、linux-pf.conf という名前で新しい設定ファイルを作成します。

title   Arch Linux_linux-pf
linux   /vmlinuz-linux-pf
initrd  /initramfs-linux-pf.img
options root=/dev/{root partition} quiet rw

{root partition} の部分は、df -h / コマンドを実行した際に表示されるデバイス名 (例: /dev/nvme0n1p2) に置き換えます。
環境によっては /dev/sda* のようなデバイス名になっているかもしれません。

設定ファイルを作成したら、

sudo bootctl update

を実行して、systemd-boot に新しい設定ファイルを認識させます。

設定が終わったら、ここで一度再起動してみましょう。起動時のカーネル選択画面で Arch Linux_linux-pf を選び、Enterキーを押します。

正常に起動できたら、fastfetch などのツールでカーネルが linux-pf に変わっているか確認してみてください。もし起動に失敗する場合は、最初からやり直すか、ログを調べて原因を特定する必要があります。
…とは言え、私は特に問題なく一発で成功したので、もし聞かれても正直よくわかりません。

systemd-boot のデフォルトカーネルを変更

起動時にデフォルトで選択されるカーネルを変更するには、/boot/loader/loader.conf を編集します。

default linux-pf.conf

default 行を上記のように書き換えるか、存在しない場合は追記してください。

これで、再起動後も linux-pf カーネルが自動的に選択されるようになります。
Congratulations! 🎉

congrats

実際の負荷は?

普段はchromeでyoutubeを流しながらmisskeyも開いていたりするのですが、CPUがめっちゃ落ち着いてます。
メモリの使用率自体は置き換え前と対して変わらないのですが、CPU仕様率が下がったおかげで発熱も落ち着いた感じです。
とは言っても、負荷が掛かることをすれば仕様率は上がります。
それでも操作が効かなくなる等の問題が解消されたのでとてもいい感じです。

misskeyの開発環境を立ち上げると丸ごと固まってしまうことがあったのですが、pipewireが悲鳴上げるだけで固まる等の問題が解消されました。
あとはBTキーボード(HHKB)が急にハングすることもなくなりましたね。

cachyos-kernel試したよ

ゲームする人には向いてるのかもしれないけど、laptopのデスクワークならlinux-pfでいい。
というか変に重たくて元のkernelと対して変わらなかった。

Discussion