insmod 与 modprobe 都是载入 kernel module,不过一般差别于 modprobe 能够处理 module 载入的相依问题。
比方你要载入 a module,但是 a module 要求系统先载入 b module 时,直接用 insmod 挂入通常都会出现错误讯息,不过 modprobe 倒是能够知道先载入 b module 后才载入 a module,如此相依性就会满足。 不过 modprobe 并不是大神,不会厉害到知道 module 之间的相依性为何,该程式是读取 /lib/modules/2.6.xx/modules.dep 档案得知相依性的。而该档案是透过 depmod 程式所建立。
系统启动后,正常工作的模块都在/proc/modules文件中列出。使用lsmod命令也可显示相同内容
在内核中有一个“Automatic kernel module loading"功能被编译到了内核中。当用户尝试打开某类型的文件时,内核会根据需要尝试加载相应的模块。/etc/modules.conf或 /etc/modprobe.conf文件是一个自动处理内核模块的控制文件。
Linux是基于模块的,所有的驱动都是模块化的:管理模块的命令:1、列出系统中所有已经加载的模块的大小与名称等:lsmod或者cat/proc /modules
modprobe -l 是列出内核中所有的模块,包括已挂载和未挂载的
[root@localhostbeinan]#modprobe 模块名 注:挂载一个模块;
[root@localhostbeinan]#modprobe-r 模块名 注:移除已加载的模块,和rmmod功能相同;
insmod挂载模块insmod 这个工具,和modprobe有点类似,但功能上没有modprobe强,modprobe在挂载模块是不用指定模块文件的路径,也不用带文件的后缀.o 或.ko;而insmod需要的是模块的所在目录的绝对路径,并且一定要带有模块文件名后缀的(modulefile.o或 modulesfile.ko)
模块的配置文件modules.conf或modprobe.conf 内核模块的开机自动挂载模块一般是位于一个配置文件,一般的Linux发行版本都有/etc/modules.conf或/etc /modprobe.conf。