内核必须懂(三): 重编Ubuntu18.04LTS内核4.15.0
时间:2022-06-19
本文章向大家介绍内核必须懂(三): 重编Ubuntu18.04LTS内核4.15.0,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
目录
- 前言
- 编译前准备
- 编译
- 安装
- 重启之后
- 最后
前言
之前在写系统调用的时候也说过, 但是当时理解有限, 写的不好. 这次再重新编译内核, 分享经验.
编译前准备
首先补包:
sudo apt-get install build-essential kernel-package libncurses5-dev libssl-dev
中途可能会看到如图, 建议保持版本即可:
编译前准备
打开grub文件, 由于我的是单Ubuntu系统, 不是常见的Win+Ubuntu双系统, 所以开机选择系统的选项就默认隐藏了, 需要手动打开, 即注释掉第7行:
sudo vim /etc/default/grub
启动菜单
然后更新下grub:
sudo update-grub
然后下载源码, 这里推荐阿里的镜像:
阿里镜像
这里我在Home下建立了目录, 解压源码到下面:
sudo tar -zxvf linux-4.15.tar.gz
源码
然后拷贝配置文件, 其实这就是Ubuntu18.04.1LTS自带的配置文件, 这么做的好处就是稳, 如果你知道自己修改的内核配置是什么, 也同样可以在这个原有编译基础上修改. 当然, 现在你应该在解压的源码下面:
sudo cp /boot/config-4.15.0-46-generic .config
配置文件
编译
如果你之前编译过, 建议先
sudo make mrproper
进行清理, 尤其是之前编译失败了. 然后就开始编译, 至少两个小时吧:
sudo make-kpkg clean
sudo make-kpkg --initrd kernel-headers kernel_image
安装
然后你会发现上层目录中多了两个deb包, 安装它们:
sudo dpkg -i *.deb
reboot
编译完成
重启之后
重启之后使用
uname -r
查看内核版本号, 发现已经改成4.15.0:
内核号
之前默认内核如图:
内核号
当然了, 不只是内核号变了, 还多了些内容, 在/usr/src下面多了源码文件夹和头文件文件夹:
变化
build和source都指向源码目录, kernel里面则是编译好的模块:
变化
/boot下同样增加了自编译内核的相关文件:
变化
最后看到/boot/grub/grub.cfg中多了自编译内核的启动信息:
变化
最后
内核篇章很久没更新了, 重编内核是基础. 喜欢记得点赞, 有意见或者建议评论区见哦~
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python自学成才之路 numpy 基础
- python自学成才之路 文件读写操作
- go 中string[0]到底是rune还是byte?
- python自学成才之路 类详细用法
- Linux 监控之 IO
- python自学成才之路 函数详细用法
- 你所不知道的TIME_WAIT和CLOSE_WAIT
- linux之网络
- linux vim编辑器之常用指令
- saltstack手册(含官方pdf)
- 详解Go变量类型的内存布局
- linux vim 编辑器之多文件多窗口编辑
- 深入解析 Go 中 Slice 底层实现
- 2017年的golang、python、php、c++、c、java、Nodejs性能对比(golang python php c++ java Nodejs Performance)
- linux文件时间属性 查看和修改文件时间