无法从模块获取内核消息

时间:2014-11-07 14:37:10

标签: c linux linux-kernel linux-device-driver insmod

我正在尝试使用自定义硬件组件的驱动程序,源代码可以在这里找到:

https://github.com/godspeed1989/zedboard/blob/master/led_drv/driver/myled.c

问题是当我这样做时:

insmod myled.ko

控制台或dmesg日志中没有显示任何内容。我正在阅读Linux设备驱动程序3,并写上你总是必须这样做:

module_init(init_function);
module_exit(exit_function);

在源代码中没有它们,而是有:

module_platform_driver(myled_driver);

但是当我加载一个带有这个函数的模块时,没有什么是打印的,相反如果我使用module_init和module_exit消息出现,这两种结构有什么区别?

1 个答案:

答案 0 :(得分:0)

"但是为什么后者的声明在第一个声明无效的情况下不起作用? " 第一个methond将通过module_platform_driver宏将驱动程序注册到系统和总线。 后面的语句不会将您的驱动程序注册到系统和总线。为此,您需要通过调用platform_device_register()在init_function()例程中注册驱动程序。