免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1740 | 回复: 3
打印 上一主题 下一主题

[驱动] 新手关于Linux驱动开发的2个问题 [复制链接]

论坛徽章:
2
射手座
日期:2014-09-03 00:18:022015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-27 00:06 |只看该作者 |倒序浏览
刚接触Linux驱动开发,有2个问题想请教一下各位
1,如果我的驱动不想编译进内核,准备以module的形式加载到系统中,个人理解的是只需要把相关的ko文件放到文件系统中,想用的时候insmod xxx.ko就可以了;
但是我在看内核移植教程的时候,看到内核配置选项里面有3种选择,分别是 不支持/编译进内核/编译成模块,我想问一下这个不支持和编译成模块有什么区别呀?编译成模块这个选项在这里有什么意义?

2,/dev下面都是设备对应的文件,当需要使用某个设备的时候,打开对应的设备文件之后再操作,有个问题是,/dev下面的文件很多,而且有时候通过文件名并不知道这个是什么设备,当用户想用某个设备的时候,怎么知道这个设备对应的设备文件是哪个呢,因为这个驱动程序并不是用户自己写的,它不知道他们的对应关系呀?

论坛徽章:
0
2 [报告]
发表于 2013-12-27 09:34 |只看该作者
不支持就是代码不参加编译,编译成模块就是会在XXX.c目录下生成一份XXX.ko模块。你可以拷贝出来放到system中使用。
/dev下面的设备名字除了自己后边添加的,其它都是android默认的设备,它的功能都是有说明的。如果是自己添加的设备,
你自己知道它的功能和调用方式。

论坛徽章:
2
射手座
日期:2014-09-03 00:18:022015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2013-12-28 14:49 |只看该作者
是不是可以这么理解:
当选择为模块的时候,相当于在编译内核image的时候,顺带着帮忙把需要的ko也编出来了,至于用不用,由用户自己来决定,如果想用,自己把它拷贝到文件系统的/lib/module之类的目录下面,然后insmod来加载就可以了;
如果选不编译的话,编内核时只是单纯的编译内核image,用户以后想用这个模块的时候,就需要单独的去编译这个ko了

论坛徽章:
0
4 [报告]
发表于 2013-12-29 10:55 来自手机 |只看该作者
这类模块依赖于内核编译选项,如果在make config的时候没有选取,下次编译编译会相对麻烦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP