Linux五步构建内核树
大家好,本篇文章主要讲的是Linux五步构建内核树,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
目录
0. 系统自带的内核树
1. 环境配置
第一步
第二步
2. 下载源码
3. 构建准备
4. 构建内核
5. 安装模块
总结
0. 系统自带的内核树
有时,安装的系统已经自带了Linux内核树
,足够用来编译驱动程序了。
自带的内核树通常位于
1 | /lib/modules/ <系统内核版本> /build |
其中,系统内核版本可以用uname -r
来查看
1 2 | $ uname -r 5.11.0-41-generic |
不过自带的内核树似乎不完整,所以建议按照下面的方法编译一个完整的内核树。
1. 环境配置
第一步
初次配置内核树要先安装一些必要的环境
1 | sudo apt-get build-dep linux linux-image-$( uname -r) |
(如果报错Error :: You must put some ‘source‘ URIs in your sources.list
,请参照这里)
第二步
除了上面的环境之外,还要安装这些
1 | sudo apt-get install libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf dwarves |
2. 下载源码
1 | sudo apt-get source linux-image-unsigned-$( uname -r) |
这一步结束之后,会多出三个文件,
1 2 3 | 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 |
以及一个内核源码所在的文件夹
1 | linux-hwe-5.11-5.11.0 |
(注:文件名称根据不同的系统版本会有所不同)
3. 构建准备
(注:任何时候,运行命令时遇见了permission denied
,只需要在命令开头加上sudo
后重新运行即可)
进入linux-hwe-5.11-5.11.0
文件夹,输入
1 | make menuconfig |
稍微加载后,会进入这个页面
这里什么都不用修改,直接关闭界面即可(方向键选择Exit
然后回车,或者连续按两下Esc
就能退出),原因见本章节末。
然后,会显示这个对话框
蓝色框选中Yes
后,按下回车键退出即可。
这样会在当前目录下生成一个.config
文件(输入ls -a
就能找到这个文件),保证稍后的make
能够顺利执行。
4. 构建内核
输入下面的命令开始构建(如遇见permission denied
,在命令开头加上sudo
后重新运行即可)
1 | make |
这里要狠狠地等一会儿,一般要一到数个小时。可以通过-j <最大并发任务数>
命令,使用并发来提速。最大并发任务数
一般可以是CPU数量的两倍。
(注:通过使用make help
进行查阅可以发现,在输入make
时,会自动执行 1)make vmlinux
(构建原始内核) 2)make bzImage
(构建压缩的内核)和 3) make modules
(单独构建模块化的驱动)这三个动作)
5. 安装模块
最后,把模块安装到/lib/modules/$(uname -r)
目录
1 | sudo make modules_install |
总结
到此这篇关于Linux五步构建内核树的文章就介绍到这了
原文链接:https://blog.csdn.net/weixin_39591031/article/details/121710076