前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内核必须懂(三): 重编Ubuntu18.04LTS内核4.15.0

内核必须懂(三): 重编Ubuntu18.04LTS内核4.15.0

作者头像
sean_yang
发布2019-03-22 11:51:12
1.4K0
发布2019-03-22 11:51:12
举报
文章被收录于专栏:Sorrower的专栏Sorrower的专栏

目录

  • 前言
  • 编译前准备
  • 编译
  • 安装
  • 重启之后
  • 最后

前言

之前在写系统调用的时候也说过, 但是当时理解有限, 写的不好. 这次再重新编译内核, 分享经验.


编译前准备

首先补包:

代码语言:javascript
复制
sudo apt-get install build-essential kernel-package libncurses5-dev libssl-dev

中途可能会看到如图, 建议保持版本即可:

编译前准备

打开grub文件, 由于我的是单Ubuntu系统, 不是常见的Win+Ubuntu双系统, 所以开机选择系统的选项就默认隐藏了, 需要手动打开, 即注释掉第7行:

代码语言:javascript
复制
sudo vim /etc/default/grub

启动菜单

然后更新下grub:

代码语言:javascript
复制
sudo update-grub

然后下载源码, 这里推荐阿里的镜像:

阿里镜像

这里我在Home下建立了目录, 解压源码到下面:

代码语言:javascript
复制
sudo tar -zxvf linux-4.15.tar.gz

源码

然后拷贝配置文件, 其实这就是Ubuntu18.04.1LTS自带的配置文件, 这么做的好处就是稳, 如果你知道自己修改的内核配置是什么, 也同样可以在这个原有编译基础上修改. 当然, 现在你应该在解压的源码下面:

代码语言:javascript
复制
sudo cp /boot/config-4.15.0-46-generic .config

配置文件


编译

如果你之前编译过, 建议先sudo make mrproper进行清理, 尤其是之前编译失败了. 然后就开始编译, 至少两个小时吧:

代码语言:javascript
复制
sudo make-kpkg clean
sudo make-kpkg --initrd kernel-headers kernel_image

安装

然后你会发现上层目录中多了两个deb包, 安装它们:

代码语言:javascript
复制
sudo dpkg -i *.deb
reboot

编译完成


重启之后

重启之后使用uname -r查看内核版本号, 发现已经改成4.15.0:

内核号

之前默认内核如图:

内核号

当然了, 不只是内核号变了, 还多了些内容, 在/usr/src下面多了源码文件夹和头文件文件夹:

变化

build和source都指向源码目录, kernel里面则是编译好的模块:

变化

/boot下同样增加了自编译内核的相关文件:

变化

最后看到/boot/grub/grub.cfg中多了自编译内核的启动信息:

变化


最后

内核篇章很久没更新了, 重编内核是基础. 喜欢记得点赞, 有意见或者建议评论区见哦~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.03.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 前言
  • 编译前准备
  • 编译
  • 安装
  • 重启之后
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档