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上的测试是不行的。


手把手教你用Hexo+Github 搭建属于自己的博客

欢迎关注我的微信公众号,扫一扫下方二维码或搜索微信号 stormjun,即可关注。 目前专注于 Android 开发,主要分享 Android开发相关知识和一些相关的优秀文章,包括个人总结,职场经验等...
  • gdutxiaoxu
  • gdutxiaoxu
  • 2016年12月11日 22:04
  • 59080

GitHub+Hexo搭建个人博客

1.hexo介绍看到同学使用github+hexo搭建了属于自己的博客,眼馋,弄了好久了,感觉有点眼高手低了,一直没来得及写一下自己搭建的流程,心血来潮,下边来简单介绍下搭建流程,也方便自己以后rev...
  • williamHappy
  • williamHappy
  • 2017年01月05日 09:33
  • 1388

零基础免费搭建个人博客-hexo+github

使用hexo生成静态博客并架设在免费的github page平台
  • jzooo
  • jzooo
  • 2015年07月07日 00:10
  • 37643

hexo+GitHub博客搭建实战

我的个人博客链接:wangwlj.com 想要搭建类似的博客吗? 如果是,那就赶快点进来吧~~ 手把手教学,现在开始!! PS: 将会在个人博客持续更新,本文链接:hexo+GitHub博客搭...
  • qwerty200696
  • qwerty200696
  • 2018年01月07日 21:02
  • 304

hexo+github创建个人博客--基础篇

内容简介 此篇文章介绍的是基础的hexo+github搭建个人博客的方法,包括搭建之前的准备工作和搭建的步骤过程,当最后达到了预期效果,并且想深入研究其他功能时,可以参考hexo+github创建...
  • Little__Dragon
  • Little__Dragon
  • 2017年08月14日 16:51
  • 567

用Github Page+Hexo轻松搭建个人博客

在2018年来临之际,笔者拖延了一年多的博客终于上线了,本文基于笔者的实践经验,即使你是一个技术小白,按照本文的步骤,也可以轻松搭建自己的博客。为什么要搭建个人博客? 总结和写作能力很重要 独立的才是...
  • peterzhen40
  • peterzhen40
  • 2017年12月31日 16:39
  • 137

hexo + GitHub + git 搭建个人博客

hexo + GitHub + git 搭建个人博客 * 安装配置node.js* 安装配置node.js (http://www.runoob.com/nodejs/nodejs-i...
  • edxuanlen
  • edxuanlen
  • 2018年01月24日 18:24
  • 157

hexo+github搭建个人博客(超详细教程)

首先呢,先说一下吧,作为一个程序猿来说,大多的大牛都是使用的是msdn/github这些来交流技术,但是我后来发现csdn上面好多的大牛都已经摒弃csdn,自己搭建个人博客进行发表文章记录点滴了。 虽...
  • AinUser
  • AinUser
  • 2017年08月26日 23:48
  • 1895

利用Hexo搭建个人github博客

安装Hexo 关于 Hexo 安装前提 安装 Hexo 建站 默认主题 总结一下 坑 切换主题 发现主题 切换主题 坑 部署到GitHub 新建 repository 修改配置 部署 坑 ...
  • hujingshuang
  • hujingshuang
  • 2018年01月21日 21:19
  • 52

GitHub hexo搭建个人博客

  • 2017年06月10日 23:53
  • 1.37MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux USB驱动框架分析(二)
举报原因:
原因补充:

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