如何把设备驱动文件添加到Linux内核编译选项配置的menuconfig中

如何把设备驱动文件添加到Linux内核编译选项配置的menuconfig中,第1张

1.首先保证已经有驱动源文件了:as352x_afe_charger.c

放在和其他你所要添加的模块放在一个目录下,此处是drivers\i2c\chips下。

2.在drivers\i2c\chips\makefile中,添加:

obj-$(CONFIG_AS352X_AFE_CHG) += as352x_afe_charger.o

3.在drivers\i2c\chips\Kconfig

中,添加如下内容:

---------------------无敌分割线-------------------------

config AS352X_AFE_CHG

tristate "AS352X AFE Charger Driver"

depends on I2C_AS352X &&AS352X_AFE

help

If you say yes here you get support for AS352X AFE Charger.

This driver can also be built as a module. If so, the module

will be called AS352X AFE Charger.

---------------------无敌分割线-------------------------

解释如下:

(1)AS352X_AFE_CHG是自己定义的名字,当然要尽量保证有意义。

同时,你会注意到,在上面的makefile中添加的

obj-$(CONFIG_AS352X_AFE_CHG) += as352x_afe_charger.o

中的CONFIG_AS352X_AFE_CHG,是CONFIG_加上我们在kconfig下写的config变量。

这两个要匹配,才能实现你在menconfig定义的结果,传递到makefile中,

以便决定编译的时候是如何编译:不编译/编译进内核/编译成模块

(2)tristate 表示我此处添加的模块,可以

在make ARCH=arm menuconfig中看到的,选择之后:

* 编译到内核中

M 编译成模块,即生成XXX.ko

不选中,就不编译该文件

(3)depends on I2C_AS352X &&AS352X_AFE

是前面自己找到的,表示此编译选项只有当I2C_AS352X 和AS352X_AFE都选中,才会出现。

当然,如果此模块不依赖于其他模块,则不需要加上这个depends on了。

【附录】

1.如果设置成M,module模式,则要用

make ARCH=arm

编译出as352x_afe_charger.ko

make ARCH=arm uImage

只能编译内核,而不编译模块。

你好,在Linux里面我们所看到的menuconfig界面是通过配置内核顶层的Kconfig产生的,而当输入make menuconfig命令的时候系统会读取Makefile来解析Kconfig。

通常会在Kconfig里面编写以下四项:

1、模块的名字,用module开头;

2、选项,通常设为bool(二选一)或者trastate(三选一);

3、默认选项;

4、帮助说明。

有关menuconfig 的更多解释可以参考以下文章,写的很详细。希望能够帮到你~~

文章地址:http://blog.csdn.net/mc_hust/article/details/33737265

ICS/GB版本请在alps代码目录下shell:

./mk ${project name} new /*在配置kernel前先保证new过,如果已经new过可以省却这步。new后会在kenerl目录下生成.config,该文件在make menuconfig会用到,如果不存在.config文件则所有的kernel配置都会恢复成默认的*/

cd kernel /*切换到kernel目录 */

TARGET_PRODUCT=${project name} make menuconfig /*使用menuconfig配置,修改选项后保存退出,此时会在kernel目录下重新生成.config文件 */

将.config复制到mediatek/config/${project name}/autoconfig/kconfig/目录下并重命名为project

重新new kernel和用./mk bootimage即可下载

ICS2以后的版本请在alps代码目录下shell:

./mk ${project name} new /*在配置kernel前先保证new过,如果已经new过可以省却这步。new后会在kenerl目录下生成.config,该文件在make menuconfig会用到,如果不存在.config文件则所有的kernel配置都会恢复成默认的*/

cd kernel /*切换到kernel目录 */

TARGET_PRODUCT=${project name} make O=out menuconfig /*

如果出现../mediatek/build/kernel/Makefile找不到的错误,请用

TARGET_PRODUCT=${project name} KBUILD_OUTPUT_SUPPORT=yesmake

O=out menuconfig

配置完后,new kernel,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11642091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存