Como entender a saída modinfo?

11

Estou apenas tentando entender a saída modinfo que descreve um módulo do kernel. Por exemplo, no caso do módulo i915 , a saída é assim:

$ 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)
[...]

Consigo entender alguns dos campos, mas não tenho ideia do que os seguintes significam:

  • firmware
  • alias
  • intree
  • vermagic

Alguém sabe como interpretá-los?

    
por Mikhail Morfikov 23.10.2015 / 16:45

1 resposta

10

firmware :

firmware:       i915/skl_dmc_ver1.bin

Muitos dispositivos precisam de duas coisas para serem executados corretamente. Um driver e um firmware. O driver solicita o firmware do sistema de arquivos em /lib/firmware . Este é um arquivo especial, necessário pelo hardware, não é um binário. O mergulhador então faz o que precisa fazer para carregar o firmware no dispositivo. O firmware faz a programação do hardware dentro do dispositivo.

alias :

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

Isso pode ser dividido na parte depois dos caracteres:

  • v00008086 : v representa o ID do fornecedor , identifica um fabricante de hardware. Essa lista é mantida pelo Grupo de Interesse Especial do PCI . Seu número 0x8086 significa "Intel Corporation".
  • d00005A84 : d representa o ID do dispositivo , que é selecionado pelo fabricante. Esse ID geralmente é emparelhado com o ID do fornecedor para criar um identificador exclusivo de 32 bits para um dispositivo de hardware. Não há uma lista oficial e não consegui encontrar uma lista de IDs de dispositivos da Intel para procurar esse número.
  • sv* , sd* : A versão do fornecedor do subsistema e versão do dispositivo do subsistema são para identificação adicional de um dispositivo ( * indica que ele corresponderá a qualquer coisa)
  • bc03 : a classe base . Ele define que tipo de dispositivo é; IDE interface , Ethernet controller , USB Controller , ... bc03 significa Display controller . Você pode notá-los da saída de lspci , porque lspci mapeia o número para a classe de dispositivo.
  • sc* : Uma classe para a classe base.
  • i* : interface

intree :

intree:         Y

Todos os módulos do kernel iniciam seus desenvolvimentos como out-of-tree . Uma vez que um módulo seja aceito para ser incluído, ele se torna um módulo in-tree . Um módulo sem esse sinalizador (definido como N ) poderia manchar o kernel .

vermagic :

vermagic:       4.2.0-1-amd64 SMP mod_unload modversions

Ao carregar um módulo, as seqüências no valor vermagic são verificadas se coincidem. Se eles não corresponderem, você receberá um erro e o kernel se recusará a carregar o módulo. Você pode superar isso usando o sinal --force de modprobe . Naturalmente, essas verificações estão disponíveis para sua proteção, portanto, usar essa opção é perigoso.

    
por 23.10.2015 / 17:41