75 votos

¿Cómo puedo mostrar cargado módulo de Linux valores de los parámetros?

Hay una manera estándar de la lista de los valores de los parámetros de una carga módulo de Linux? Estoy esencialmente de sondeo para otra respuesta a este núcleo de Linux módulo de parámetros de la pregunta, ya que el módulo estoy interesado en no tener un /sys/modules/<module_name>/parameters interfaz.

52voto

RaSca Puntos 181

Usted puede hacer esto mediante el uso de esta simple manera de comando, que utiliza el archivo /proc/modules y /sys sistemas de ficheros virtuales:

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

Usted va a obtener una salida como esta:

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

Espero que esto ayude.

37voto

cdauth Puntos 89

Creo que el comando systool -vm <Module name> también hace lo que usted está buscando.

16voto

Matthew Ife Puntos 12680

Ven feo como un comentario, pero esto lo hice revisar mi sistema..

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

Para comprobar si los módulos sin parámetros en /sys se muestran como tener parámetros en modinfo, pero no pude encontrar ninguna.

No soy experto, pero la diferencia aquí es que modinfo lee el archivo de módulo propio para los parámetros mirando en el .modinfo elf encabezados, mientras que el sys es la lectura de estos a partir de su tiempo de ejecución de la variante.

Es posible que los parámetros se pueden modificar en tiempo de ejecución que no aparecen como un modinfo valor del parámetro, pero desde el módulo de formato debe ser bastante fijo no me imagine que es posible para que usted pase un parámetro de opción para un módulo cuando se carga sin que exista una .modinfo estructura de linked in.

Tengo curiosidad, ¿el módulo sugieren que hay parámetros transitable con modinfo cuando usted comprobar de esa manera, pero no hay ninguno en /sys? Sin duda en mi sistema he podido encontrar ejemplos de esto usando el comando proporcionada anteriormente.

7voto

katriel Puntos 3328

Usted puede utilizar el "modinfo(8)" comandos disponibles para obtener el tiempo de carga de los parámetros de un módulo. Por ejemplo:

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

Como para la obtención de los parámetros de los módulos cargados, intente combinar el comando modinfo con un simple "lsmod | awk '{ print $1 }'"

4voto

Scrivener Puntos 2230

Trabajando fuera de katriel del trabajo, usted puede conseguir una (es cierto que feo) de una línea mediante la combinación de los dos de ellos en una fiesta de bucle:

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

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: