Linux 当内置驱动程序时,驱动程序不工作

Linux 当内置驱动程序时,驱动程序不工作,linux,linux-device-driver,Linux,Linux Device Driver,我为beagle bone编写了一个基本的字符驱动程序,它通过一个工作队列和一个使用printk的tasklet,以1秒的间隔打印两条消息 首先,我将它构建为模块驱动程序,生成.ko文件,使用insmod命令加载它,当通过dmesg查看时,打印就来了 然后,我构建了内置驱动程序,加载uImage,启动后,我检查了dmesg打印。但是没有指纹 在.config文件中 CONFIG_MY_DRIVER=y 所以我认为它是内置的驱动程序 我如何确认它是否在最终图像中实际构建。生成时未报告任何错误

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

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

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

在.config文件中

 CONFIG_MY_DRIVER=y
所以我认为它是内置的驱动程序

我如何确认它是否在最终图像中实际构建。生成时未报告任何错误

加载内置驱动程序是否需要执行其他步骤


如果我在一些基本问题上出错了,请原谅。我对linux非常陌生。

这意味着您可能在Kconfig文件的某个地方添加了它: 配置我的驱动程序=y

但是,您是否已将其添加到Makefile中?它是这样工作的,然后内核在构建映像的过程中,获取所有这些指令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 dir中获取xattr_security.o文件。如果您的文件是编译过程中生成的,您也应该看到它。

我也在make文件中做了修改。。。但它仍然不起作用……你能给我看看你所有的配置吗?也许你不只是把它包含在另一个Makefile中。是否创建了.o文件?感谢您的帮助。我刚刚在init函数中添加了一个内核打印,该打印显示设备正在注册。我将使用一些内核打印进行更多检查,如果您确定驱动程序已编译并链接到内核,我将立即更新,然后查看如何使用initcall\u debug检查驱动程序的init例程是否被调用。