modprobe
显示模块配置信息
modprobe -c|grep tipc
显示模块依赖关系
modprobe --show-depends tipc
开机加载模块
systemd 读取 /etc/modules-load.d/ 中的配置加载额外的内核模块。配置文件名称通常为 /etc/modules-load.d/<program>.conf。
格式很简单,一行一个要读取的模块名,而空行以及第一个非空格字符为#或;的行会被忽略,如:/etc/modules-load.d/virtio-net.conf
# Load virtio-net.ko at boot
virtio-net
/etc/modules-load.d/tipc.conf
# Load tipc.ko at boot
tipc
也可以使用命令modules-load.d来配置开机加载的模块。
配置模块参数
要通过配置文件传递参数,在 /etc/modprobe.d/ 中放入任意名称 .conf 文件,比如:tipc.conf
使用内核命令行
如果模块直接编译进内核,也可以通过启动管理器(GRUB, LILO 或 Syslinux)的内核行加入参数:
modname.parametername=parametercontents
例如:thinkpad_acpi.fan_control=1
模块黑名单
方法1.禁用模块
有些模块作为 initramfs 的一部分装入。要阻止 initramfs 装入某些模块,可以在 /etc/modprobe.d/modprobe.conf 中将它们加入黑名单
方法2.使用 /etc/modprobe.d/ 中的文件
在 /etc/modprobe.d/ 中创建 tipc.conf 文件,使用 blacklist 关键字屏蔽不需要的模块,例如如果不想装入 tipc 模块:
/etc/modprobe.d/tipc.conf
# Do not load the tipc module on boot
blacklist tipc
注:此处已经设置屏蔽了tipc模块,但是如果另外一个模块a依赖于tipc,那么tipc还是会被装载,也就是设置无效
要避免这个行为,可以让 modprobe 使用自定义的 install 命令,直接返回导入失败:
/etc/modprobe.d/blacklist.conf
...
install tipc /bin/false
...
这样就可以 "屏蔽" tipc及a模块
方法3.使用内核命令行
同样可以通过内核命令行(位于 GRUB、LILO 或 Syslinux)禁用模块:
modprobe.blacklist=modname1,modname2,modname3
当某个模块导致系统无法启动时,可以使用此方法禁用模块。
modinfo
显示所有内核参数的脚本
下面的 bash 脚本可以显示当前装入模块、模块参数及当前参数的数值。它使用 /proc/modules 获取当前装入模块的列表,然后用 modinfo 获取模块的描述和
模块的参数,最后访问 sysfs 文件系统获得当前模块名和参数值。
function aa_mod_parameters ()
{
N=/dev/null;
C=`tput op` O=$(echo -en "\n`tput setaf 2`>>> `tput op`");
for mod in $(cat /proc/modules|cut -d" " -f1);
do
md=/sys/module/$mod/parameters;
[[ ! -d $md ]] && continue;
m=$mod;
d=`modinfo -d $m 2>$N | tr "\n" "\t"`;
echo -en "$O$m$C";
[[ ${#d} -gt 0 ]] && echo -n " - $d";
echo;
for mc in $(cd $md; echo *);
do
de=`modinfo -p $mod 2>$N | grep ^$mc 2>$N|sed "s/^$mc=//" 2>$N`;
echo -en "\t$mc=`cat $md/$mc 2>$N`";
[[ ${#de} -gt 1 ]] && echo -en " - $de";
echo;
done;
done
}
示例输出:
# aa_mod_parameters
>>> ehci_hcd - USB 2.0 'Enhanced' Host Controller (EHCI) Driver
hird=0 - hird:host initiated resume duration, +1 for each 75us (int)
ignore_oc=N - ignore_oc:ignore bogus hardware overcurrent indications (bool)
log2_irq_thresh=0 - log2_irq_thresh:log2 IRQ latency, 1-64 microframes (int)
park=0 - park:park setting; 1-3 back-to-back async packets (uint)>>> processor - ACPI Processor Driver
ignore_ppc=-1 - ignore_ppc:If the frequency of your machine gets wronglylimited by BIOS, this should help (int)
ignore_tpc=0 - ignore_tpc:Disable broken BIOS _TPC throttling support (int)
latency_factor=2 - latency_factor: (uint)