Як зрозуміти вихід modinfo?


11

Я просто намагаюся зрозуміти modinfoвихід, який описує модуль ядра. Наприклад, у випадку з модулем i915висновок виглядає так:

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

Я можу зрозуміти деякі поля, але я не маю поняття, що означає наступне:

  • firmware
  • alias
  • intree
  • vermagic

Хтось знає, як їх інтерпретувати?

Відповіді:


13

прошивка :

firmware:       i915/skl_dmc_ver1.bin

Для правильного запуску багатьох пристроїв потрібні дві речі. Драйвер і прошивка. Драйвер запитує прошивку від файлової системи на /lib/firmware. Це спеціальний файл, потрібний апаратному забезпеченню, це не бінарний файл. Потім водолаз робить все, що потрібно зробити, щоб завантажити прошивку в пристрій. Прошивка програмує апаратне забезпечення всередині пристрою.


псевдонім :

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

Це можна розділити на частини після символів:

  • v00008086: vозначає ідентифікатор постачальника , він ідентифікує виробника обладнання. Цей список підтримується спеціальною групою інтересів PCI . Ваш номер 0x8086 означає "Корпорація Intel".
  • d00005A84: dозначає ідентифікатор пристрою , який вибирає виробник. Цей ідентифікатор зазвичай поєднується з ідентифікатором постачальника, щоб створити унікальний 32-розрядний ідентифікатор для апаратного пристрою. Офіційного списку немає, і мені не вдалося знайти список ідентифікаторів пристроїв Intel для пошуку цього номера.
  • sv*, sd*: Версія постачальника підсистеми та версія пристрою підсистеми призначені для подальшої ідентифікації пристрою ( *вказує, що він відповідатиме будь-чому)
  • bc03: Базовий клас . Він визначає, що це за пристрій; IDE interface, Ethernet controller, USB Controller, ... bc03позначає Display controller. Ви можете помітити їх на виході lspci, оскільки lspciномер відображає в клас пристрою.
  • sc*: Підклас до базового класу.
  • i*: інтерфейс

intree :

intree:         Y

Усі модулі ядра починають свою розробку як out-of-tree. Як тільки модуль приймається для включення, він стає in-treeмодулем. Модулі без цього прапора (встановлено на N) могли б домагати ядра .


вермагічний :

vermagic:       4.2.0-1-amd64 SMP mod_unload modversions

Під час завантаження модуля рядки у vermagicзначенні перевіряються, чи відповідають вони. Якщо вони не відповідають, ви отримаєте помилку, і ядро ​​відмовляється завантажувати модуль. Ви можете подолати це, використовуючи --forceпрапор modprobe. Природно, ці перевірки існують для вашого захисту, тому використовувати цю опцію небезпечно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.