Что такое блобы прошивки (из linux-firmware)?

Согласно https://wiki.gentoo.org/wiki/Linux_firmware ,

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

Например, для моего устройства pcie bluetooth требуется linux-firmware / qca / htbtfw20.tlv . Это драйвер ядра? Почему формат .tlv , а некоторые - .bin ? Обычно драйверы ядра являются исполняемыми файлами ELF.

0
задан 15 December 2020 в 23:39

1 ответ

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

Эти BLOB-объекты не выполняются ОС, а загружаются в оборудование. После загрузки блоба ОС может управлять устройством с помощью какого-либо драйвера.

В случае Bluetooth общий модуль Linux, например. btusb или hci_qca в вашем случае используется для большинства устройств. Модуль определяет устройство, загружает прошивку и далее может использовать устройство как любое другое.

На самом деле не имеет значения, как называется файл. Его выбирает продавец.

Прошивка - это не совсем драйвер. Это некоторый код, выполняемый устройством, который позволяет ему взаимодействовать с драйвером.

Мейнтейнеры Linux получают прошивку от поставщиков или их драйверы и накапливают BLOB-объекты в git linux-firmware.

Мейнтейнеры дистрибутива, такие как Сanonical, упаковывают эту прошивку в пакеты. В случае с Ubuntu это неожиданно linux-firmware. Он сделан из ядра linux-frimware git и время от времени обновляется.

5
ответ дан 15 December 2020 в 20:45

Другие вопросы по тегам:

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