免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zhj1011
打印 上一主题 下一主题

加载驱动出错:No such device(已解决,谢谢各位大侠) [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
11 [报告]
发表于 2009-04-29 16:15 |只看该作者
但是加载驱动时,没有打印出这个提示信息。说明系统没有调用这个probe函数,这是怎么回事啊???

那就正好印证了你前面加载是的错误。还是系统认为找不到你的设备,所以就不会调用了你自己的probe函数。这个你调用自己的probe函数提示找不到设备是一样的。
你是使用的这个函数吗:
platform_driver_probe(&ds1302_platform_driver,ds1302_rtc_probe);

论坛徽章:
8
2015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2015-02-04 12:00:07羊年新春福章
日期:2015-02-04 11:57:56双子座
日期:2014-12-02 11:44:59金牛座
日期:2014-10-08 16:47:08狮子座
日期:2014-08-29 13:37:46巳蛇
日期:2014-08-26 17:32:29NBA常规赛纪念章
日期:2015-05-04 22:32:03
12 [报告]
发表于 2009-04-29 16:19 |只看该作者
原帖由 Godbach 于 2009-4-29 16:15 发表

那就正好印证了你前面加载是的错误。还是系统认为找不到你的设备,所以就不会调用了你自己的probe函数。这个你调用自己的probe函数提示找不到设备是一样的。
你是使用的这个函数吗:
platform_driver_prob ...


是的。出现insmod: cannot insert 'rtc-ds1302.ko': No such device错误,使用的是:platform_driver_probe(&ds1302_platform_driver,ds1302_rtc_probe);

但是,我使用platform_driver_register(&ds1302_platform_driver);,系统同样没有调用函数static int __devinit ds1302_rtc_probe(struct platform_device *pdev)

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
13 [报告]
发表于 2009-04-29 16:22 |只看该作者
你的意思是指你的使用这两个函数都没有进入你的probe函数中吗?

论坛徽章:
0
14 [报告]
发表于 2009-04-29 16:24 |只看该作者
请问Godbach版主,你是如何学习内核的。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
15 [报告]
发表于 2009-04-29 16:27 |只看该作者
呵呵,我也是一点一点零碎的学习。最初看LDD3,就了解一下内核模块。然后进了公司,正好有这方面的开发,就学这做了些。然后就系统的学了Netfilter。期间,不停得看LDD3,并且有时间的就时间。我觉得LDD3这本书值得多看几遍。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
16 [报告]
发表于 2009-04-29 16:28 |只看该作者
static struct platform_driver ds1302_platform_driver = {
        .driver                = {
                .name        = DRV_NAME,
                .owner        = THIS_MODULE,
        },
        .probe                = ds1302_rtc_probe,
        .remove                = __devexit_p(ds1302_rtc_remove),
};


我不太了解你这种驱动初始化的时候需要那些成员。只用这三个成员就可以了吗?

PCI驱动中是要初始化一个table的,用于告诉内核该驱动程序支持哪些设备。

论坛徽章:
8
2015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2015-02-04 12:00:07羊年新春福章
日期:2015-02-04 11:57:56双子座
日期:2014-12-02 11:44:59金牛座
日期:2014-10-08 16:47:08狮子座
日期:2014-08-29 13:37:46巳蛇
日期:2014-08-26 17:32:29NBA常规赛纪念章
日期:2015-05-04 22:32:03
17 [报告]
发表于 2009-04-29 16:30 |只看该作者
原帖由 Godbach 于 2009-4-29 16:22 发表
你的意思是指你的使用这两个函数都没有进入你的probe函数中吗?



对的。 使用这两个函数都没有进入probe函数。

论坛徽章:
8
2015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2015-02-04 12:00:07羊年新春福章
日期:2015-02-04 11:57:56双子座
日期:2014-12-02 11:44:59金牛座
日期:2014-10-08 16:47:08狮子座
日期:2014-08-29 13:37:46巳蛇
日期:2014-08-26 17:32:29NBA常规赛纪念章
日期:2015-05-04 22:32:03
18 [报告]
发表于 2009-04-29 16:35 |只看该作者
原帖由 Godbach 于 2009-4-29 16:28 发表


我不太了解你这种驱动初始化的时候需要那些成员。只用这三个成员就可以了吗?

PCI驱动中是要初始化一个table的,用于告诉内核该驱动程序支持哪些设备。


是这样的。目标板使用的是AT91RM9200芯片,但是AT91RM9200的内置时钟,不支持掉电保存功能。所以,使用ds1302外接了个RTC时钟模块。ds1302的通讯方式是SPI。我看了下,Linux2.6.27内核的drivers/rtc下,有ds1302的驱动源码:rtc-ds1302.c,但这个驱动是针对平台sh的(sh具体是什么,小弟也不知)。我是想通过对这个驱动源码进行修改,获得ARM平台下,支持ds1302的驱动。
我只是对其中的涉及管脚的地方进行了修改,其余的都没有动。

[ 本帖最后由 zhj1011 于 2009-4-29 16:54 编辑 ]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
19 [报告]
发表于 2009-04-29 16:35 |只看该作者
原帖由 zhj1011 于 2009-4-29 16:30 发表



对的。 使用这两个函数都没有进入probe函数。


这个驱动是开发版提供的,还是你自己又进行修改了。

论坛徽章:
8
2015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2015-02-04 12:00:07羊年新春福章
日期:2015-02-04 11:57:56双子座
日期:2014-12-02 11:44:59金牛座
日期:2014-10-08 16:47:08狮子座
日期:2014-08-29 13:37:46巳蛇
日期:2014-08-26 17:32:29NBA常规赛纪念章
日期:2015-05-04 22:32:03
20 [报告]
发表于 2009-04-29 16:49 |只看该作者
原帖由 Godbach 于 2009-4-29 16:35 发表


这个驱动是开发版提供的,还是你自己又进行修改了。


这个驱动的源码是Linux2.6.27内核下自带的,我是对内核下的rtc-ds1302.c进行修改的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP