¿Cómo entender la salida de modinfo?

11

Solo estoy tratando de entender el modinforesultado que describe un módulo de kernel. Por ejemplo, en el caso del módulo i915, la salida se ve así:

$ modinfo i915
filename:       /lib/modules/4.2.0-1-amd64/kernel/drivers/gpu/drm/i915/i915.ko
license:        GPL and additional rights
description:    Intel Graphics
author:         Intel Corporation
[...]
firmware:       i915/skl_dmc_ver1.bin
alias:          pci:v00008086d00005A84sv*sd*bc03sc*i*
[...]
depends:        drm_kms_helper,drm,video,button,i2c-algo-bit
intree:         Y
vermagic:       4.2.0-1-amd64 SMP mod_unload modversions
parm:           modeset:Use kernel modesetting [KMS] (0=DRM_I915_KMS from .config, 1=on, -1=force vga console preference [default]) (int)
[...]

Puedo entender algunos de los campos, pero no tengo idea de lo que significa lo siguiente:

  • firmware
  • alias
  • intree
  • vermagic

¿Alguien sabe cómo interpretarlos?

Mikhail Morfikov
fuente

Respuestas:

13

firmware :

firmware:       i915/skl_dmc_ver1.bin

Muchos dispositivos necesitan dos cosas para funcionar correctamente. Un controlador y un firmware. El controlador solicita el firmware del sistema de archivos en /lib/firmware. Este es un archivo especial, que necesita el hardware, no es binario. Luego, el buzo hace lo que debe hacer para cargar el firmware en el dispositivo. El firmware programa el hardware dentro del dispositivo.


alias :

alias:          pci:v00008086d00005A84sv*sd*bc03sc*i*

Esto se puede dividir en la parte posterior a los caracteres:

  • v00008086: vrepresenta la identificación del proveedor , identifica a un fabricante de hardware. Esa lista es mantenida por el PCI Special Interest Group . Su número 0x8086 significa "Intel Corporation".
  • d00005A84: drepresenta la identificación del dispositivo , que es seleccionada por el fabricante. Esta ID generalmente se combina con la ID del proveedor para crear un identificador único de 32 bits para un dispositivo de hardware. No hay una lista oficial y no pude encontrar una lista de identificación de dispositivo Intel para buscar ese número.
  • sv*, sd*: La versión del proveedor del subsistema y la versión del dispositivo del subsistema son para la identificación adicional de un dispositivo ( *indica que coincidirá con cualquier cosa)
  • bc03: La clase base . Define qué tipo de dispositivo es; IDE interface, Ethernet controller, USB Controller, ... bc03representa Display controller. Puede notarlos desde la salida de lspci, porque lspciasigna el número a la clase de dispositivo.
  • sc*: Una subclase a la clase base.
  • i*: interfaz

intree :

intree:         Y

Todos los módulos del núcleo comienzan su desarrollo como out-of-tree. Una vez que un módulo es aceptado para ser incluido, se convierte en un in-treemódulo. Un módulo sin esa bandera (establecido en N) podría contaminar el núcleo .


vermagic :

vermagic:       4.2.0-1-amd64 SMP mod_unload modversions

Al cargar un módulo, las cadenas en el vermagicvalor se verifican si coinciden. Si no coinciden, recibirá un error y el núcleo se niega a cargar el módulo. Puedes superar eso usando la --forcebandera de modprobe. Naturalmente, estas comprobaciones están ahí para su protección, por lo que usar esta opción es peligroso.

caos
fuente