AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 62316
In Process
cdleary
cdleary
Asked: 2009-09-04 23:45:59 +0800 CST2009-09-04 23:45:59 +0800 CST 2009-09-04 23:45:59 +0800 CST

如何列出加载的 Linux 模块参数值?

  • 772

是否有一种标准方法可以列出加载的 Linux 模块的参数值?我本质上是在寻找这个Linux 内核模块参数问题的另一个答案,因为我感兴趣的模块没有/sys/modules/<module_name>/parameters接口。

linux kernel
  • 7 7 个回答
  • 117093 Views

7 个回答

  • Voted
  1. RaSca
    2012-05-18T02:21:12+08:002012-05-18T02:21:12+08:00

    您可以使用这个简单的单向命令来完成此操作,该命令使用 /proc/modules 和 /sys 虚拟文件系统:

    cat /proc/modules | cut -f 1 -d " " | while read module; do \
     echo "Module: $module"; \
     if [ -d "/sys/module/$module/parameters" ]; then \
      ls /sys/module/$module/parameters/ | while read parameter; do \
       echo -n "Parameter: $parameter --> "; \
       cat /sys/module/$module/parameters/$parameter; \
      done; \
     fi; \
     echo; \
    done
    

    您将获得如下输出:

    ...
    ...
    Module: vboxnetadp
    
    Module: vboxnetflt
    
    Module: vboxdrv
    Parameter: force_async_tsc --> 0
    
    Module: binfmt_misc
    
    Module: uinput
    
    Module: fuse
    Parameter: max_user_bgreq --> 2047
    Parameter: max_user_congthresh --> 2047
    
    Module: md_mod
    Parameter: new_array --> cat: /sys/module/md_mod/parameters/new_array: Permission denied
    Parameter: start_dirty_degraded --> 0
    Parameter: start_ro --> 0
    
    Module: loop
    Parameter: max_loop --> 0
    Parameter: max_part --> 0
    
    Module: kvm_intel
    Parameter: emulate_invalid_guest_state --> N
    Parameter: ept --> Y
    Parameter: fasteoi --> Y
    Parameter: flexpriority --> Y
    Parameter: nested --> N
    Parameter: ple_gap --> 0
    Parameter: ple_window --> 4096
    Parameter: unrestricted_guest --> Y
    Parameter: vmm_exclusive --> Y
    Parameter: vpid --> Y
    Parameter: yield_on_hlt --> Y
    
    Module: kvm
    Parameter: allow_unsafe_assigned_interrupts --> N
    Parameter: ignore_msrs --> N
    Parameter: min_timer_period_us --> 500
    
    Module: tpm_infineon
    
    Module: joydev
    
    Module: snd_hda_codec_hdmi
    Parameter: static_hdmi_pcm --> N
    ...
    ...
    

    希望这可以帮助。

    • 68
  2. cdauth
    2013-07-09T14:32:10+08:002013-07-09T14:32:10+08:00

    你可以使用命令systool -vm <Module name>。它在大多数系统上都带有该sysfsutils软件包。

    这就是输出的样子,有一个部分Parameters:

    linux ~ # systool -vm btusb
    Module = "btusb"
    
      Attributes:
        coresize            = "40960"
        initsize            = "0"
        initstate           = "live"
        refcnt              = "0"
        srcversion          = "D69A7EC073BC0145C2DE5C3"
        taint               = ""
        uevent              = <store method only>
        version             = "0.8"
    
      Parameters:
        disable_scofix      = "N"
        force_scofix        = "N"
        reset               = "Y"
    
      Sections:
        .bss                = "0xffffffffa090d800"
        .data               = "0xffffffffa090d000"
        .exit.text          = "0xffffffffa09096ff"
        .gnu.linkonce.this_module= "0xffffffffa090d4c0"
        .init.text          = "0xffffffffa0910000"
        .note.gnu.build-id  = "0xffffffffa090a000"
        .rodata             = "0xffffffffa090b060"
        .rodata.str1.1      = "0xffffffffa090a024"
        .rodata.str1.8      = "0xffffffffa090a2b0"
        .smp_locks          = "0xffffffffa090af84"
        .strtab             = "0xffffffffa0912668"
        .symtab             = "0xffffffffa0911000"
        .text               = "0xffffffffa0905000"
        __mcount_loc        = "0xffffffffa090c3d8"
        __param             = "0xffffffffa090c360"
        __verbose           = "0xffffffffa090d0f8"
    
    • 53
  3. Dan Garthwaite
    2014-08-23T07:49:50+08:002014-08-23T07:49:50+08:00
    grep -H '' /sys/module/ath9k*/parameters/*
    
    /sys/module/ath9k/parameters/blink:1
    /sys/module/ath9k/parameters/bt_ant_diversity:0
    /sys/module/ath9k/parameters/btcoex_enable:0
    /sys/module/ath9k/parameters/nohwcrypt:1
    /sys/module/ath9k/parameters/ps_enable:0
    
    grep -H '' /sys/module/acpi_cpufreq/parameters/*
    /sys/module/acpi_cpufreq/parameters/acpi_pstate_strict:0
    
    • 17
  4. katriel
    2009-09-05T00:16:08+08:002009-09-05T00:16:08+08:00

    您可以使用“ modinfo(8) ”命令获取模块的可用加载时间参数。例如:

    # modinfo e100 | grep parm
    parm:           debug:Debug level (0=none,...,16=all) (int)
    parm:           eeprom_bad_csum_allow:Allow bad eeprom checksums (int)
    parm:           use_io:Force use of i/o access mode (int)
    

    至于获取已加载模块的参数,请尝试将 modinfo 命令与简单的 "lsmod | awk '{ print $1 }'" 结合使用

    如:

    lsmod | awk '{print $1 }'combi > myfile.txt
    tail -n +2 myfile.txt > myfile.txt.tmp && mv myfile.txt.tmp myfile.txt
    while read -r LINE; do echo "$LINE">>results.txt;modinfo "$LINE" | grep ^desc>>results.txt;modinfo "$LINE" | grep parm>> results.txt; done < myfile.txt
    
    • 12
  5. Matthew Ife
    2011-11-28T05:56:37+08:002011-11-28T05:56:37+08:00

    作为评论出来会很丑,但我在我的系统上做了这个检查..

    cat /proc/modules  | cut -d " " -f1 | while read mod; do
       test -d /sys/module/$mod/parameters || echo modinfo $mod | grep parm; 
    done
    

    检查 /sys 中没有参数的模块是否在 modinfo 中显示为具有参数但我找不到任何参数。?

    我不是专家,但这里的区别在于 modinfo 通过查看 .modinfo elf 标头来读取模块文件本身的参数,而 sys 是从其运行时变体中读取这些参数的。

    可能有您可以在运行时修改的参数不显示为 modinfo 参数值,但是由于模块格式应该非常固定,我不认为您可以在加载时将选项参数传递给模块而没有它链接的 .modinfo 结构。

    当您以这种方式检查时,您的模块是否建议 modinfo 可以传递参数,但 /sys 中没有参数?当然,在我的系统上,我无法使用上面提供的命令找到任何示例。

    编辑:所有这些都是错误的,因为如果您确实检查了我所做的事情,您会注意到这echo mod $mod | grep parm永远不会真正导致答案。

    如果您改为执行以下操作..

    cat /proc/modules  | cut -d " " -f1 | while read mod; do
        test -d /sys/module/$mod/parameters || (modinfo $mod | grep parm && echo $mod)
    done
    

    您会发现各种不包含parameters目录/sys/module/$mod但在运行时在其实例中包含参数的模块。

    相反,您也可以这样做:

    for mod in $(cat /proc/modules | cut -d" " -f1; do
      if [ -d /sys/module/$mod/parameters ]; then 
        for p in /sys/module/$mod/parameters/*; do 
          p=$(basename $p)
          modinfo $mod -F parm | grep -q $p || echo $mod $p
        done;
      fi;
    done
    

    要查找在 中具有参数值/sys/module/$mod/parameters但在 中没有参数集的模块示例modinfo。

    • 1
  6. Homero Esmeraldo
    2018-08-01T06:32:43+08:002018-08-01T06:32:43+08:00

    对于 iwlwifi 和其他模块,我使用了这个:

     grep [[:alnum:]] /sys/module/iwl*/parameters/*
    

    我得到这个输出:

     /sys/module/iwlmvm/parameters/init_dbg:N
     /sys/module/iwlmvm/parameters/power_scheme:2
     /sys/module/iwlmvm/parameters/tfd_q_hang_detect:Y
     /sys/module/iwlwifi/parameters/11n_disable:0
     /sys/module/iwlwifi/parameters/amsdu_size:0
     /sys/module/iwlwifi/parameters/antenna_coupling:0
     /sys/module/iwlwifi/parameters/bt_coex_active:Y
     /sys/module/iwlwifi/parameters/d0i3_disable:Y
     /sys/module/iwlwifi/parameters/d0i3_timeout:1000
     /sys/module/iwlwifi/parameters/disable_11ac:N
     /sys/module/iwlwifi/parameters/fw_monitor:N
     /sys/module/iwlwifi/parameters/fw_restart:Y
     /sys/module/iwlwifi/parameters/lar_disable:N
     /sys/module/iwlwifi/parameters/led_mode:0
     /sys/module/iwlwifi/parameters/nvm_file:(null)
     /sys/module/iwlwifi/parameters/power_level:0
     /sys/module/iwlwifi/parameters/power_save:N
     /sys/module/iwlwifi/parameters/swcrypto:0
     /sys/module/iwlwifi/parameters/uapsd_disable:3
    

    所以我想你可以尝试这样的事情:

     grep [[:alnum:]] /sys/module/<module_name>/parameters/*
    

    让我知道这是否适合您。

    • -1
  7. Scrivener
    2011-06-14T11:58:04+08:002011-06-14T11:58:04+08:00

    根据 katriel 的工作,您可以通过在 bash 循环中组合两者来获得一个(诚然丑陋的)单线:

    for i in `lsmod | awk '{print $1}'`; do echo "$i: "; modinfo $i | grep parm; done
    
    • -2

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve