No meu CentOS, a yum update
traz o seguinte:
(6/38): iwl1000-firmware-39.31.5.1-62.el7_39.31.5.1-62.2.el7_5.noarch.drpm
(7/38): iwl105-firmware-18.168.6.1-62.el7_18.168.6.1-62.2.el7_5.noarch.drpm
(8/38): iwl135-firmware-18.168.6.1-62.el7_18.168.6.1-62.2.el7_5.noarch.drpm
(9/38): iwl2000-firmware-18.168.6.1-62.el7_18.168.6.1-62.2.el7_5.noarch.drpm
(10/38): iwl2030-firmware-18.168.6.1-62.el7_18.168.6.1-62.2.el7_5.noarch.drpm
(11/38): iwl3160-firmware-22.0.7.0-62.el7_22.0.7.0-62.2.el7_5.noarch.drpm
etc.
Estes são os chamados "pacotes de firmware". Por exemplo, vamos encontrar alguns deles instalados:
rpm --query --all | grep firmware
e, em seguida, consulte suas informações:
rpm --query --info iwl105-firmware-18.168.6.1-62.2.el7_5.noarch
e temos:
Summary : Firmware for Intel(R) Centrino Wireless-N 105 Series Adapters
Description :
This package contains the firmware required by the iwlagn driver
for Linux to support the iwl105 hardware. Usage of the firmware
is subject to the terms and conditions contained inside the provided
LICENSE file. Please read it carefully.
OK, bem.
Eu nem tenho esse tipo de hardware, pois esta é uma VM.
Então, pergunta:
O que os pacotes de firmware realmente fazem?
São instalações "one-shot" que executam um executável opaco (imediatamente? Na próxima inicialização?) Que verifica se o hardware existe, transmite o código binário no flash do hardware, se o hardware estiver lá (talvez ao perguntar ao usuário; no Windows em pelo menos, a intermitência do hardware está sempre repleta de janelas do DOS que aparecem, EULAs que precisam ser clicados e barras de progresso que precisam ser suportadas) e, em seguida, marca o pacote como "instalado".
Eles modificam o initramfs para que um blob binário seja carregado por um módulo do kernel ou algo aconteça na próxima inicialização?