これまでカスタムカーネルにはほとんど縁がなかった。僕はオーディオ好きなのでリアルタイムカーネルには少しだけ関心を持っていたが、システムの安定性に影響を及ぼしそうなので試用には至っていない。
一方、linux-zen、俗にZENカーネルと呼ばれるカスタムカーネルにはもっと普遍的な付加価値がありそうに思われた。なんせArch LinuxのWikiでは下記のように説明されている。
ZEN Kernel はカーネルハッカーたちの知恵の結晶です。日常的な利用にうってつけの最高の Linux カーネルになります。詳しい情報は https://liquorix.net を見てください (Debian 向けの ZEN ベースのカーネルバイナリ)。
なるほど、いかにもすごそうだ。しかしこれでは抽象的すぎて説明になっていない。文中のリンク先にもそのものズバリの情報はなかったので、自ら調べたところ下記の解説が得られた。
Well I think the Zen Kernel (or the patches that are applied to it) increases your system’s responsiveness and lowers your latency at the expense of some performance hit (I’d say about 1-3% at best).
簡単に言えばわずかなパフォーマンスの犠牲(1~3%くらい)と引き換えにシステムの応答性を向上させてくれるカーネルということらしい。やはり試すだけの価値はありそうだ。なお、下記の一連のコマンドはArch Linux環境を前提にしている。
1$ sudo pacman -S linux-zen linux-zen-headers
さっそくZENカーネルを導入する。インストールが完了したら以前のカーネルを削除しなければならないが、nVidiaのプロプライエタリなドライバーを使用している人はこちらの方もカスタムカーネルに適したものに変更しておく必要がある。
1$ sudo pacman -S nvidia-dkms
続いて、以前のドライバーとlinuxカーネルを削除する。
1$ sudo pacman -R nvidia linux
環境によっては先にnvidiaドライバーを削除してからでなければPacmanに怒られるかもしれない。また、LTSカーネルを使用している場合はlinux-lts
を指定すること。
これらの作業を終えたらinitramfsイメージを生成する。
1$ sudo mkinitcpio -p linux-zen
最後にブートローダの再設定を行う。
1$ sudo bootctl update #systemd-bootの例
2$ sudo grub-mkconfig -o /boot/grub/grub.cfg #grubの例
3$ sudo vim /boot/loader/entries/arch.conf #エントリの編集
4
5#以下、編集画面
6title Arch Linux
7linux /vmlinuz-linux-zen #zenを付け足す
8initrd /intel-ucode.img
9initrd /initramfs-linux-zen.img #zenを付け足す
保存後、再起動してuname -r
を実行した結果が下記の形になっていればZENカーネルの導入に成功している。
15.9.12-zen1-1-zen
ぶっちゃけ今のところ特に何かが改善された実感はないが、ZENカーネルに関して日本語の情報がほとんど見当たらなかったので共有しておこうと思った。Linuxコミュニティに栄光あれ。