深入浅出linux内核-第二篇-为Ubuntu 20.04升级最新内核linux-6.15.2
本文详细记录了在Ubuntu 20.04虚拟机上将内核从5.15.0-134升级到6.15.2的完整过程。首先从kernel.org下载源码并解压,安装flex、bison等依赖工具后通过menuconfig配置内核选项。在编译过程中解决了openssl、libelf等依赖问题,最终成功编译并安装内核模块。重启验证后系统内核版本成功升级至6.15.2,为后续内核学习和调试奠定了基础。整个操作涵盖了
前言
我在工作中使用的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 系统的调试学习。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)