Linux编译并更新内核(替换Linux内核)


实验环境:
OS: Ubuntu20.10LTS
Old Kernel: linux 5.8.0
New Kernel: linux 5.13.0
注: 查看当前内核版本命令 "uname -r"


1、获取Linux Kernel源码

可以通过官网下载原始版本的内核代码,也可以使用其它厂商或自己修改过的内核代码。
官网下载链接:https://kernel.org
Linus Torvalds 提交的各种版本内核的官网下载链接:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/refs/?h=v5.13
所有版本版本内核的官方库: https://mirrors.edge.kernel.org/pub/linux/kernel/

2、编译并安装新内核

(1) 首先将下载的内核代码解压,并放置在/usr/src目录下。如下linux-5.13.0-imlinux 5.13.0版本内核修改过的内核版本。

imaginemiracle:src$ ls
linux-5.13.0-im     linux-headers-5.8.0-25-generic  linux-headers-5.8.0-59-generic
linux-headers-5.8.0-25  linux-headers-5.8.0-59

(2) 在编译内核之前安装一下编译所必要的工具和库文件。

# 首先更新软件源
imaginemiracle:src$ sudo apt-get update
imaginemiracle:src$ sudo apt-get install libncurses5-dev build-essential kernel-package flex bison libelf-dev libssl-dev

(3) 进入新添的内核主目录

imaginemiracle:src$ cd linux-5.13.0-im

(4) 清理内核

imaginemiracle:linux-5.13.0-im$ sudo make clean
imaginemiracle:linux-5.13.0-im$ sudo make mrproper

(5) 配置内核
将的当前使用的内核配置文件拷贝到新内核目录下。

imaginemiracle:linux-5.13.0-im$ sudo cp /boot/config-$(uname -r) .config
# 根据自己的需要去配置内核
imaginemiracle:linux-5.13.0-im$ sudo make menuconfig

(6) 编译内核

imaginemiracle:linux-5.13.0-im$ sudo make -j8
imaginemiracle:linux-5.13.0-im$ sudo make modules -j8

(7) 安装内核

imaginemiracle:linux-5.13.0-im$ sudo make modules_install
imaginemiracle:linux-5.13.0-im$ sudo make install

安装完成后可以使用如下命令查看当前内核的启动顺序。

imaginemiracle:linux-5.13.0-im$ grep menuentry /boot/grub/grub.cfg

(8) 更新gurb菜单
编辑/etc/default/grub文件,需要将GRUB_HIDDEN_TIMEOUTGRUB_HIDDEN_TIMEOUT_QUIET注释掉,或者直接拷贝下面的内容替换该文件,其中GRUB_DEFAULT可以为其指定默认选择的内核(如:**“GRUB_DEFAULT=Ubuntu, Linux 5.13.0-rc5+”**这种形式,当然这里的内核改为读者自己想要的默认内核)。
注: 下面提供两个版本,1、开机不进入grub菜单直接选择最新内核进入系统;; 2、开机进入grub菜单可以主动选择以哪个内核进入系统。

imaginemiracle:linux-5.13.0-im$ sudo vim /etc/default/grub
  • 隐藏grub: 开机不进入grub菜单直接选择最新内核或指定的内核进入系统
#file::/etc/default/grub
#1、开机不进入grub菜单直接选择最新内核进入系统
GRUB_DEFAULT=0
#开机不显示grub菜单,并直接指定Linux5.13.0-rc5+内核进入Ubuntu系统
#GRUB_DEFAULT=Ubuntu,Linux5.13.0-rc5
#************* Hide grub ************
GRUB_TIMEOUT_STYLE=hidden
GRUB_HIDDDEN_TIMEOUT=0
GRUB_TIMEOUT=0
#************** End Hide ************
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
  • 显示grub: 开机进入grub菜单主动选择以哪个内核进入系统
#file::/etc/default/grub
#2、开机进入grub菜单可以主动选择以哪个内核进入系统
GRUB_DEFAULT=0
#************* Display grub *************
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
#************** End Display *************
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

在修改好grub文件后,需要更新。

imaginemiracle:linux-5.13.0-im$ sudo update-grub

(9) 重启系统并选择新添加的内核进入系统
重启命令: sudo reboot
1、选择Advanced options for Ubuntu
在这里插入图片描述
2、选择新添加的内核版本
在这里插入图片描述

(10) 查看内核是否替换成功

imaginemiracle:~$ uname -r
5.13.0-rc5+

到此Linux内核替换完成

觉得这篇文章对你有帮助的话,就留下一个赞吧 ^v^*
请尊重作者,转载还请注明出处!感谢配合~
[作者]: Imagine Miracle
[版权]: 本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
[本文链接]: https://blog.csdn.net/qq_36393978/article/details/118391685

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐