构建Linux内核进程树
2021/12/1 7:11:03
本文主要是介绍构建Linux内核进程树,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- 前言
- 下载内核源码
- 开始构建
- 1. 安装必须的包
- 2. 生成配置文件
- 3. 开始构建
- 附录:可能的错误
- 参考链接
前言
想要编写自己的Linux
驱动(driver),第一步是要先构建Linux内核进程树
。
下载内核源码
1. 内核版本的选择
如何选择将要构建的内核进程树的版本,要看编写的驱动想要运行在哪个版本的Linux内核
上。
比如,我想编写一个能运行在我的内核上的驱动(driver),首先要做的是查看自己的内核版本。
方法是运行uname
命令
uname -r
这里显示的5.11.0-40-generic
说明我要build的内核版本应为5.11.0
。
2. 下载源码
在这里的官网下载源文件。
https://mirrors.edge.kernel.org/pub/linux/kernel/
(注意,要下载linux
开头的,而不是ChangeLog
开头的)
开始构建
1. 安装必须的包
首先,确保已经安装这些包(这是为了下一步的menuconfig
所准备的,如果使用不同的config
方法,需要的包可能有所不同)。
ncurses-dev
,flex
,bison
,libelf-dev
,libssl-dev
(注意:这里列出的是Ubuntu系统中包的名字。在其它系统中,这些包可能有不同的名字,请各位自行检索。)
2. 生成配置文件
正式构建前,需要先生成配置文件,来指定构建出的系统的各项属性。
这里使用menuconfig
。
make menuconfig
(还有很多其他的生成配置文件的方法,如oldconfig
,menuconfig
,xconfig
。每种需要另外安装的包可能有所不同。)
如果出现任何报错,安装对应的包即可。
如果没有任何问题,将显示下面的UI
。
不用做改变,按两下Esc
退出即可。(如果弹出提示框选择Yes
即可。)
(如果想了解每种选项的作用,可以参照这篇文章:Make Menuconfig详解 (配置内核选择)- CSDN)
3. 开始构建
输入
make
等待构建完成(过程可能持续1到多小时)。
附录:可能的错误
报错信息:
make[1]: *** No rule to make target 'debian/canonical-certs.pem', needed by 'certs/x509_certificate_list'. Stop.
解决方法
-
打开
.config
文件vim .config
-
把
CONFIG_SYSTEM_TRUSTED_KEYS
的值改为空字符串""
。(感谢@王小多在这篇文章下的评论:如果文件中这一行被注释了:
# CONFIG_SYSTEM_TRUSTED_KEYS not set
,也需要解除注释,手动设为空字符串才行。否则sysnconfig
仍会问你要不要设置。)CONFIG_SYSTEM_TRUSTED_KEYS=""
-
设置的结果如下
(有的小伙伴问我这里的vim是怎么设置的,具体的配置我放在了这篇文章里【vim】个性化配置vim(.vimrc)) -
然后重新运行
make
命令即可。
解决方法二
也可在终端中运行下面的命令来达到相同的效果。
scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
参考链接
内核错误: No rule to make target ‘debian/canonical-certs.pem‘, needed by ‘certs/x509_certificate_list‘ - CSDN
Compiling the kernel 5.11.11 - askubuntu
linux 内核源码树的建立
这篇关于构建Linux内核进程树的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法