it-swarm-tr.com

Yüklü Linux modülü parametre değerlerini nasıl listeleyebilirim?

Yüklü bir Linux modülünün parametre değerlerini listelemenin standart bir yolu var mı? Aslında ilgilendiğim modülün /sys/modules/<module_name>/parameters Arabirimi olmadığından, bu Linux çekirdek modülü parametreleri sorus için başka bir cevap soruyorum.

80
cdleary

/ Proc/modules ve/sys sanal dosya sistemlerini kullanan bu basit tek yönlü komutu kullanarak bunu yapabilirsiniz:

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

Bunun gibi bir çıktı elde edersiniz:

...
...
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
...
...

Bu yardımcı olur umarım.

56
RaSca

systool -vm <Module name> Komutunu kullanabilirsiniz. Çoğu sistemde sysfsutils paketi ile birlikte gelir.

Çıktı böyle görünecek, Parameters bölümü var:

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"
40
cdauth
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
13
Dan Garthwaite

Bir modül için kullanılabilir yükleme süresi parametrelerini almak için " modinfo (8) " komutunu kullanabilirsiniz. Örneğin:

# 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)

Yüklü modüllerin parametrelerini almak için modinfo komutunu basit bir "lsmod | awk '{print $ 1}'" ile birleştirmeyi deneyin.

De olduğu gibi:

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
8
katriel

Yorum olarak çirkin gelirdi, ama bu kontrolü sistemime yaptım ..

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

/ Sys parametresine sahip olmayan modüllerin modinfo parametrelerine sahip olup olmadığını kontrol etmek için ama herhangi bir şey bulamadım.

Ben uzman değilim, ama burada fark modinfo .modinfo elf başlıkları bakarak parametreleri için modül dosyasını kendisi okurken, sys çalışma zamanı varyantından okuyor.

Bir modinfo parametre değeri olarak görünmeyen çalışma zamanında değiştirebileceğiniz parametrelere sahip olmak mümkün olabilir, ancak modül formatı oldukça sabit olması gerektiğinden, yükleme sırasında bir opsiyon parametresini bir modüle geçirmenin mümkün olduğunu düşünmüyorum olmadan bağlı olduğu bir .modinfo yapısı var.

Merak ediyorum, modülünüz bu şekilde kontrol ettiğinizde modinfo ile geçirilebilir parametreler olduğunu gösteriyor mu ama bunun için/sys içinde yok mu? Kesinlikle sistemimde, yukarıda verilen komutu kullanarak bunun herhangi bir örneğini bulamadım.

1
Matthew Ife

İwlwifi ve diğer modüller için bunu kullandım:

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

ve bu çıktıyı alıyorum:

 /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

Yani sanırım şöyle bir şey deneyebilirsiniz:

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

Bunun sizin için işe yarayıp yaramadığını bana bildirin.

0
Homero Esmeraldo

Katriel'in çalışmasından, ikisini bir bash döngüsünde birleştirerek (kuşkusuz çirkin) bir astar alabilirsiniz:

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