Linux内核中的dm-crypt模块的异步IO改造---blog5

2021SC@SUDSC

Linux内核编译

1.下载源码

在官网https://www.kernel.org/下载需要的内核版本源代码,我下载的是linux-5.14.11。

2.解压

sudo tar -xavf  linux-5.14.11.tar.xz  -C /usr/src 

因为要对 / 目录进行修改,所以必须使用特权指令,下面就不再赘述。

3.保持源代码干净

如果是第一次编译,我们并不知道下载的源代码中受否保留目标文件*.o或者其他的相关配置文件,因此,在正式编译前,我们可以通过make mrproper命令来删除掉“编译过程的目标文件以及配置文件”

make mrproper

这个命令也会将你以前选择过的没和功能文件删除,因此只用在第一次编译的时候才使用这个命令。另外,还有一个与这个类似的命令make clean ,我们大多数时候使用这个命令来删除前一次编译过程的残留数据,因为make clean 只会删除像目标文件之类的编译过程中产生的中间文件,并不会删除配置文件。

make clean

4.选择内核功能

Linux2.6以后,内核引入了kbuild机制,可以通过make menuconfig 配置把配置信息保存在.config文件中,当.config文件改变以后,再重新编译内核,Kbuild能够保证只进行最小化的编译。Linux内核的编译系统主要包含两种文件:

  1. 交互式配置工具,这些文件是编译生成的可执行文件,用来提供内核编译过程中的交互,并把用户配置交互的结果存到.config文件中。比如当用户输入make menuconfig命令时,Makefile会编译出mconf文件,mconf会根据内核根目录下的.config初始化配置界面,在配置结束的时候,把配置结果保存到.config文件中。
  2. Kconfig文件,其在各个子目录下都存在,它定义了交互式配置信息的菜单。比如当用户输入make menuconfig命令时,会运行mconf arch/x86/Kconfig,这个就定义了出现在menuconfig中的所有菜单项。
make menuconfig

会出现下面这样一个交互式配置界面,其是由scripts目录下的脚本生成的。

交互式配置界面
根据自己的需求,可以选择是否把相应的模块编译进内核。其中

  • [*]表示把对应模块编译进内核。
  • [M]表示把对应模块编译成客家在模块。
  • [ ]表示不把对应模块编译进内核。

在执行make menuconfig命令时,可能会出现下面错误

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值