驱动程序module的工作流程主要分为四个部分:
1、 insmod module
2、 驱动module的初始化(初始化结束后即进入“潜伏”状态,直到有系统调用)
3、 当操作设备时,即有系统调用时,调用驱动module提供的各个服务函数
4、 rmmod module
一、 驱动程序的加载
Linux驱动程序分为两种形式:一种是直接编译进内核,另一种是编译成module...
分类:
其他好文 时间:
2014-09-05 16:11:51
阅读次数:
202
务必在ko驱动中追加如下一行声明MODULE_LICENSE("GPL");否则insmod驱动时将不能与/proc/kallsyms中的符号正常连接,提示如下错误:luther@gliethttp:/vobs/tmp$sudoinsmoddchars.koinsmod:errorinserting‘dchars.ko‘:-1Unknownsymbolinmodule可以使用modinfo查看ko依赖模块luthe..
分类:
其他好文 时间:
2014-08-30 19:12:10
阅读次数:
191
首先,你要自己有编译sun4i-ir.ko驱动,不过好像默认编译就带了这个驱动,所以,你们用的各个版本的内核应该都已经有驱动了,不过不一定自动加载了的。自己lsmod查看一下有木有,如果木有,就去驱动目录下insmod一...
分类:
其他好文 时间:
2014-08-27 13:15:18
阅读次数:
276
对于如何向模块传递参数,Linuxkernel提供了一个简单的框架。其允许驱动程序声明参数,并且用户在系统启动或模块装载时为参数指定相应值,在驱动程序里,参数的用法如同全局变量。通过宏module_param()定义一个模块参数:module_param(name,type,perm);name既....
分类:
其他好文 时间:
2014-08-13 10:09:45
阅读次数:
250
1.去掉bridge模块,为下面用OVS的模块奠定基础rmmod bridge2.insmod datapath/linux/openvswitch_mod.ko3.insmod datapath/linux/brcompat_mod.ko4.nkdir -p /usr/local/etc/open...
分类:
其他好文 时间:
2014-08-04 23:58:48
阅读次数:
402
在学习编写linux驱动程序的时候,一般都是从写一个helloworld的模块开始。但是在编译完成后,进行模块加载的时候,有时会出现如下错误:
insmod: error inserting 'hello.ko': -1 Invalid module format
其实,出现这个问题的原因很简单,就是:编译的内核版本与实机运行的内核版本不一致。
所以解决起来也很简单,实机运行的系统的代码树位置一般在/usr/src/kernels。只要将Makefile中的代码树改成实际运行的内核代码即可。...
分类:
其他好文 时间:
2014-07-18 17:08:15
阅读次数:
300
一、概念简述
在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载。
静态加载就是把驱动程序直接编译进内核,系统启动后可以直接调用。静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译和下载内核,效率较低。若采用静态加载的驱动较多,会导致内核容量很大,浪费存储空间。
动态加载利用了Linux的module特性,可以在系统启动后用insmod命令添加模块(.ko),在不需要...
分类:
系统相关 时间:
2014-06-22 18:56:41
阅读次数:
301
一、Linux内核相对于传统的UNIX内核的比较:
(1):Linux支持动态内核模块。尽管Linux内核也是整体式结构,可是允许在需要的时候动态哦卸除(rmmod xxx)和加载内核模块(insmod xxx.ko).
(2):Linux支持对称多处理(SMP)机制,尽管许多UNIX的变体也支持SMP,但是传统的UNIX并不支持这种机制。
(3):Linux内核可以抢占(preempti...
分类:
系统相关 时间:
2014-05-25 21:13:54
阅读次数:
360
发现想要每天都写博客真不容易,每天都要写技术就意味着每天都要学新知识,没什么新知识,还真不好意思瞎写。1. Linux 加载设备驱动#insmod 设备驱动路径
如insmod /fpga.ko#mknod /dev/fpga8k c 248 0 创建/proc/dev/fpga8k 设备节点;其中...
分类:
系统相关 时间:
2014-05-23 03:54:30
阅读次数:
281
一:wifi驱动模块加载
在hardware/libhardware_legacy/wifi/wifi.c调用函数
WIFI_DRIVER_MODULE_ARG := "firmware_path=/etc/wifi/40181/fw_bcm40181a2.bin nvram_path=/etc/wifi/40181/nvram.txt"
insmod(DRIVER_MODULE_PAT...
分类:
其他好文 时间:
2014-05-08 16:22:22
阅读次数:
450