热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubantu20.04更换Linux内核版本(5.8.1)

替换linux的内核一共有两种方式,第一种方式是下载官方kernel提供的源码包

替换linux的内核一共有两种方式,第一种方式是下载官方kernel提供的源码包,进行编译替换;第二种直接下载内核安装包deb,进行升级替换,本文采用第一种方式,将源码包进行编译替换

文章目录

  • 实验环境
  • 实验步骤(在root权限下进行)
    • 1.内核编译前的准备工作
    • 2.下载内核
    • 4. 编译新内核
    • 5. 内核安装
    • 6. 安装模块
    • 7. 生成initrd.img文件
    • 8. 切换到/boot/grub/目录下,自动查找新内核,并添加至grub引导
    • 9. 重启Ubantu,在previous version中选择启动新编译的内核

实验环境

VMware虚拟机Ubantu20.04,Linux5.8.1内核源代码包

实验步骤(在root权限下进行)

1.内核编译前的准备工作

sudo apt-get install build-essential kernel-package libncurses5-dev

2.下载内核

下载地址:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/v5.x/
(1)查看虚拟机Ubantu20.04内核版本:

uname -a //ubantu内核版本为5.8.0-48

在这里插入图片描述
(2)将Linux5.8.1压缩包移动到用户目录的源目录,即/usr/src目录下,并进行解压

sudo mv /home/zzu/tools/linux-5.8.1.tar.xz /usr/src
cd /usr/src
sudo tar -xvJf ./linux-5.8.1.tar.xz

3.配置编译的相关文件及环境
(1)首先,清理以前编译时留下的临时文件。如果是刚刚解开的包,不需要执行这步。如果是第二次或者是第n次编译,那么一定要执行

sudo make mrproper

(2)将自己原本内核的配置文件拷贝过来成为新内核的配置文件

cp /boot/config-5.8.0-48-generic ./.config

(3)进入内核的源码目录,并执行menuconfig

cd /usr/src/linux-5.8.1
make menuconfig

在这里插入图片描述

发现报错:make menuconfig错误——make[2]: *** [scripts/kconfig/lexer.lex.c] 错误 127

需要安装工具:

sudo apt-get install bison
sudo apt-get install flex

然后再执行make menuconfig,出现菜单

在这里插入图片描述
(4)通过up/down键和回车,进入Kernel hacking —>Compile-time checks and compiler options —>(1024)Warn for stack frames larger than,将1024改为2048
在这里插入图片描述
(5)修改配置文件:

gedit .config

搜索pem,将CONFIG_SYSTEMTRUSTED_KEYS后面的引号中的内容删掉
在这里插入图片描述

4. 编译新内核

(1)编译命令:

make all -j4

出现编译错误 : fatal error: openssl/bio.h: 没有那个文件或目录
需要安装libssl-dev

sudo apt-get install libssl-dev

编译成功,并生成bzImage(在linux-5.8.1–>arch–>x86–>boot文件中)
在这里插入图片描述

5. 内核安装

(1)将生成的bzImage镜像文件复制到目录下:

cp arch/x86/boot/bzImage /boot/vmlinuz-5.8.1

(2)将源代码目录下的System.map复制到/boot目录下:

cp /usr/src/linux-5.8.1/System.map System.map-5.8.1

(3)将源代码目录下的.config复制到/boot/目录下:

cp /usr/src/linux-5.8.1/.config /boot/config-5.8.1

在这里插入图片描述

6. 安装模块

sudo make modules_install
sudo make install

7. 生成initrd.img文件

cd /lib/modules/5.8.1
update-initramfs –c –k 5.8.1

在这里插入图片描述

8. 切换到/boot/grub/目录下,自动查找新内核,并添加至grub引导

cd /boot/grub
update-grub

在这里插入图片描述

9. 重启Ubantu,在previous version中选择启动新编译的内核

重启时,长按shift,可进入GRUB,选择Advanced options for ubantu,启动新编译的内核(5.8.1)
在这里插入图片描述

重启后执行命令:

uname –a

在这里插入图片描述

可以看到版本为5.8.1,内核替换成功!


推荐阅读
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
author-avatar
政哲俊其舒涵
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有