Linux内核动态加载模块.pdf

Linux内核动态加载模块.pdf

ID:51493967

大小:116.38 KB

页数:7页

时间:2020-03-25

Linux内核动态加载模块.pdf_第1页
Linux内核动态加载模块.pdf_第2页
Linux内核动态加载模块.pdf_第3页
Linux内核动态加载模块.pdf_第4页
Linux内核动态加载模块.pdf_第5页
资源描述:

《Linux内核动态加载模块.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux内核动态加载模块一、安装内核模块:一般步骤:(1)在/usr/src/linux/下运行makemenuconfig把需要编译成模块的项打上(M),保存并退出。(2)运行makemodules,这一步将在/usr/src/linux/下生成*.o或*.ko文件。(3)运行makemodeules_install来安装,这步会把生成的.o或ko文件拷贝到/lib/modules/`uname-r`/下。如果你只要编译某一个或几个模块,就可以用下面这个快速的方法:(1)找到编译内核所需要的.config文件。在/usr/src/li

2、nux/arch目录下有若干编译内核所用的配置。选择我们想要的配置,将它复制到/usr/src/linux目录下,改名为.config。cp/usr/src/linux/arch/x86/xxconfig/usr/src/linux/.config(2)修改.config文件,去掉不用的模块,加上自己想要的模块。打开.config,有许多XXXX=m的项,这些都是要被编译为模块的项,因为我们不希望编译这些模块,所以要把XXXX=m的项统统去掉。然后再加上我们想要的模块,例如将#CONFIG_NTFS_FSisnotset改为CONFIG_

3、NTFS_FS=m当然,可以用你熟悉各种工具来做这件事。(3)编译NTFS模块。在/usr/src/linux目录下运行命令makemodules来编译我们想要的模块。(4)安装模块。编译后得到的.o文件在/usr/src/linux/目录下,手动将它复制到正确的目录下。例如cp/usr/src/linux/fs/ntfs/ntfs.o/lib/modules/2.2.16-22/fs/注意:千万不能运行命令makemodules_install,否则将带来严重的后果,它会删除你系统中的所有模块,只安装刚刚编译的模块(ntfs.o)。二:

4、安装完成以后,我们就可以加载模块了:和linux中加载模块有关的几个命令分别如下:depmod,modprobe,lsmod先来看看depmod命令:depmod是一个用来产生modules.dep和map文件的程序。在modules.dep文件中空白行和以'#'开头的行将被忽略.depmod通过读取/lib/modules/version目录下的每一个模块来创建一个记录模块相依性的列表。这个列表就是/lib/modules/version目录下的modules.dep。depmod也会在/lib/modules/version目录下创建

5、许多map文件,例如modules.dep,modules.isapnpmap,modules.pcimap,modules.alias这些文件将会被hotplug用到。OPTIONS:-a--allProbeallmodules.Thisoptionisenabledbydefaultifnofilenamesaregiveninthecommand-line.检查所有的模块,这个命令是默认的如果你没有指定模块名字的话。-A--quickThisoptionscanstoseeifanymodulesarenewerthanthemod

6、ules.depfilebeforeanyworkisdone%3再来看看modprobe命令:modprobe命令是根据depmod-a的输出/lib/modules/version/modules.dep来加载全部的所需要模块。可以通过modprobe-l来显示可以当前可以加载的模块。modprobe在挂载模块是不用指定模块文件的路径,也不用带文件的后缀.o或.ko,而insmod需要的是模块的所在目录的绝对路径,并且一定要带有模块文件名后缀的(modulefile.o或modulesfile.ko)。insmod比较重要的用途是用来

7、测试模块的正确性,加载一般都是依靠modprobe。用法:modprobexxx.ko#加载某个模块modprobe-rxxx.ko#卸载某个模块lsmod:lsmod显示当前加载的所有模块,相当于cat/proc/modules,假设你没有设定开机加载某个模块,比如ntfs,那么开机后执行lsmod,列表里不会有ntfs这个模块的,这时你再执行mount-tntfsxxx后,执行lsmod后列表里就会有ntfs这个模块了。还要注意的是lsmod显示的是模块名,而不是别名(alias)。三、在内核中有一个“Automatickernelm

8、oduleloading"功能被编译到了内核中。当用户尝试打开某类型的文件时,内核会根据需要尝试加载相应的模块。我们来看看驱动程序自动加载是怎么实现的:每一个设备都有VerdonID,Devi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。