内置驱动程序时,驱动程序无法正常工作

时间:2014-10-01 13:01:03

标签: linux linux-device-driver

我为beagle-bone写了一个基本的字符驱动程序,它通过工作队列和使用printk的tasklet以1秒的间隔打印两条消息。

首先,我将其构建为模块驱动程序,生成.ko文件,使用insmod命令加载它,并通过dmesg查看打印。

然后我构建为内置驱动程序并加载uImage,启动后我检查了dmesg打印。但是没有印刷品。

在.config文件中

 CONFIG_MY_DRIVER=y

所以我认为它被视为内置驱动程序。

我如何确认它是否真正构建在最终图像中。建设时没有报告错误。

在驱动程序中加载构建是否还有其他步骤。

如果我在任何基础知识上出错了,请原谅我。我是linux的新手。

1 个答案:

答案 0 :(得分:0)

这意味着您可能将其添加到Kconfig文件的某个位置: “CONFIG_MY_DRIVER = Y”

但是,你有没有把它添加到Makefile?它的工作方式就是这样,然后内核在构建一个Image时,采用所有这些指令“CONFIG_ *”并用它来构建Makefile中的特定源文件。

示例:

cat fs/ext2/Makefile
ext2-$(CONFIG_EXT2_FS_SECURITY)  += xattr_security.o

cat fs/ext2/Kconfig
config EXT2_FS_SECURITY
    bool "Ext2 Security Labels"
    depends on EXT2_FS_XATTR

所以在上面这个例子中,如果您的源文件是xattr_security.c,那么在构建时,您应该在fs / ext2目录中获取xattr_security.o文件。如果您的文件是在编译过程中构建的,那么您也应该看到它。