-f linux_编译linux内核源码-安装和删除内核

1afa6ec0a8b6eee1665833d0b52bca08.png

一、Linux内核编译、安装流程

本博客属于原创,转载请注明来源

此处只讲linux内核编译步骤至于安装虚拟机,安装ubuntu操作系统请自行百度

环境信息:

Linux操作系统:ubuntu16.04
内核版本:4.15.0-29-generic
需要编译和安装的内核源码版本:4.19

第一步:下载linux内核源码

官网地址地址:https://www.kernel.org/


c106042a01563fd129d5821b059c6fd9.png

官网大致是这个样子,大家关注我标出的位置就OK了

第一列:

mainline当前在开发的内核新版本
stable 稳定的内核版本
longterm 长期维护的内核版本

第二列:

版本号以小数点分割
第一个位置主版本号一般有重大改变时会修改的版本号(具有里程碑意义)
第二个位置次版本号偶数代表稳定版本(可商用),奇数代表开发板不稳定(不可商用)
第三个位置这个号码代表当前版本修改次数(每次可能修改一些bug)

第三列:

当前版本最后一次修改代码时间

第四列:

tarball:完整的代码
pgp:验证签名
patch:基于上一个版本的补丁(一般商用的系统不会频繁的编译内核,所以可以打补丁上去方便)

第二步:上传代码解压,安装软件

登录ubuntu16.04
切换到root权限:su - root

查看当前操作系统安装了哪些内核(注意:当前操作系统可以安装许多内核,但是当前运行的内核只能有一个)

dpkg --list | grep linux-image

查看当前运行的内核版本

uname –r

为了防止后面安装的时候报错首先执行下面命令安装软件

sudo apt-get install libncurses5-dev libssl-dev -y
sudo apt-get install build-essential openssl -y
sudo apt-get install zlibc minizip -y
sudo apt-get install libidn11-dev libidn11 -y
sudo apt-get install bison -y
sudo apt-get install flex -y
sudo apt-get install libelf-dev -y
sudo apt-get install libelf-devel -y
sudo apt-get install elfutils-libelf-devel –y
sudo apt-get install flex –y
sudo apt-get install bison -y

将内核源码解压到/usr/src/目录下

tar xvf 源码包

将解压后的源码包创建新链接

ln –s 解压后源码包名 linux


187101a81bbc6d98179f265b9b9845b6.png

第三步:配置编译选项开始编译安装内核

make mrproper   清空一些配置信息检查源码是否完整
make clean       清空一些编译信息
cd /usr/src/linux
make menuconfig

这里选择内核中哪些模块参与编译(简单的说就是哪些编译好的内核有哪些功能,具体的功能在下一节博客中会给大家详细介绍),这里打下按向右的箭头,选择退出,弹出对话框口选择yes,这里的意思是选择默认的配置。

在当前目录下执行

make(相当于make bzImage加make modules)另外make可以加-j 20  意思启动20个线程编译
make modules          生成相应的模块
make modules_install    将相应的模块拷贝到对应的目录下
make install            该命令的作用是将.config,vmlinuz,initrd.img,System.map文件到/boot/目录、更新grub。默认启动新内核

二、如何删除内核:

查看当前安装的内核

dpkg --get-selections | grep linux

e658890cb36637e1e0febc4a6405ad69.png


如上图所示,在该图列表中含image 部分是已经安装过的内核

执行apt-get remove linux-image-****-generic

或者

sudo apt-get purge linux-image-****-generic
(移除后启动选项中还会有卸载的内核选项)
update-grub  更新grub这样在系统启动的时候就不会有卸载掉的内核了这样就彻底的卸载了

问题

dpkg --get-selections|grep linux

有时候这个命令找不到刚才安装的内核

这个时候用一下方法

删除boot下面和要删除的内核版本相关的文件 rm –rf rm -f *3.19.8*
删除/usr/src/目录下的内核源码
update-grub 更新grub

首先恭喜您,能够认真的阅读到这里,如果对部分理解不太明白,建议先将文章收藏起来,然后对不清楚的知识点进行查阅,然后在进行阅读,相应你会有更深的认知。如果您喜欢这篇文章,就点个赞或者【关注我】吧!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值