本文最后更新于2017年5月28日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!
=Start=
缘由:
正文:
参考解答:
对内核模块来说,黑名单是指禁止某个模块装入的机制。当对应的硬件不存在或者装入某个模块会导致问题时很有用。
# vim /etc/modprobe.d/blacklist.conf
...
install MODULE_NAME /bin/false
...
这样就可以 "屏蔽" 模块(MODULE_NAME)及所有依赖它的模块。
&
install modulename command...
这是最强大的原语:它告诉 modprobe 运行你的命令,而不是常规地将模块插入到内核中。该命令可以是任何shell命令:这允许您进行任何类型的复杂处理,您可能希望。例如,如果模块“fred”在已经安装的模块“barney”上运行得更好(但是它不依赖于它,所以modprobe不会自动加载它),你可以说"install fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred",这将做你想要的。注意--ignore-install,这会阻止第二个modprobe再次运行相同的安装命令。
您也可以使用 install 来创造不存在的模块。例如:"install probe-ethernet /sbin/modprobe e100 || /sbin/modprobe eepro100",当您执行"modprobe probe-ethernet"时,这将首先尝试加载e100驱动程序,如果失败,再尝试加载eepro100驱动程序。
如果在命令中使用字符串"$CMDLINE_OPTS",它将被modprobe命令行上指定的任何选项替换。这可能是有用的,因为用户期望"modprobe fred opt=1"将"opt=1"中的arg传递给模块,即使配置文件中有一个install命令。所以我们上面的例子变成了"install fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred $CMDLINE_OPTS"
参考链接:
=END=