概述
概要:简单记录Kconfig 编写方法和 make menuconfig 配置时的展现形式的对应。
平台:ubuntu 20.04
kernel 版本:linux-4.0
在上一篇博客《驱动的第一个模块》中,编写驱动Kconfig后,配置时呈现的效果和代码对比如下:
此时进了 Device drivers 就可以看到 Hello Word driver support,也就是说 Hello Word 是在二级目录下。假如rivotek下的驱动很多,希望进入三级目录进行配置呢?
仿照着kernel里的的其他模块编写了Makefile 和修改了 drivers下的Makefile,编译老是报错:
linux-4.0$ make menuconfig
scripts/kconfig/mconf Kconfig
drivers/rivotek/Kconfig:18: 'endmenu' in different file than 'menu'
drivers/rivotek/Kconfig:1: location of the 'menu'
drivers/Kconfig:187: 'endmenu' in different file than 'menu'
drivers/rivotek/Kconfig:1: location of the 'menu'
make[1]: *** [scripts/kconfig/Makefile:24:menuconfig] 错误 1
make: *** [Makefile:543:menuconfig] 错误 2
核对许久,没有找到问题,百度了该错误,找到如下相同错误的博客:编译错误-----Kconfig之'endmenu' in different file than 'menu'
再仔细对比,缺少少了一个回车,添加后可以出配置界面。 查看配置项,和代码对应关系如下:
Kconfig 配置
menu "Rivotek"
config RIVOTEK
bool "Rivotek Drivers"
---help---
Enable support for various drivers write by Rivotek
if RIVOTEK
config HELLOWORLD
tristate "Hello Word driver support"
default m
help
This is a driver module test,just for pratice.
endif # if RIVOTEK
endmenu
还需更改drivers下的Makefile配置,如下:
diff --git a/drivers/Makefile b/drivers/Makefile
index 527a6da8..0ef64a04 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -165,3 +165,6 @@ obj-$(CONFIG_RAS) += ras/
obj-$(CONFIG_THUNDERBOLT) += thunderbolt/
obj-$(CONFIG_CORESIGHT) += coresight/
obj-$(CONFIG_ANDROID) += android/
+
+
+obj-$(CONFIG_RIVOTKE) += rivotek/
编译后,居然没有Helloworld.ko 生成!
检查 .config 文件,有配置,无误。
检查 Makefile,和rivotek 文件夹下的Kconfig 对比
配置名字写错了…………
更改为
diff --git a/drivers/Makefile b/drivers/Makefile
index 527a6da8..0ef64a04 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -165,3 +165,6 @@ obj-$(CONFIG_RAS) += ras/
obj-$(CONFIG_THUNDERBOLT) += thunderbolt/
obj-$(CONFIG_CORESIGHT) += coresight/
obj-$(CONFIG_ANDROID) += android/
+
+
+obj-$(CONFIG_RIVOTEK) += rivotek/
主要更改点:CONFIG_RIVOTKE ====》 CONFIG_RIVOTEK
编译,生成Helloworld.ko。
drivers文件夹 下 Makefile 最初写错了,后面又修正;这里有占用篇幅的嫌疑,但真实的记录了debug的过程。同时,假如有读过这篇博客的朋友在自己工作中遇到类似的情况,此处提供一个debug思路。
最后
以上就是俊秀咖啡为你收集整理的kernel驱动配置文件的编写的记录的全部内容,希望文章能够帮你解决kernel驱动配置文件的编写的记录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复