Auf meinem CentOS wird a yum update
Folgendes angezeigt :
(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
usw.
Dies sind sogenannte "Firmware-Pakete". Lassen Sie uns zum Beispiel einige davon finden, die installiert sind:
rpm --query --all | grep firmware
und fragen Sie dann seine Informationen ab:
rpm --query --info iwl105-firmware-18.168.6.1-62.2.el7_5.noarch
und wir bekommen:
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 gut.
Ich habe nicht einmal diese Art von Hardware, da dies eine VM ist.
Also, Frage:
Was machen die Firmware-Pakete eigentlich?
Handelt es sich um "One-Shot" -Installationen, bei denen eine undurchsichtige ausführbare Datei ausgeführt wird (sofort? Beim nächsten Start?), Die prüft, ob die Hardware vorhanden ist, Binärcode in den Flash der Hardware pumpt, wenn die Hardware vorhanden ist (möglicherweise auf Anfrage des Benutzers; unter Windows unter Zumindest ist das Flashen der Hardware immer mit DOS-Fenstern behaftet, die angezeigt werden, EULAs, durch die geklickt werden muss, und Fortschrittsbalken, die ausgehalten werden müssen, und markiert das Paket dann als "installiert".
Ändern sie die initramfs so, dass ein binärer Blob von einem Kernelmodul geladen wird oder beim nächsten Start etwas passiert?
quelle
Antworten:
Bei der ladbaren Firmware handelt es sich normalerweise nicht um "One-Shot" -Installationen, die zum Flashen auf dem Gerät geschrieben wurden. Die Firmware wird in den flüchtigen Speicher des Geräts geladen und muss jedes Mal ausgeführt werden, wenn der Host-Computer eingeschaltet wird. Das Gerät funktioniert nicht, bevor die Firmware geladen wurde. Die Firmware kann in den Arbeitsspeicher des Geräts geschrieben werden. In diesem Fall enthält sie Code und Daten für den Prozessor des Geräts. Es kann sich jedoch auch um einen Bitstrom handeln, der die Logik eines feldprogrammierbaren Logikarrays (FPGA) oder eines anderen definiert Kombination von beiden.
Andererseits ist die Firmware im Flash-Speicher normalerweise auf den Geräten vorprogrammiert und muss nur neu geschrieben werden, wenn die Firmware vom Hersteller aktualisiert wurde. Dies erfolgt normalerweise über andere Mechanismen, z. B. eine separate ausführbare Datei, die vom Benutzer ausgeführt wird.
Es gibt einige Gründe, warum Hersteller RAM anstelle von Flash-Speicher verwenden möchten. Erstens ist es möglich, eine einzelne Version der Hardware zu entwerfen und gleichzeitig mehrere Versionen des Produkts zu liefern (z. B. für verschiedene Marktbereiche). Wenn erwartet wird, dass das Produkt häufig vor Ort aktualisiert wird, ist es möglicherweise einfacher, die Firmware-Aktualisierungen auf diese Weise durchzuführen, als ein Programm zum Aktualisieren des Flash-Speichers auf dem Gerät zu erstellen. Dieses Programm sollte eine schöne Benutzeroberfläche haben und so benutzerfreundlich wie möglich gestaltet sein, da es normalerweise vom Endbenutzer des Produkts ausgeführt werden soll. Einige Geräte mit Flash-Speicher führen häufig ohnehin Code aus dem RAM aus und kopieren den Inhalt des Flashs nur in den RAM, wenn das Gerät gestartet wird.
quelle
Wie Anthony Geoghegan erwähnt , was ist "Firmware" in der Linux-Terminologie? und warum benötigen einige Treiber noch Firmware? bieten nützliche Hintergrundinformationen.
Firmware-Pakete sind Pakete, die Firmware-Dateien enthalten, dh Dateien, die Code enthalten, der auf Geräten ausgeführt oder mit Ihrem System verbunden werden soll. Zu den gängigen Beispielen gehören wie in Ihrem Fall WLAN-Chipsätze. Sie sind keine One-Shot-Installer und es ist ihnen egal, ob die Hardware verfügbar ist. Die von ihnen zur Verfügung gestellten Dateien werden von den entsprechenden Kerneltreibern verwendet, sofern die entsprechende Hardware vorhanden ist: Die Treiber laden die Firmware in den an die Zielhardware angeschlossenen Speicher, in dem die Firmware ausgeführt wird.
Diese Firmware-Pakete beziehen sich nicht auf die Firmware-Installationsprogramme, über die Sie nachdenken und die Firmware-Updates in den Flash-Speicher laden (was nur durchgeführt werden muss, wenn ein Update erforderlich ist). Dieser Prozess ist in der Tat langwierig, oft komplex und scheinbar mit Gefahren behaftet (zumindest, wenn Sie Ihre Eindrücke auf die Warnungen des Herstellers stützen). In Linux-Distributionen enthaltene Firmware-Pakete enthalten Firmware, die bei jedem Systemstart benötigt wird, da sie in den flüchtigen Speicher geladen wird.
quelle
Hinzu kommen die bereits hervorragenden Antworten.
Firmware-Dateien, auch proprietäre Binär-Blobs genannt, werden mindestens zum Zeitpunkt des Kaltstarts des Geräts in Ihre Firmware geladen.
Das Gerät wurde so konzipiert, dass Firmware im RAM gespeichert wird, anstatt über ein ROM + RAM zu verfügen, um die Produktionskosten zu senken. Als Beispiel haben Sie einige Broadcom-WLAN-Chipsätze und interne Switch-Chipsätze, die auf diese Weise funktionieren.
Adressierung des anderen Punkts Ihrer Frage zur Verwendung von Firmware-Dateien in einer VM.
Da Sie mit einer VM arbeiten, benötigen Sie keine Firmware-Dateien. Sie werden nirgendwo geladen; viel weniger Ethernet- oder WLAN-Firmware-Dateien.
Da Firmware in einer VM-Umgebung nicht benötigt wird, ist es eine große Besonderheit, in Debian die Abhängigkeiten von einem generischen Firmware-Dateipaket im Linux-Kernel zu haben.
quelle
firmware-linux-free
undirqbalance
- sind heutzutage in den meisten Bereitstellungen nutzlos.)apt
damit Empfehlungen nicht standardmäßig installiert werden ...