Come capire l'output di modinfo?


11

Sto solo cercando di capire l' modinfooutput che descrive un modulo del kernel. Ad esempio, nel caso del modulo i915, l'output è simile al seguente:

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

Sono in grado di comprendere alcuni dei campi, ma non ho idea di cosa significhi quanto segue:

  • firmware
  • alias
  • intree
  • vermagic

Qualcuno sa come interpretarli?

Risposte:


13

firmware :

firmware:       i915/skl_dmc_ver1.bin

Molti dispositivi hanno bisogno di due cose per funzionare correttamente. Un driver e un firmware. Il driver richiede il firmware dal filesystem su /lib/firmware. Questo è un file speciale, necessario all'hardware, non è un file binario. Il subacqueo quindi fa ciò che deve fare per caricare il firmware nel dispositivo. Il firmware esegue la programmazione dell'hardware all'interno del dispositivo.


alias :

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

Questo può essere diviso nella parte dopo i personaggi:

  • v00008086: vsta per id fornitore , identifica un produttore hardware. Tale elenco è gestito dal PCI Special Interest Group . Il tuo numero 0x8086 sta per "Intel Corporation".
  • d00005A84: dsta per l' id dispositivo , che è selezionato dal produttore. Questo ID è generalmente associato all'ID fornitore per creare un identificatore univoco a 32 bit per un dispositivo hardware. Non esiste un elenco ufficiale e non sono stato in grado di trovare un elenco ID dispositivo Intel per cercare quel numero.
  • sv*, sd*: La versione del fornitore del sottosistema e la versione del dispositivo del sottosistema servono per l'ulteriore identificazione di un dispositivo ( *indica che corrisponderà a qualsiasi cosa)
  • bc03: La classe base . Definisce che tipo di dispositivo è; IDE interface, Ethernet controller, USB Controller, ... bc03sta per Display controller. Potresti notarli dall'output di lspci, perché lspciassocia il numero alla classe del dispositivo.
  • sc*: Una sottoclasse della classe base.
  • i*: interfaccia

intree :

intree:         Y

Tutti i moduli del kernel iniziano i loro sviluppi come out-of-tree. Una volta che un modulo viene accettato per essere incluso, diventa un in-treemodulo. Un modulo senza quel flag (impostato su N) potrebbe contaminare il kernel .


vermagico :

vermagic:       4.2.0-1-amd64 SMP mod_unload modversions

Quando si carica un modulo, le stringhe nel vermagicvalore vengono controllate se corrispondono. Se non corrispondono, verrà visualizzato un errore e il kernel rifiuta di caricare il modulo. Puoi superarlo usando la --forcebandiera di modprobe. Naturalmente, questi controlli sono lì per la tua protezione, quindi l'utilizzo di questa opzione è pericoloso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.