• 编译linux内核源码,安装、删除内核【转】


    转自:https://blog.csdn.net/qq_28437139/article/details/83692907?utm_source=distribute.pc_relevant.none-task

    Linux内核编译、安装流程
    本博客属于原创,转载请注明来源

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

    环境信息:
    Linux操作系统:ubuntu16.04

    内核版本:4.15.0-29-generic

    需要编译和安装的内核源码版本:4.19

    第一步:下载linux内核源码
    官网地址地址:https://www.kernel.org/

     

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

    第一列:

    mainline当前在开发的内核新版本

    stable 稳定的内核版本

    longterm 长期维护的内核版本

    第二列:

    版本号以小数点分割

    第一个位置主版本号一般有重大改变时会修改的版本号(具有里程碑意义)

    第二个位置次版本号偶数代表稳定版本(可商用),奇数代表开发板不稳定(不可商用)

    第三个位置这个号码代表当前版本修改次数(每次可能修改一些bug)

    第三列:

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

    第四列:

    tarball:完整的代码

    pgp:验证签名

    patch:基于上一个版本的补丁(一般商用的系统不会频繁的编译内核,所以可以打补丁上去方便)

    在这里我们点击tarball下载完整代码

    第二步:上传代码解压,安装软件
    登录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

     

    第三步:配置编译选项开始编译安装内核
    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

     

    如上图所示,在该图列表中含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
    ————————————————
    版权声明:本文为CSDN博主「一只小黑」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_28437139/article/details/83692907

  • 相关阅读:
    poj 3087 直接模拟
    POJ-3126 BFS,埃式筛选及黑科技
    POJ3278-Catch That Cow
    js变量提升
    饿了么
    2分钟就能学会的【Google/百度搜索大法】了解一下?
    span标签间距
    Vue移动端项目如何使用手机预览调试
    Port 3000 is already in use
    koa2第一天 async详解
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/12340891.html
Copyright © 2020-2023  润新知