Linux USB驱动框架分析(二)

转载 2012年03月26日 09:15:40

好,了解过USB一些规范细节之后,我们现在来看看Linux的驱动框架。事实上,Linux的设备驱动,特别是这种hotplug的USB设备驱动,会被编译成模块,然后在需要时挂在到内核。要写一个Linux的模块并不复杂,以一个helloworld为例:

#include <linux/init.h>

#include <linux/module.h>

MODULE_LICENSE(“GPL”);

static int hello_init(void)

{

printk(KERN_ALERT “Hello World!\n”);

return 0;

}

static int hello_exit(void)

{

printk(KERN_ALERT “GOODBYE!\n”);

}

module_init(hello_init);

module_exit(hello_exit);

这个简单的程序告诉大家应该怎么写一个模块,MODULE_LICENSE告诉内核该模块的版权信息,很多情况下,用GPL或者BSD,或者两个,因为一个私有模块一般很难得到社区的帮助。module_init和module_exit用于向内核注册模块的初始化函数和模块推出函数。如程序所示,初始化函数是hello_init,而退出函数是hello_exit。

另外,要编译一个模块通常还需要用到内核源码树种的makefile,所以模块的Makefile可以写成:

ifneq ($(KERNELRELEASE),)

obj-m:= hello.o#usb-dongle.o

else

KDIR:= /usr/src/linux-headers-$(shell uname -r)

BDIR:= $(shell pwd)

default:

$(MAKE) -C $(KDIR) M=$(PWD) modules

.PHONY: clean

clean:

make -C $(KDIR) M=$(BDIR) clean

endif

可以用insmod跟rmmod来验证模块的挂在跟卸载,但必须用root的身份登陆命令行,用普通用户加su或者sudo在Ubuntu上的测试是不行的。


相关文章推荐

Linux USB驱动框架分析

Linux USB驱动框架分析(一)     初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这...

Linux USB驱动框架分析(三)

下面我们来分析一下usb-skeleton的源码吧。这个范例程序可以在linux-2.6.17/drivers/usb下找到,其他版本的内核程序源码可能有所不同,但相差不大。大家可以先找到源码看一看,...

Linux USB驱动框架分析(四)

probe是usb子系统自动调用的一个函数,有USB设备接到硬件集线器时,usb子系统会根据production ID和vendor ID的组合或者设备的class、subclass跟protocol...

Linux USB驱动框架分析(一)

初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发...

Linux下USB驱动框架分析

http://www.cnblogs.com/general001/articles/2319552.html Linux USB驱动框架分析(一)    初次接触与OS相关的设备驱动编写,感...

Linux&nbsp;USB驱动框架分析(一)

Linux USB驱动框架分析(一)    初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段时...

Linux下USB驱动框架分析

Linux USB驱动框架分析(一)    初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段...

Linux USB驱动框架分析(六)

说的usb子系统的IO操作,不得不说usb requestblock,简称urb。事实上,可以打一个这样的比喻,usb总线就像一条高速公路,货物、人流之类的可以看成是系统与设备交互的数据,而urb就可...

Linux USB驱动框架分析

Linux USB驱动框架分析(一)   初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段时间...
  • zh98jm
  • zh98jm
  • 2011年01月04日 19:21
  • 652

Linux下USB驱动框架分析

Linux下USB驱动框架分析 Linux USB驱动框架分析(一)    初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux USB驱动框架分析(二)
举报原因:
原因补充:

(最多只允许输入30个字)