[Linux Kernel] 内核模块管理(modprobe、modinfo、rmmod、insmod)

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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值