Пакеты прошивки: Что они на самом деле делают?

В целом соглашаясь с @msuchy , что релевантной особенностью является комбинация имени и архитектуры , это помогает дать некоторый обзор.

Место для поиска информации - это не «обновление», а установка нескольких версий пакета:

Несколько установленных версий (на rpm.org) дает хороший обзор:

Все инструменты управления пакетами работают с использованием определенных ключей для обращения к пакетам / программам. Обычно этим ключом является пакет имя или пакет имя и пакет arch

. То есть есть два варианта (обычно): само имя пакета или имя пакета в сочетание с архитектурой. Далее говорится, что пакеты ядра

созданы специально, поэтому они не предлагают никаких конфликтующих файлов от одной версии ядра к другой

То есть ядра обрабатываются особым образом, потому что это известно (разработчикам пакетов) что все файлы в пакете ядра Linux имеют разные имена (либо в именах файлов есть встроенная версия, либо файлы находятся в каталогах с встроенной версией). Это особый случай. Слишком много особых случаев заставляет работать сопровождающих RPM.

Далее показано, как пакеты для программ с долгосрочными стабильными версиями создаются с использованием этих номеров версий как части пакета name , что позволяет установить несколько версий программы на такая же машина. Приведен пример для Python. Другие программы, использующие ту же схему, включают apache, autoconf, gcc, java.Вот несколько примеров из Fedora22:

SDL2-2.0.3-5.fc22.x86_64
openjpeg2-2.1.0-6.fc22.x86_64
pygobject2-2.28.6-13.fc22.x86_64
pygobject3-3.16.2-1.fc22.x86_64
pygobject3-base-3.16.2-1.fc22.x86_64
python3-3.4.2-6.fc22.x86_64
qt5-qtbase-5.5.0-15.fc22.x86_64
vte291-0.40.2-1.fc22.x86_64
vte3-0.36.4-1.fc22.x86_64
webkitgtk3-2.4.9-1.fc22.x86_64
webkitgtk4-2.8.5-2.fc22.x86_64

Когда вы видите эти пакеты, легко запутаться, какие числа являются частью имени пакета, а какие - версия и release . RPM использует тире ( - ) для их разделения: если тире нет, число является частью имени.

8
15.07.2018, 14:46
3 ответа

Загружаемая прошивка, как правило, не является установкой «одним -выстрелом», которая записывается во флэш-память устройства. Прошивка загружается в энергозависимую память устройства, и ее необходимо выполнять каждый раз при включении главного компьютера. Устройство не работает до загрузки прошивки. Прошивка может быть записана в ОЗУ на устройстве, и в этом случае она содержит код и данные для процессора на устройстве, но также может быть потоком битов, определяющим логику поля -программируемой логической матрицы (FPGA )или их комбинация.

С другой стороны, встроенное ПО во флэш-памяти обычно предварительно -запрограммировано на устройствах, и его необходимо перезаписывать только в случае обновления встроенного ПО от производителя. Обычно это делается с помощью других механизмов, таких как отдельный исполняемый файл, который запускается пользователем.

Есть несколько причин, по которым производители хотят использовать оперативную память вместо флэш-памяти. Во-первых, это позволяет проектировать единую версию оборудования, но при этом поставлять несколько версий продукта (для разных сфер рынка, например ). Если ожидается, что продукт будет часто -обновляться, может быть проще выполнить обновление микропрограммы таким образом, чем создавать программу для обновления флэш-памяти на устройстве. Эта программа должна иметь приятный пользовательский интерфейс и быть максимально удобной для пользователя, поскольку она обычно предназначена для запуска конечным пользователем продукта. Некоторые устройства с флэш-памятью в любом случае часто запускают код из ОЗУ, и они просто копируют содержимое флэш-памяти в ОЗУ при запуске устройства, и в этом случае флэш-чип просто простаивает большую часть времени и требует дополнительных затрат.

5
27.01.2020, 20:11

Как упоминает Anthony Geoghegan , , Что такое «прошивка» в терминологии Linux? и Почему для некоторых драйверов по-прежнему требуется прошивка?обеспечивают полезную информацию.

Пакеты встроенного ПО — это пакеты, содержащие файлы встроенного ПО, т. е. файлы, которые содержат код, предназначенный для запуска на устройствах в вашей системе или подключенных к ней — общие примеры включают наборы микросхем Wi-Fi, как в вашем случае. Это не разовые -установщики, и им все равно, доступно ли оборудование. Файлы, которые они делают доступными, используются соответствующими драйверами ядра, если соответствующее оборудование присутствует :драйверы загружают прошивку в память, подключенную к целевому оборудованию, которое затем запускает прошивку для работы.

Эти пакеты прошивки не связаны с установщиками прошивки, о которых вы думаете, которые загружают обновления прошивки во флэш-память (, что необходимо делать только тогда, когда требуется обновление ). Этот процесс действительно длительный, часто сложный и кажется опасным (, по крайней мере, если основывать свои впечатления на предупреждениях производителя ). Пакеты микропрограмм, включенные в дистрибутивы Linux, содержат микропрограмму, которая требуется каждый раз при загрузке системы, поскольку она загружается в энергозависимую память.

7
27.01.2020, 20:11

Добавление к уже отличным ответам.

Файлы встроенного ПО, также известные как проприетарные двоичные объекты, загружаются в ваше встроенное ПО как минимум во время холодной (повторной )загрузки устройства.

Устройство было разработано таким образом, чтобы прошивка помещалась в ОЗУ вместо того, чтобы иметь ПЗУ + ОЗУ, чтобы сократить производственные затраты. Например, у вас есть некоторые наборы микросхем Wi-Fi Broadcom и наборы микросхем внутреннего коммутатора, которые работают таким образом.

Обращаясь к другому пункту вашего вопроса об использовании файлов прошивки в виртуальной машине.

Поскольку вы имеете дело с виртуальной машиной, вам не нужны файлы прошивки. Они никуда не будут загружены; гораздо меньше файлов «прошивки» Ethernet или Wi-Fi.

Точно так же, учитывая, что прошивка не нужна в среде ВМ, это большая идиосинкразия, связанная с зависимостью Debian от универсального пакета файлов прошивки в ядре Linux.

3
27.01.2020, 20:11

Теги

Похожие вопросы