标签:空格 menu gen inux ice 简单的 default 3.5 目录
内核裁剪的方式有两种:
第一种:make menuconfig 进入图形界面的配置。
第二种:就是打开源码进行相应的裁剪。
这里我们先介绍一下第一种方式的裁剪方式:make menuconfig
首先介绍下make menuconfig 这个命令实际上是这样运行的:./scripts/kconfig/mconf arch/arm/Kconfig
mconf:这个是一个解析器,用来解析Kconfig文件
Kconfig:就是用来生成我们make menuconfig看到的所有选项,当然,Kconfig也是一层层调用的,和makefile类似。下面我们来写一个最简单的Kconfig文件。
首先在我们上一节课的目录下driver/mydriver下创建一个Kconfig的文件:并写入一下代码
1 config MY_DRIVER 2 bool "select mydriver" //这是一个选项,并没有与我们的mydirver.c关联 3 default n //默认情况下不选择 也就是make menuconfig 中[ ]空的情况 想要选择的话,default y 4 help //对应我们make menuconfig 中下面的 select exit help 中的help 5 IF yuo select this ,you will happy !!! //这个是help中的解释描述
然后保存退出./scripts/kconfig/mconf driver/mydriver/Kconfig文件:
可以看到我们的选项就长成这个样子;
上面我们说过Kconfig是一层层调用的,所以我们来打开上层的Kconfig,把我们写的Kconfig写入到上层Kconfig,这样就能够make menuconfig的时候直接在整体的选项里面看到我们的Kconfig所生成的选项;
vim ../Kconfig 照猫画虎:第三行就是我们添加的代码用source 命令。source一下我们的Kconfig
1 menu "Device Drivers" 2 3 source "drivers/mydriver/Kconfig" 4 5 source "drivers/base/Kconfig" 6 7 source "drivers/connector/Kconfig" 8 9 source "drivers/mtd/Kconfig"
最后,make menuconfig 就可以看到我们的选项了,这次我们用空格按键把它选上,exit 保存。
[liuye@LiuYe linux-3.5]$>make menuconfig scripts/kconfig/mconf Kconfig # # configuration written to .config # *** End of the configuration. *** Execute ‘make‘ to start the build or try ‘make help‘.
可以看到配置被写入到.config文件下:
我们来打开这个文件搜索一下 :/MY_DRIVER
1096 # 1097 # Device Drivers 1098 # 1099 CONFIG_MY_DRIVER=y 1100 1101 # 1102 # Generic Driver Options 1103 #
可以看到:CONFIG_MY_DRIVER=y。 这就是我们把自己编写出来的选项选中了;如果不选中的话,则如下#CONFIG_MY_DRIVER is not set
1096 # 1097 # Device Drivers 1098 # 1099 # CONFIG_MY_DRIVER is not set 1100 1101 # 1102 # Generic Driver Options 1103 #
到这里添加一个最简单的make menuconfig选项就写完了,后面我们会再讲解如何编写其他类型的选项。
标签:空格 menu gen inux ice 简单的 default 3.5 目录
原文地址:https://www.cnblogs.com/axjlxy/p/8946980.html