内核是任何基于 Linux 的操作系统的核心部分,它充当计算机系统软件和硬件之间的桥梁,还提供用户和应用程序与计算机交互所需的接口。内核提供了许多功能,包括进程调度、资源分配、设备管理、中断处理、内存管理和进程。
在撰写本文时,内核的最新版本为 6.0,其中包含许多修复、性能改进、增强功能和新硬件支持。
在本教程中,我将向您展示如何在 Ubuntu 22.04 上安装 Linux Kernel 6.0。
先决条件
- 运行 Ubuntu 22.04 的服务器。
- 一个有效的域名指向您的服务器 IP。
- 在您的服务器上配置了 root 密码。
入门
在开始之前,建议更新并升级所有系统包到最新版本,您可以通过运行以下命令来更新所有这些:
代码语言:txt复制apt update -y
apt upgrade -y
更新所有软件包后,重新启动系统以应用更改。
代码语言:txt复制reboot
接下来,使用以下命令验证当前内核版本:
代码语言:txt复制uname -a
您应该看到以下输出:
代码语言:txt复制Linux ubuntu2204 5.15.0-33-generic #34-Ubuntu SMP Wed May 18 13:34:26 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
下载 Linux 内核 6.0
最新的内核不包含在 Ubuntu 22.04 默认存储库中,所以你需要下载内核源代码并在你的系统上编译它。
首先,使用以下命令安装编译内核所需的所有依赖项:
代码语言:txt复制apt install build-essential dwarves python3 libncurses-dev flex bison libssl-dev bc libelf-dev zstd gnupg2 wget -y
接下来,使用以下命令下载内核 6.0:
代码语言:txt复制wget https://git.kernel.org/torvalds/t/linux-6.0-rc7.tar.gz
下载完成后,使用以下命令解压缩下载的文件:
代码语言:txt复制tar xvf linux-6.0-rc7.tar.gz
配置内核 6.0 模块
接下来,您需要指定编译内核所需的内核模块。
首先,导航到提取的目录并使用以下命令复制现有的内核配置:
代码语言:txt复制cd linux-6.0-rc7/
cp -v /boot/config-$(uname -r) .config
接下来,使用以下命令配置内核:
代码语言:txt复制make menuconfig
您应该看到以下屏幕:
您可以在此处进行更多配置,然后单击“保存”按钮。您应该看到以下屏幕:
接下来,使用以下命令 禁用SYSTEM_REVOCATION_KEYS :
代码语言:txt复制scripts/config --disable SYSTEM_REVOCATION_KEYS
make localmodconfig
编译内核 6.0
创建 .config 配置文件后,使用以下命令编译内核:
代码语言:txt复制make bzImage
您应该看到以下输出:
代码语言:txt复制SYNC include/config/auto.conf.cmd
HOSTCC scripts/kconfig/conf.o
HOSTLD scripts/kconfig/conf
SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
SYSHDR arch/x86/include/generated/asm/unistd_32_ia32.h
SYSHDR arch/x86/include/generated/asm/unistd_64_x32.h
接下来,使用以下命令安装内核模块:
代码语言:txt复制make modules
make modules_install
最后,使用以下命令安装 Linux Kernel 6.0:
代码语言:txt复制make install
安装完成后,可以在/boot目录下验证新安装的内核:
代码语言:txt复制initrd.img-6.0.0-rc7
vmlinuz-6.0.0-rc7
更新 Grub 引导装载程序
接下来,您还需要更新 Grub 引导加载程序以应用更改:
代码语言:txt复制update-grub
您应该看到以下输出:
代码语言:txt复制Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.0.0-rc7
Found initrd image: /boot/initrd.img-6.0.0-rc7
Found linux image: /boot/vmlinuz-5.15.0-46-generic
Found initrd image: /boot/initrd.img-5.15.0-46-generic
Found linux image: /boot/vmlinuz-5.13.0-30-generic
Found initrd image: /boot/initrd.img-5.13.0-30-generic
Found memtest86 image: /boot/memtest86 .elf
Found memtest86 image: /boot/memtest86 .bin
接下来,重新启动系统以从新安装的内核引导。
代码语言:txt复制reboot
系统重启后,使用以下命令验证您的系统内核:
代码语言:txt复制uname -a
您应该在以下输出中看到新安装的内核:
代码语言:txt复制Linux ubuntu2204 6.0.0-rc7