昨天 Linux 6.0-rc1 内核发布了,写一个编译安装教程喵


本文以 Arch Linux 演示编译过程,其他发行版可能编译方法略有不同

安装依赖

1
pacman -Sy base-devel xmlto kmod inetutils bc libelf git cpio perl tar xz

获取源码

下载解压 Linux 内核的压缩包,当然也可以直接 git clone

1
2
3
4
5
6
wget https://git.kernel.org/torvalds/t/linux-6.0-rc1.tar.gz
mkdir linux
cd linux
7z x ../linux-6.0-rc1.tar.gz # install p7zip first
7z x linux-6.0-rc1.tar
cd linux-6.0-rc1

然后配置权限并确保内核树绝对干净

1
2
chmod +x ./scripts/*
make clean && make mrproper

配置

获取当前内核的配置

1
zcat /proc/config.gz > .config

之后执行 make menuconfig 命令,进行编译配置
不推荐使用 root 用户编译

配置好之后保存,返回 Shell

编译

使用下面的命令开始编译

1
make -j$(nproc)

编译内核模块

1
make modules

编译完成后内核存储在 arch/x86_64/boot/bzImage

安装

我自己编译了一个 Linux 6.0,如果你不能自己编译,也可以点击下方链接获取
https://download.mbrjun.cn/%E5%88%B7%E6%9C%BA%E5%8C%85/Linux/Linux-6/6.0/6.0.0/rc1/

如果是自己编译

进入编译目录,输入下面的命令安装模块

1
sudo make modules_install

然后安装内核并创建 initramfs

1
sudo cp -v bzImage /boot/vmlinuz-linux-mbrjun

上面的命令中,linux-mbrjun是我内核的名称,你也可以自定义名称,重命名建议以 vmlinuz 开头

然后需要编辑 /etc/mkinitcpio.d/linux-mbrjun.preset,输入下面的内容:

1
2
3
4
5
6
ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux-mbrjun"
PRESETS=('default' 'fallback')
default_image="/boot/initramfs-linux-mbrjun.img"
fallback_image="/boot/initramfs-linux-mbrjun-fallback.img"
fallback_options="-S autodetect"

注意:如果上面修改了内核名称,此处也要修改

执行 mkinitcpio -p linux-mbrjun,生成 initramfs

然后重新生成 grub 配置文件:grub-mkconfig -o /boot/grub/grub.cfg

使用编译好的 Linux

是的,我懒得造 pacman 安装包,请你手动安装
先把两个 initramfs 开头的文件 和 一个 vmlinuz 开头的文件拷贝到 /boot

然后将 7z 压缩包内的文件解压到 /lib/modules解压出来的文件夹需要改名为 6.0.0-rc1-MBRjun

然后重新生成 grub 配置文件:grub-mkconfig -o /boot/grub/grub.cfg

使用

重启设备,开机时选择你的新内核