易截截图软件、单文件、免安装、纯绿色、仅160KB

linux内核驱动模块加载方式

在类unix
操作系统
中,驱动
加载
方式一般分为:动态加载和静态加载,下面分别对其详细论述。
一、动态加载
    动态加载是将驱动模块加载到内核
中,而不能放入/lib/modules/下。
     在2.4内核中,加载驱动命令
为:insmod ,删除模块为:rmmod;
     在2.6以上内核中,除了insmod与rmmod外,加载命令还有modprobe;
     insmod与modprobe不同之处:
     insmod 绝对路径/××.o,而modprobe ××即可,不用加.ko或.o后缀,也不用加路径;最重要的一点是:modprobe同时会加载当前模块所依赖的其它模块;
     lsmod查看当前加载到内核中的所有驱动模块,同时提供其它一些信息,比如其它模块是否在使用另一个模块。
二、静态加载
(一)概念
     在执行make menuconfig命令进行内核配置裁剪时,在窗口中可以选择是否编译入内核,还是放入/lib/modules/下相应内核版本目录中,还是不选。
(二)操作步骤
     linux设备一般分为:字符设备、块设备和网络
设备,每种设备在内核源代码目录树drivers/下都有对应的目录,其加载方法类似,以下以字符设备静态加载为例,假设驱动程序源代码名为ledc.c,具体操作步骤如下:
     第一步:将ledc.c源程序放入内核源码drivers/char/下;
     第二步:修改drivers/char/Config.in文件,具体修改如下:
            按照打开文件
中的格式添加即可;
            在文件的适当位置(这个位置随便都可以,但这个位置决定其在make menuconfig窗口中所在位置)加入以下任一段代码:
    第三步:编辑配置文件Kconfig,加入驱动选项,使之在make menuconfig 的时候出现
打开 kernel-2.6.13/drivers/char/Kconfig 文件,添加
config DEMO_WYK
        tristate "DEMO test module"
        depends on X86_32
其他版本有:config QQ2440_HELLO_MODULE
        tristate "QQ2440/m


相关文档:

手工释放linux内存

当在Linux下频繁存取文件
后,物理内存会很快被用光,当程序
结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有看到有什么很好解决
的办法。那么我来谈谈这个问题。
一、通常情况
先来说说free命令

引用
[root@server ~]# free -m
total used free shared buffers cac ......

Linux设备模型之input子系统详解(一)

------------------------------------------ 
本文系本站原创,欢迎转载! 
转载请注明出处:http://ericxiao.cublog.cn/ 
------------------------------------------ 
一:前言 
在键盘驱动代码分析的笔记中,接触到了input子系统.键盘驱动,键盘驱动将检测到的所有按键都上报给了input子系 ......

linux下的so、o、lo、a、la文件有什么区别?

o: 编译的目标文件
a: 静态库,其实就是把若干o文件打了个包
so: 动态链接库(共享库)
lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息
la: 使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息
 
1 libtool的工作原理
libtool 是一个通用库支持脚本,将使用 ......

linux 信号处理

曾做过signal相关的一点儿开发,谈谈我的一些理解。
首先,需要理解几个signal相关的函数。
  sigaddset(sigset_t* sigSet, int sigNum ) :  将信号sigNum 添加到信号集 sigSet 中;
  sigdelset(sigset_t* sigSet, int sigNum) : 将信号 sigNum 从信号集 sigSet 中删除;
   ......

Linux use notes

-----------------------------
Based on Fedora 8 version:
-----------------------------
1. No common command like ifconfig in os?
Root cause is the standard search path not include /sbin and /usr/sbin. Try to include them in /etc/profile. As belows:
 #Kenny add /sbin and /usr/sbin here.
&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号