目的是为Android中的linux内核来配置CONFIG_DYNAMIC_FTRACE选项。
智能硬件Android版本:8.1
智能硬件Linux版本:4.4
智能硬件芯片平台:Arm32
实验PC环境:Ubuntu
查看KERNEL_DEFCONFIG的定义,由于只支持arm32我们只更改arm文件夹下即可。
如果是arm64位芯片,需同时更该arm和arm64文件夹下的内容。
由此非eng编译环境下配置文件应为kernel-4.4/arch/arm/configs/*_defconfig
注:产品代号已经用 * 替代,该处请自行根据需要去替换编译产品名称
kernel-4.4/arch/arm/configs/*_defconfig为上述所说的配置文件
发现依赖如下两个depends的配置项
由此在kernel-4.4/arch/arm/configs/*_defconfig文件中新增如下两个依赖的配置项
由此发现FUNCTION_TRACER的一个配置项
HAVE_DYNAMIC_FTRACE的配置项定义没有依赖项
最终把改配置项添加到kernel的配置文件kernel-4.4/arch/arm/configs/*_defconfig中
提取出终端kernel配置文件
查看config文件是否包含CONFIG_DYNAMIC_FTRACE=y,大功告成
make oldconfig和make defconfig的区别为:意思不同、用法不同、侧重点不同。
一、意思不同
1.make oldconfig意思:生成旧配置。
2.make defconfig意思:生成内核编译。
二、用法不同
1.make oldconfig用法:make oldconfig和make config类似,但是它的作用是在现有的内核设置文件基础上建立一个新的设置文件,只会向用户提供有关新内核特性的问题,在新内核升级的过程 中,make oldconfig非常有用,用户将现有的配置文件.config复制到新内核的源码中,执行make oldconfig,此时,用户只需要回答那些针对新增特性的问题。
2.make defconfig用法:基于文本的最为传统的也是最为枯草的一种配置方式,但是它可以使用任何情况,这种方式会为每一个内核支持的特性向用户提问,如果用户回答“y”,则把特性编译进内核;回答“m”,则它特性作为模块进行编译;回答“n”,则表示不对该特性提供支持。
三、侧重点不同
1.make oldconfig侧重点:oldconfig是将当前内核源码的新特性加入.config中去。
2.make defconfig侧重点:defconfig是直接按照默认的i386_defconfig生成.config。
一直以为make oldconfig的作用是将利用当前的.config覆盖defconfig,从而使下次运行make config/menuconfig时的缺省设置成为当前.config的设置,今天发现是个错误,需要澄清:1. 如果.config不存在,运行make config/menuconfig时的缺省设置由固化在各个Kconfig文件中各项目的缺省值决定。
2. 如果.config存在,运行make config/menuconfig时的缺省设置即是当前.config的设置,若对设置进行了修改,.config将被更新。
3. arch/arm/defconfig是一个缺省的配置文件,make defconfig时会根据这个文件生成当前的.config。
4. arch/arm/configs文件夹中有许多命名为xxx_defconfig的配置文件,如果运行make xxx_defconfig,当前.config文件会由xxx_defconfig文件生成。
5. make oldconfig的作用是备份当前.config文件为.config.old,如若make config/menuconfig设置不当可用于恢复先前的.config。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)