免费注册 查看新帖 |

Chinaunix

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

[驱动] 问题:内核模块的编译 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-22 13:31 |只看该作者 |倒序浏览
小弟近日在做一个v4l2相关的项目
里面有个驱动模块,源文件只有video-buf.c

在这个源文件中并没有module_int()与module_exit()
只有下面几个东西:
module_param(debug, int, 0644);

MODULE_DESCRIPTION("helper module to manage video4linux pci dma buffers");
MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]");
MODULE_LICENSE("GPL");

EXPORT_SYMBOL_GPL(videobuf_vmalloc_to_sg);
。。。。EXPORT_SYMBOL_GPL有一大堆。。。

居然也可以正确的编译成.ko
然后也能正确的用insmod加载
小弟百思不得其解,求指教

论坛徽章:
0
2 [报告]
发表于 2012-04-22 16:42 |只看该作者
本帖最后由 vincentve 于 2012-04-22 16:42 编辑

碉堡了,我弄了个空文件,居然也编译过了,也insmod成功了

makefile就是从网上抄的,内容如下:
ifeq ($(KERNELRELEASE),)

KERNELDIR ?= /lib/modules/$(shell uname -r)/build  

PWD := $(shell pwd)

modules:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules

modules_install:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install

clean:
        rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions

.PHONY: modules modules_install clean

else
    obj-m := noinit.o
endif

这事为何这么神奇。。。。

论坛徽章:
0
3 [报告]
发表于 2012-04-23 13:30 |只看该作者
本帖最后由 vincentve 于 2012-04-23 13:30 编辑

是否可以理解为,Video-buf.ko并不为用户空间提供任何接口,只为内核空间的其他驱动程序提供EXPORT_SYMBOL()声明的调用,像个库一样,仅此而已。。。
在没有高人来明确给个说法之前,小弟只好先这么理解了,求指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP