{{tag>linux}} # kernel コンパイル たまにしかやらないから手順を忘れます。 ## configure ``` # cd /usr/src/linux # make menuconfig ``` kernel をバージョンアップする場合は、既存の .config をコピーしてから `make menuconfig` する。 ## menuconfig ### CONFIG_LOCALVERSION を設定する 俺ルールです。場所は "General setup" 直下です。うちの環境では `-web1.20170406.01` みたいな値をセットしてます。そうすると、デフォルトの名前の後ろに追加されるので "kernel-4.9.6-gentoo-r1-web1.20170406.01" みたいな名前のカーネルになるので、例えば…… ``` # ls /lib/modules 4.4.39-gentoo-web1.20170122.01 4.9.6-gentoo-r1-web1.20170205.01 4.4.39-gentoo-web1.20170122.04 4.9.6-gentoo-r1-web1.20170406.01 4.4.39-gentoo-web1.20170123.01 ``` ……こんな感じで並びます。 ### /root/ に config を保存する 設定を変更して `` する前に `` を2回実行します。 1. .config 2. /root/kernel-4.9.6-gentoo-r1-web1.20170406.01.config 1回目は /usr/src/linux 下に、2回目はバックアップとして[kernel に付けた名前](#CONFIG_LOCALVERSION_を設定する)と同名で保存してます……趣味です。 ## make ``` # make -j7 && make modules_install ``` ## インストール ``` # mount /boot # cp /usr/src/linux/arch/x86_64/boot/bzImage /boot/kernel-4.9.6-gentoo-r1-web1.20170406.01 ``` ここでも[kernel に付けた名前](#CONFIG_LOCALVERSION_を設定する)を使うようにしてます。 ## ブートローダーの設定 ``` # grub-mkconfig -o /boot/grub/grub.cfg ``` ## リブートしてバージョン確認 ``` # systemctl reboot ``` とか ``` # reboot ``` とかで再起動して、バージョンを確認します。 ``` # uname -r 4.9.6-gentoo-r1-web1.20170406.01 ```