4.Linux内核模块
4.1 Linux内核模块简介
如果把所有需要的功能都编译到Linux内核。这回导致两个问题,一是生成的内核会很大,二是如果我们要在现有的内核中新增或删除功能,将不得不重新编译内核。
现在我们需要的是一种机制使得编译出的内核本身并不需要包含所有功能,而在这些功能需要被使用的时候,其对应的代...
分类:
系统相关 时间:
2015-08-04 11:11:44
阅读次数:
318
加载内核驱动的通常流程:1.先将.ko文件拷贝到/lib/module/`uname -r`(内核版本号)/kernel/driver/...目录下, 根据具体用途的区别分为net、ide、scsi、usb、video、parport、md、block、ata等等。2.运行depmod -a,更新模...
分类:
系统相关 时间:
2015-07-19 21:28:10
阅读次数:
195
sudo gedit hello.c 1: #include 2: 3: #include 4: #include 5: 6: MODULE_LICENSE("GPL"); 7: MODULE_AUTHOR("leemo"); 8:...
分类:
系统相关 时间:
2015-06-29 16:17:33
阅读次数:
175
linux内核模块基本组成
===============
1. 模块头文件
#include
#include
2. 模块加载函数(入口函数)
初始化工作
3. 模块卸载函数
一般跟加载函数完成相反的工作
4. 模块许可声明
"GPL" : 表示你有发布软件的自由
/******************************************...
分类:
其他好文 时间:
2015-05-15 21:25:04
阅读次数:
171
* 内核动态模块的的功能和作用*Linux 模块是一些可以独立于内核单独编译的内核函数和数据类型集合,是可增删的内核部分。模块在内核启动时装载称为静态装载,在内核已经运行时装载称为动态装载。模块可以扩充内核所期望的任何功能,但通常用于实现设备驱动程序.模块最基本的框架#include
#include
#include <linux...
分类:
其他好文 时间:
2015-05-15 17:46:00
阅读次数:
106
模块是内核的一部分(通常是设备驱动程序),按需动态装入模块可以保证内核达到最小并且使内核非常灵活。一旦装入一个Linux内核模块,那么它就像任何标准的内核代码一样成为内核的一部分,具有相同的权限和职责。一方面凡是由内核“移出”的所有符号都可以在模块中引用;另一方面,除了这个特意移出的符号及系统调用外...
分类:
其他好文 时间:
2015-05-09 16:14:36
阅读次数:
92
一个简单的驱动 模块的使用能使linux内核便于裁剪,根据不同的应用需求得到一个最小的内核,同时调试内核驱动也更为方便,比如如果调试i2c驱动,如果不采用模块的方式,那么每次修改i2c驱动就得编译整个内核,对于编译调试极其耗时,使用模块,一个简单的insmod就将模块加载进了内核,如果觉得不合适,....
分类:
系统相关 时间:
2015-05-03 23:24:21
阅读次数:
466
一内核模块介绍
把一些功能模块化本是微内核的思想,这里模块化主要是为了缩小内核的大小,并根据不同主机可以让用户自定义加载模块,方便不常见的硬件驱动得到加载而不浪费空间
一般存放模块的目录为/lib/modules/$(unamer)/kernel
二几个管理模块的命令
lsmod:列出当前已加..
分类:
系统相关 时间:
2015-04-20 07:05:04
阅读次数:
163
1、linux 内核模块不被编译到内核文件(zImage,bzImage), 而是在运行期间动态的安装和卸载2、内核模块包括一下几部分:主体部分设计,编译内核模块,安装卸载NHMK,可选项使用(模块申明,MK参数,符号输出)3、简单例子:hello.c:#include#include#includ...
分类:
系统相关 时间:
2015-04-09 16:56:39
阅读次数:
183
转载注明出处 : http://blog.csdn.net/xhz1234/article/details/44257293 Copyright 徐洪志(MacroSAN). All rights reserved.模块之间发生调用关系是常有的事情,下面以两个模块A、B,B使用A模块提供的函数为例,讲解正确使用的方法。模块A中使用EXPORT_SYMBOL或EXPORT_SYMBOL_GPL将要提供...
分类:
系统相关 时间:
2015-03-15 16:50:48
阅读次数:
303