Linux内核模块了解
作者:admin 日期:2010-02-04
驱动开发详解:
驱动模块概念了解
了解内核的兄弟都知道,内核中的各个功能可以静态编译到内核
也可动态的加载,也就是模块机制
编译到内核中会导致内核很庞大,另外,添加或删除一些功能将
不得不重新编译内核
模块机制优点:
1,本身不编译内核,从而控制内核的大小
2,加载后就和内核中的其他部分一样
模块相关操作:
查看模块:lsmod
nfsd 190748 17
lockd 57848 1 nfsd
nfs_acl 6656 1 nfsd
auth_rpcgss 33032 1 nfsd
exportfs 7808 1 nfsd
sco 12932 2
bridge 43668 0
stp 6148 1 bridge
说明一下,这个命令可以获得系统中加载了的所有模块及模块的
依赖关系,实际上是读取分析/proc/modules,使用cat /proc/modules
可以得到相同的结果
modinfo xxx.ko
可以查看编译后模块的相差信息
insmod ./xxx.ko
rmmod xxx
模块的编译???
这个暂时不是很清楚
也是.c的程序
先写一个Makefile
例如:
obj-m := xxx.o
编译
make -C $(Linux内核源代码的路径) M=$(pwd) moudels
$(pwd) 是程序源码和Makefile的目录
驱动模块概念了解
了解内核的兄弟都知道,内核中的各个功能可以静态编译到内核
也可动态的加载,也就是模块机制
编译到内核中会导致内核很庞大,另外,添加或删除一些功能将
不得不重新编译内核
模块机制优点:
1,本身不编译内核,从而控制内核的大小
2,加载后就和内核中的其他部分一样
模块相关操作:
查看模块:lsmod
nfsd 190748 17
lockd 57848 1 nfsd
nfs_acl 6656 1 nfsd
auth_rpcgss 33032 1 nfsd
exportfs 7808 1 nfsd
sco 12932 2
bridge 43668 0
stp 6148 1 bridge
说明一下,这个命令可以获得系统中加载了的所有模块及模块的
依赖关系,实际上是读取分析/proc/modules,使用cat /proc/modules
可以得到相同的结果
modinfo xxx.ko
可以查看编译后模块的相差信息
insmod ./xxx.ko
rmmod xxx
模块的编译???
这个暂时不是很清楚
也是.c的程序
先写一个Makefile
例如:
obj-m := xxx.o
编译
make -C $(Linux内核源代码的路径) M=$(pwd) moudels
$(pwd) 是程序源码和Makefile的目录
评论: 0 | 查看次数: 6276