Linux五步构建内核树

 更新时间:2021年12月06日 15:44:34   作者:Xav Pun  
大家好,本篇文章主要讲的是Linux五步构建内核树,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览

0. 系统自带的内核树

有时,安装的系统已经自带了Linux内核树,足够用来编译驱动程序了。

自带的内核树通常位于

/lib/modules/<系统内核版本>/build

其中,系统内核版本可以用uname -r来查看

$ uname -r
5.11.0-41-generic

不过自带的内核树似乎不完整,所以建议按照下面的方法编译一个完整的内核树。

1. 环境配置

第一步

初次配置内核树要先安装一些必要的环境

sudo apt-get build-dep linux linux-image-$(uname -r)

(如果报错Error :: You must put some ‘source‘ URIs in your sources.list,请参照这里)

第二步

除了上面的环境之外,还要安装这些

sudo apt-get install libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf dwarves

2. 下载源码

sudo apt-get source linux-image-unsigned-$(uname -r)

这一步结束之后,会多出三个文件,

linux-hwe-5.11_5.11.0-41.45~20.04.1.diff.gz
linux-hwe-5.11_5.11.0-41.45~20.04.1.dsc
linux-hwe-5.11_5.11.0.orig.tar.gz

以及一个内核源码所在的文件夹

linux-hwe-5.11-5.11.0

(注:文件名称根据不同的系统版本会有所不同)

3. 构建准备

(注:任何时候,运行命令时遇见了permission denied,只需要在命令开头加上sudo后重新运行即可)

进入linux-hwe-5.11-5.11.0文件夹,输入

make menuconfig

稍微加载后,会进入这个页面

在这里插入图片描述

这里什么都不用修改,直接关闭界面即可(方向键选择Exit然后回车,或者连续按两下Esc就能退出),原因见本章节末。

然后,会显示这个对话框

在这里插入图片描述

蓝色框选中Yes后,按下回车键退出即可。

这样会在当前目录下生成一个.config文件(输入ls -a就能找到这个文件),保证稍后的make能够顺利执行。

4. 构建内核

输入下面的命令开始构建(如遇见permission denied,在命令开头加上sudo后重新运行即可)

make

这里要狠狠地等一会儿,一般要一到数个小时。可以通过-j <最大并发任务数>命令,使用并发来提速。最大并发任务数一般可以是CPU数量的两倍。

(注:通过使用make help进行查阅可以发现,在输入make时,会自动执行 1)make vmlinux(构建原始内核) 2)make bzImage(构建压缩的内核)和 3) make modules(单独构建模块化的驱动)这三个动作)

5. 安装模块

最后,把模块安装到/lib/modules/$(uname -r)目录

sudo make modules_install 

总结

到此这篇关于Linux五步构建内核树的文章就介绍到这了,更多相关Linux内核树内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux中OpenSSL命令的应用场景分析

    Linux中OpenSSL命令的应用场景分析

    这篇文章主要介绍了Linux中OpenSSL命令的应用场景,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • linux 字符界面 安装模式创建LVM

    linux 字符界面 安装模式创建LVM

    linux 字符界面 安装模式创建LVM,需要的朋友可以参考下。
    2010-03-03
  • Squid集群做CDN全网加速配置分享

    Squid集群做CDN全网加速配置分享

    主服务器群,然后在利用Squid逆向缓存web80端口来加速自己的网站.各大门户网站象163,sina,chinaitlab之类基本都是使用的这种技术,好处是大大的有.比如加速了网络和可以防黑客(因为他们见到的都是CDN的主机)
    2013-04-04
  • CentOs 7.*中配置安装phpMyAdmin的完整步骤记录

    CentOs 7.*中配置安装phpMyAdmin的完整步骤记录

    phpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的资料库管理工具。下面这篇文章主要给大家介绍了关于CentOs 7.*中配置安装phpMyAdmin的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧
    2018-07-07
  • Linux下的chkconfig命令详解

    Linux下的chkconfig命令详解

    大家都知道chkconfig命令在linux中使用是非常的关键的,我们可以利用chkconfig来对系统的一些启动与禁止相关设置,下面这篇文章小编就来给大家详细的介绍Linux下的chkconfig命令用法,有需要的朋友们可以参考学习,下面来一起看看吧。
    2016-11-11
  • CentOS 7.3配置Nginx虚拟主机的方法步骤

    CentOS 7.3配置Nginx虚拟主机的方法步骤

    这篇文章主要介绍了CentOS 7.3配置Nginx虚拟主机的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • linux下查看so或可执行程序的依赖库

    linux下查看so或可执行程序的依赖库

    今天小编就为大家分享一篇关于linux下查看so或可执行程序的依赖库,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • Linux和windows文件互传的两种方案

    Linux和windows文件互传的两种方案

    有时linux主机中的一些文件可能会在windows环境下用到,例如在linux主机中抓了一些图片,想把它们传到windows主机上以作为 word文档的插图,在这些情况下,都需要一种方法来进行两者之间的互通,所以本文给大家介绍了Linux和windows文件互传的两种方案
    2024-05-05
  • 从Centos7升级到Centos8的教程(图文详解)

    从Centos7升级到Centos8的教程(图文详解)

    这篇文章主要介绍了从Centos7升级到Centos8的教程,在升级之前需要配置备份,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2019-11-11
  • 详解nohup /dev/null 2>&1 含义的使用

    详解nohup /dev/null 2>&1 含义的使用

    这篇文章主要介绍了详解nohup /dev/null 2>&1 含义的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09

最新评论