На моем CentOS появляется yum update
следующее:
(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
и т.п.
Это так называемые "пакеты прошивки". Например, давайте найдем несколько из них, которые установлены:
rpm --query --all | grep firmware
а затем запросить его информацию:
rpm --query --info iwl105-firmware-18.168.6.1-62.2.el7_5.noarch
и мы получаем:
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.
Ладно, хорошо.
У меня даже нет такого оборудования, так как это виртуальная машина.
Итак, вопрос:
Что на самом деле делают пакеты прошивки?
Являются ли они «однократными» установками, которые запускают непрозрачный исполняемый файл (немедленно? При следующей загрузке?), Который проверяет, существует ли оборудование, накачивает двоичный код во флэш-память оборудования, если оборудование есть (возможно, при запросе пользователя; в Windows в по крайней мере, перепрошивка оборудования всегда чревата всплывающими окнами DOS, EULA, по которым нужно было щелкнуть, и индикаторами выполнения, которые должны быть выполнены), а затем помечает пакет как «установленный».
Они изменяют initramfs так, чтобы двоичный двоичный объект загружался модулем ядра, или что-то происходит при следующей загрузке?
источник
Ответы:
Загружаемая прошивка, как правило, не является однократной установкой, которая записана на флэш-память устройства. Микропрограмма загружается в энергозависимую память на устройстве и должна выполняться каждый раз при включении хост-компьютера. Устройство не работает до загрузки прошивки. Микропрограмма может быть записана в ОЗУ на устройстве, в этом случае она содержит код и данные для процессора на устройстве, но это также может быть поток битов, определяющий логику программируемого на месте логического массива (FPGA), или некоторые сочетание обоих.
С другой стороны, прошивка во флэш-памяти обычно предварительно запрограммирована на устройствах, и ее необходимо переписать только в случае обновления прошивки от производителя. Обычно это делается с помощью других механизмов, таких как отдельный исполняемый файл, который запускается пользователем.
Есть несколько причин, по которым производители хотят использовать оперативную память вместо флэш-памяти. Прежде всего, это позволяет спроектировать одну версию аппаратного обеспечения, но в то же время поставить несколько версий продукта (например, для разных областей рынка). Если предполагается, что продукт будет часто обновляться в полевых условиях, проще будет выполнить обновление микропрограммы таким образом, чем решить проблему создания программы для обновления флэш-памяти на устройстве. Эта программа должна иметь приятный пользовательский интерфейс и быть максимально удобной для пользователя, поскольку обычно она предназначена для запуска конечным пользователем продукта. Некоторые устройства с флеш-памятью все равно часто запускают код из ОЗУ, и они просто копируют содержимое флеш-памяти в ОЗУ при запуске устройства
источник
Как упоминает Энтони Геогеган , что такое «прошивка» в терминологии Linux? и почему некоторые драйверы все еще требуют прошивки? предоставить полезный фон.
Пакеты встроенного ПО - это пакеты, которые содержат файлы встроенного ПО, т.е. файлы, содержащие код, предназначенный для запуска на устройствах, подключенных к вашей системе, или подключенных к вашей системе. Типичные примеры включают наборы микросхем Wi-Fi, как в вашем случае. Они не являются однократными установщиками, и им все равно, доступно ли оборудование. Файлы, которые они делают доступными, используются соответствующими драйверами ядра, если имеется соответствующее оборудование: драйверы загружают прошивку в память, подключенную к целевому оборудованию, которая затем запускает прошивку для работы.
Эти пакеты микропрограмм не имеют отношения к установщикам микропрограмм, о которых вы думаете, которые загружают обновления микропрограмм во флэш-память (что необходимо делать только тогда, когда требуется обновление). Этот процесс действительно длительный, часто сложный и, по-видимому, чреват опасностью (по крайней мере, если вы основываете свои впечатления на предупреждениях производителя). Пакеты встроенного ПО, включенные в дистрибутивы Linux, содержат встроенное ПО, которое необходимо при каждой загрузке системы, поскольку оно загружается в энергозависимую память.
источник
Добавление к уже превосходным ответам.
Файлы встроенного ПО, также известные как двоичные двоичные объекты, загружаются в ваше встроенное ПО по крайней мере во время холодной (повторной) загрузки устройства.
Устройство было разработано таким образом, чтобы получать встроенное ПО в ОЗУ, а не иметь ПЗУ + ОЗУ для сокращения затрат на производство. Например, у вас есть некоторые чипсеты Broadcom wifi и чипсеты внутреннего коммутатора, которые работают таким образом.
Обращаясь к другому вопросу вашего вопроса об использовании файлов прошивки в ВМ.
Поскольку вы имеете дело с виртуальной машиной, вам не нужны файлы прошивки. Они нигде не будут загружены; Гораздо меньше файлов "прошивки" Ethernet или Wi-Fi.
Аналогично, учитывая, что прошивка не требуется в среде виртуальных машин, это большая особенность, связанная с тем, что в Debian есть зависимости от общего пакета файлов прошивки в ядре Linux.
источник
firmware-linux-free
иirqbalance
- в настоящее время бесполезны в большинстве развертываний.)apt
так, чтобы он не устанавливал рекомендации по умолчанию ...