posts - 297,  comments - 15,  trackbacks - 0
1. lsmod 列出已经加载的内核模块 lsmod 是列出目前系统中已加载的模块的名称及大小等;另外我们还可以查看 /proc/modules ,我们一样可以知道系统已经加载的模块。 2.modinfo 查看模块信息 modinfo 可以查看模块的信息,通过查看模块信息来判定这个模块的用途。 3.modprobe 挂载新模块以及新模块相依赖的模块 modprobe 我们常用的功能就是挂载模块,在挂载某个内核模块的同时,这个模块所依赖的模块也被同时挂载;当然modprobe 也有列出内核所有模块,还有移除模块的功能;下在我们举个例子说一说咱们常用的功能和参数; modprobe [-v] [-V] [-C config-file] [-n] [-i] [-q] [-o ] [parameters...] modprobe -r [-n] [-i] [-v] ... modprobe -l -t [ -a ...] 我们可以看到在/etc/modprobe.conf文件中存在的内容形式如下: alias scsi_hostadapter mptbase alias scsi_hostadapter1 mptspi 最后一列是模块名字,中间的是模块的别名。那么如果我们知道了一个模块的名字,怎么知道它的别名呢?用下面的命令就可以: #modprobe -c 可以查看所有模块的别名 #modprobe -c 模块名 |grep 模块名 modprobe -l 是列出内核中所有的模块,包括已挂载和未挂载的;通过modprobe -l ,我们能查看到我们所需要的模块,然后根据我们的需要来挂载;其实modprobe -l 读取的模块列表就位于 /lib/modules/'uname -r' 目录中;其中uname -r 是内核的版本; 注意: 模块名是不能带有后缀的,我们通过modprobe -l 所看到的模块,都是带有.ko 或.o后缀; 4.rmmod 移除已挂载模块 5.depmod 创建模块依赖关系的列表 这个模块管理工具是创建模块依赖关系的列表,有几个参数我们注意一下就行了,目前的的Linux 发行版所用的内核是2.6x版本,是自动解决依赖关系,所以这个命令知道就行了;模块之前也有依赖关系,比如我们想驱动USB 移动硬盘,目前有两种驱动,一种是udev ,在内核中有,但目前不太稳定;另一种办法是用usb-storage驱动,而usb-storage 依赖的模块是scsi 模块,所以我们要用usb-storage 的模块,也得把scsi 编译安装; 再举个例子:sata的硬盘,在Linux中的设备表示的是/dev/sd* ,比如 /dev/sda,/dev/sdb 等... 系统要驱动 sata硬盘,则需要把sata在内核中选中,或编译成模块,或内置于内核之中,在此同时,还需要在内核中选中ide ,scsi 的支持等; depmod 工具的洋文原意:depmod — program to generate modules.dep and map files.(我译的:为modules.dep 文件或映射文件创建依赖关系) [root@localhost beinan]# depmod -a 注:为所有列在/etc/modprobe.conf 或/etc/modules.conf 中的所有模块创建依赖关系,并且写入到modules.dep文件; [root@localhost beinan]# depmod -e 注:列出已挂载但不可用的模块; [root@localhost beinan]# depmod -n 注:列出所有模块的依赖关系,但仅仅是输出出来 (Write the dependency file on stdout only) 注:modules.dep 位于 /lib/modules/内核版本 目录 6.insmod 挂载模块 insmod 这个工具,和modprobe 有点类似,但功能上没有modprobe 强,modprobe 在挂载模块是不用指定模块文件的路径,也不用带文件的后缀.o 或.ko ;而insmod 需要的是模块的所在目录的绝对路径,并且一定要带有模块文件名后缀的(modulefile.o 或modulesfile.ko ) 7.与内核模块加载相关的配置文件 模块的配置文件 modules.conf 或 modprobe.conf 内核模块的开机自动挂载模块一般是位于一个配置文件,一般的Linux发行版本都有 /etc/modules.conf 或 /etc/modprobe.conf 。比如Fedora Core 4.0 内核模块开机自动加载文件是 /etc/modprobe.conf ;在这个文件中,一般是写入模块的加载命令或模块的别名的定义等;比如我们在modules.conf 中可能会发行类似的一行 ; alias eth0 8139too from http://blog.chinaunix.net/u2/76292/showart.php?id=2090623
posted on 2009-12-10 22:48 chatler 阅读(304) 评论(0)  编辑 收藏 引用 所属分类: linux kernel

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2009年12月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(10)

随笔分类(307)

随笔档案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感觉这个博客还是不错,虽然做的东西和我不大相关,觉得看看还是有好处的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新评论

阅读排行榜

评论排行榜