按照“STEP BY STEP”的标准,从下载内核源代码开始,
介绍优麒麟版本,写出编译过程,包括每一个命令的使用。
本人实现的基础是VMware上的优麒麟22.04 LTS 操作系统,虚拟机配置如下,没有事先安装任何工具和依赖。
- 安装编译所需要的包
首先更新系统包索引,确保后续安装的软件包是最新版本。此步需要输入用户密码。
sudo apt update
开始安装编译 Linux 内核所需的工具和库。
$ sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev fakeroot
$ sudo apt install dwarves
- flex 和 bison:用于解析源码中的语法。
- build-essential:提供编译工具链(如 gcc)。
- libncurses-dev:用于构建交互式配置界面。
- libssl-dev 和 libelf-dev:提供加密和 ELF 文件操作支持。
- fakeroot:创建虚拟管理员环境,避免编译过程中需要管理员权限。
- 从 kernel.org 官方网站下载内核源代码
这里我选择了6.6.82版本(其他版本也可以)。下载时需要使用 sudo 来获取超级用户权限,以便能够写入 /usr/src 目录。
$ cd /usr/src
$ sudo wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.82.tar.xz
$ sudo tar -xf linux-6.6.82.tar.xz
$ sudo rm -f linux-6.6.82.tar.xz
- 配置内核
进入内核所在文件夹,使用本地模式生成配置文件,执行以下命令时会出现很多选项,一直回车就行。
$ cd linux-6.6.82
$ sudo make localmodconfig
然后修改配置:
$ sudo scripts/config --disable SYSTEM_TRUSTED_KEYS
$ sudo scripts/config --disable SYSTEM_REVOCATION_KEYS
$ sudo scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS ""
$ sudo scripts/config --set-str CONFIG_SYSTEM_REVOCATION_KEYS ""
- 编译
$ sudo fakeroot make -j2
fakeroot负责构建虚拟的管理员环境,-j后面的数字是编译的CPU核心数量,不要超过虚拟机分配的数量。
编译完成后,可以使用以下命令查看是否成功,输出0则编译成功,其他数字不成功。
$ sudo echo $?
- 安装
安装分为两部分:安装内核模块和安装内核本身。时间不长,几分钟即可。
$ sudo make modules_install
$ sudo make install
之后,重新启动计算机。
- 检验
重启后打开终端,输入以下命令,查看内核信息。
$ sudo reboot
$ uname -rs