/sys/modules/<module_name>/parameters
接口。#1 楼
您可以使用以下简单的单向命令来执行此操作,该命令使用/ 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
...
...
希望有帮助。
评论
谢谢!这对于诊断有问题的硬件的各种问题非常有用!
–Oz123
2012-12-10 6:54
太神奇了,如果您通过$ module作为例如函数参数而不是从/ proc / modules获取它,您可以轻松获取给定模块的所有参数。
– igordcard
2014年5月18日在11:14
@RaSca-这些答案对您有用吗?
–丹·加思韦特(Dan Garthwaite)
2015年2月2日,下午2:47
起初这对我不起作用,因为我有别名ls ='ls -lah'。尽管删除别名或将解决方案作为脚本运行,效果很好。
– David Farrell
17年1月15日在15:42
将其与lsmod中的grep结合使用: grep -i蓝牙> lsmodpattern.txt; cat lsmodpattern.txt | sed's / | / /'| awk'{print $ 4}'> patternmodules.txt; cat patternmodules.txt | tr,'\ n'|边读模块;做echo“ Module:$ module”;如果[-d“ / sys / module / $ module / parameters”];然后ls / sys / module / $ module / parameters / |读取参数时做echo -n“ Parameter:$ parameter =”; cat / sys / module / $ module / parameters / $ parameter;完成fi;完成
– Ferroao
17年8月30日在17:36
#2 楼
您可以使用命令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"
评论
systool命令是sysfsutils软件包的一部分。这就是我认为的答案(但可能会有示例输出)
– Volker Siegel
14年6月20日在7:22
使用此查询我系统上的少数模块,似乎“参数:”部分仅出现在公开了/ sys / modules /
–兰斯·马修斯
19年8月13日在20:05
#3 楼
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
评论
OP特别指出,所讨论的模块不会通过/ sys显示当前参数值。因此,此答案对于其他情况是正确的,但根本无法回答原始问题。
– Biinarus
20/12/20在10:09
#4 楼
您可以使用“ 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 }'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
评论
-1这仅显示类似手册页的内容,但没有说明值是什么。
–亚历山大·列夫丘克(Aleksandr Levchuk)
2010年11月13日,0:43
#5 楼
作为注释,它会很丑陋,但是我在系统上进行了检查。 br />我不是专家,但是这里的区别是modinfo通过查看.modinfo elf标头来读取模块文件本身的参数,而sys是从其运行时变体读取这些标头的。可能拥有可以在运行时修改的参数,这些参数不会显示为modinfo参数值,但是由于模块格式应该是相当固定的,所以我不认为它可能在加载时将选项参数传递给模块而没有.modinfo结构的情况因为它已链接。
您以这种方式检查模块时,是否建议模块使用modinfo传递参数,但/ sys中没有参数?当然,在我的系统上,我无法使用上面提供的命令找到任何此类示例。
评论
OP特别指出,所讨论的模块不会通过/ sys公开当前参数值。因此,此答案很有趣,但没有回答原始问题。
– Biinarus
20 Dec 20'在10:12
@Binarus我的意思是,它有9年的历史了,但我认为您在投票之前实际上并未阅读我写的内容!
–马修·伊夫(Matthew Ife)
20/12/23在14:10
重新阅读您的答案后,我深表歉意。那太快了,我将把downvote转换成upvote。感谢您向我展示我的错误(但是,我认为答案的年龄在这里并不重要:-))
– Biinarus
20 Dec 23'15:20
原来我无法投票,因为我的“投票已被锁定,直到答案被编辑”。我对其进行了稍微的编辑,现在我等待它通过审核队列。我希望我最终能把我的下票变成上票。
– Biinarus
20/12/23在15:25
OK完成 ....
– Biinarus
20/12/23在20:51
#6 楼
对于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/*
让我知道这是否适合您。
评论
grep。更少的打字也可能同样有效。 :)
– dannysauer
19年2月27日在17:38
是的,在这种情况下,是grep。 / sys /模块/ <模块名称> /参数/ *
– Homero Esmeraldo
19年2月27日在18:44
我刚刚注意到的一件事-如果您使用通配符,并且只有一个参数,它将仅显示文件内容-没有文件名。但是,如果使用grep -R并将通配符保留在parameters目录之外,它将始终显示文件名。优点:还将--color添加到grep,并获取文件名+值(按颜色区分)。 ;)例如grep -R --color'。' / sys /模块/块/参数/
– dannysauer
19-2-27在22:29
(不要介意询问该问题的人专门询问不公开/ parameters API:D的模块)
– dannysauer
19年2月27日在22:30
#7 楼
在katriel的工作基础上,您可以通过在bash循环中将两者结合在一起来获得(非常丑陋的)单线:for i in `lsmod | awk '{print }'`; do echo "$i: "; modinfo $i | grep parm; done
评论
使用awk仅通过print返回第一个参数有点麻烦-改用while读取语法:读b时回显$ a :; modinfo $ a | grep parm | sed -e's / parm://';完成-它不会改变modinfo不返回参数值的事实,尽管...
–比特流
2011年6月14日15:21
我认为最初的问题是关于使用的参数,而不是可用的参数。
– asdmin
2012年2月17日在12:51
评论
到目前为止,所有答案都应该被否决,因为他们没有仔细阅读OP(“我感兴趣的模块没有... / parameters接口”)! :-(