前言

我在工作中使用的Linux开发环境是基于VMware搭建的Ubuntu 20.04虚拟机,系统内核版本为5.15.0-134。为了深入学习Linux内核技术,我决定将Ubuntu 20.04升级至最新的6.15.2内核版本。本文将详细记录从零开始的操作全过程。

peter@linux-fly:~$ uname -rs
Linux 5.15.0-134-generic

一、下载源码

您可以从Linux内核官方网站(www.kernel.org)下载linux-6.15.2版本的源代码。
在这里插入图片描述
二、编译linux源码

peter@linux-fly:~$ tar -xvf linux-6.15.2.tar.xz
linux-6.15.2/
linux-6.15.2/.clang-format

1、解压linux源码压缩包

peter@linux-fly:~$ tar -xvf linux-6.15.2.tar.xz
linux-6.15.2/
linux-6.15.2/.clang-format
......

2、查看内核目录,并配置Linux内核

1)进入内核目录,查看Linux目录结构

peter@linux-fly:~$ cd linux-6.15.2/
peter@linux-fly:~/linux-6.15.2$ ls
arch   certs  CREDITS  Documentation fs  init  ipc Kconfig  lib  MAINTAINERS  mm   README  samples  security  tools  virt
block  COPYING  crypto  drivers  include  io_uring  Kbuild  kernel   LICENSES Makefile  net  rust   scripts  sound    usr

2)打开linux的menuconfig图形化配置界面

peter@linux-fly:~$ make menuconfig
打开两次分别报以下两个错误:
/bin/sh: 1: flex: not found
/bin/sh: 1: bison: not found
解决方案: sudo apt-get install flex bison -y

正确打开menuconfig,如下所示:
在这里插入图片描述
修改后的配置将自动保存至Linux内核根目录下的.config文件中。

3、编译内核
sudo make -j8

错误1:scripts/sign-file.c:25:10: fatal error: openssl/opensslv.h: No such file or directory
解决方案:(安装OPEN-SSL )命令:sudo apt-get install libssl–dev
错误2:fatal error: gelf.h: No such file or directory
解决方案:(缺少头文件gelf.h)命令:sudo apt-get install libelf-dev
错误3:/bin/sh: 1: zstd: not found
解决方案:sudo apt install zstd
还有遇到一些其他错误,遇到什么错误解决什么错误就行。

内核编译成功,如下所示:

peter@linux-fly:~/linux-6.15.2$ sudo make -j8
[sudo] password for peter:
DESCEND objtool
CALL    scripts/checksyscalls.sh
INSTALL libsubcmd_headers
CHK     kernel/kheaders_data.tar.xz
Kernel: arch/x86/boot/bzImage is ready  (#1)

4、安装模块

sudo make modules_install
...
INSTALL /lib/modules/6.15.2/kernel/net/qrtr/qrtr-mhi.ko
SIGN    /lib/modules/6.15.2/kernel/net/qrtr/qrtr-mhi.ko
DEPMOD  /lib/modules/6.15.2

5、安装内核

sudo make install
...
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done

6、验证是否成功安装内核,需要重新启动系统

reboot
peter@linux-fly:~$ uname -rs
Linux 6.15.2
peter@linux-fly:~$ uname -a
Linux linux-fly 6.15.2 #1 SMP PREEMPT_DYNAMIC 		Mon Jun 16 11:22:46 CST 2025 x86_64 x86_64 x86_64 GNU/Linux

Ubuntu 20.04 系统内核已成功升级至 Linux 6.15 版本,后续可通过修改内核源码来进行 Linux 系统的调试学习。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐