Ubuntu what is linux firmware

What is linux-firmware when updating kernel?

Many devices have two essential software pieces that make them function in your operating system. The first is a working driver, which is the software that lets your system talk to the hardware. The second is firmware, which is usually a small piece of code that is uploaded directly to the device for it to function correctly. You can think of the firmware as a way of programming the hardware inside the device. In fact, in almost all cases firmware is treated like hardware in that it’s a black box; there’s no accompanying source code that is freely distributed with it.

While many devices can work without firmware, many more complicated ones require firmware to be properly set up, e.g. almost all modern GPUs, CPUs (microcode updates which fix bugs, erratas and vulnerabilities), Ethernet cards and WiFi adapters/phone radio modules (e.g. there’s a ton of variability in terms of properly broadcasting and receiving wireless signal and there are regional limitations as well), SCSI/RAID adapters, multimedia devices including webcams, etc.

Some people choose not to use firmware because they believe it can be used to extend hardware capabilities beyond what was initially designed/built into them, check Linux-libre So, if you have a server or a relatively old PC/laptop you can try running without firmware or even use the Linux-Libre kernel. I don’t share this point of view because modern hardware already has ROM and its circuitry is in absolute most cases «closed» sourced, so it’s not obvious whether it’s backdoor-free in the first place.

Читайте также:  Nouveau or nvidia drivers linux

This package contains not just single firmware, it contains multiple files for various hardware devices (some devices require multiple files). Like I said, if everything works for you, you may as well never install it.

Источник

Прошивки устройств (firmware) в Linux

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

Из-за отсутствия прошивки устройство может не работать полностью или частично.

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

Иногда прошивки одного производителя разбиты на пакеты, например, пакет firmware-intel-sound содержит прошивки для звуковых устройств Intel, а пакет firmware-iwlwifi содержит прошивки для беспроводных карт Intel.

Бывают случаи, когда прошивки устройств одного типа и одного производителя разделены на разные пакеты, например пакеты firmware-ath9k-htc и firmware-atheros содержат прошивки беспроводных адаптеров Atheros.

Примеры проблем, которые могут вызвать отсутствующие прошивки:

Прошивки в Kali Linux

В Kali Linux имеется несколько пакетов с прошивками, например:

Первые два пакета содержат прошивки, которые ранее были включены в ядро Linux. В первом пакете содержатся прошивки, которые соответствуют Debian Free Software Guidelines, во втором — остальные, не соответствующие Free Software Guidelines. Большая часть прошивок попала в пакет non-free. А в третьем пакете собраны… ещё прошивки.

Кроме этих пакетов имеются пакеты, содержащие прошивки для определённых устройств определённых производителей, например, firmware-realtek, firmware-atheros, firmware-iwlwifi.

В репозитории Kali Linux также имеется два метапакета:

  • firmware-linux — включает в себя firmware-linux-free и firmware-linux-nonfree
  • kali-linux-firmware — включает в себя bluez-firmware, firmware-amd-graphics, firmware-atheros, firmware-brcm80211, firmware-intel-sound, firmware-iwlwifi, firmware-libertas, firmware-linux, firmware-misc-nonfree, firmware-realtek, firmware-sof-signed, firmware-ti-connectivity, firmware-zd1211
Читайте также:  No icmp redirect linux

Для того, чтобы не испытывать в будущем проблем с Wi-Fi и другими устройствами, рекомендуется установить пакет kali-linux-firmware, который установит большинство необходимых прошивок.

В Kali Linux удобно искать по пакетам прошивок командой вида

apt search СТРОКА_ДЛЯ_ПОИСКА

В качестве СТРОКИ_ДЛЯ_ПОИСКА можно указать название устройства, производителя, чипсет устройства, название файла прошивки, если вы его знаете.

Прошивки в Debian

В Debian кроме уже знакомых по Kali Linux пакетам firmware-linux-free, firmware-linux-nonfree и firmware-misc-nonfree имеется также уже знакомый метапакет firmware-linux, объединяющий предыдущие два.

В дополнении к рассмотренным, имеются прошивки для устройств отдельных производителей, например, firmware-iwlwifi, firmware-ath9k-htc, firmware-atheros, firmware-amd-graphics и другие.

Прошивки в Ubuntu, Linux Mint

В этих дистрибутивах прошивки не делятся на free и nonfree и помещены в один пакет под названием linux-firmware.

Кроме этого пакета, также имеются прошивки для определённых производителей, например firmware-ath9k-htc, nouveau-firmware и другие.

В целом, в Ubuntu и Linux Mint большинство прошивок собрано в единый пакет linux-firmware и это удобно!

Но поиск пакетов прошивок командой вида

apt search СТРОКА_ДЛЯ_ПОИСКА

практически бесполезен если вы пытаетесь найти по модели устройства, чипсету или файлу прошивки. Если вы выполнили поиск и не нашли отдельного пакета для вашего устройство, то скорее всего нужная вам прошивка содержится в пакете linux-firmware.

Прошивки в Arch Linux, Manjaro, BlackArch

До недавнего времени все прошивки были собраны в одном пакете linux-firmware. Но некоторые крупные и редкие прошивки были выделены в отдельные пакеты, подробности в статье «Изменения в пакете linux-firmware: требования к ядру, выделение больших файлов в отдельные пакеты».

Как установить все прошивки устройств

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

Установка основных пакетов прошивок выполняется следующими командами.

Читайте также:  Virtualbox общие папки linux ubuntu

В Kali Linux:

sudo apt install kali-linux-firmware
sudo apt install firmware-linux firmware-misc-nonfree firmware-iwlwifi firmware-ath9k-htc

В Ubuntu, Linux Mint:

sudo apt install linux-firmware firmware-iwlwifi firmware-ath9k-htc

В Arch Linux, Manjaro, BlackArch:

sudo pacman -S linux-firmware

Источник

What are firmware blobs (from linux-firmware) exactly?

Linux firmware is a package distributed alongside the Linux kernel that contains firmware binary blobs necessary for partial or full functionality of certain hardware devices. These binary blobs are usually proprietary because some hardware manufacturers do not release source code necessary to build the firmware itself.

For example, my bluetooth pcie device requires linux-firmware/qca/htbtfw20.tlv . Is this a kernel driver? Why the format .tlv , and why some are .bin ? Generally kernel drivers are ELF executables.

1 Answer 1

Many hardware vendors make a secret in how their hardware work. That’s why they hide some functions of their devices into closed source blobs. They distribute the blobs with their drivers.

These blobs are not executed by the OS, but are loaded into the hardware. After the blob is loaded, OS can manage the device using some driver.

In case of Bluetooth a generic Linux module, e.g. btusb , or hci_qca in your case, is used for most of devices. The module detects the device, loads firmware and then it can use the device as any other one.

It doesn’t really matter how the file is called. It is chosen by a vendor.

Firmware is not exactly a driver. It is some code executed by a device that allows it to communicate with a driver.

Linux maintainers get firmware from vendors, or their drivers and accumulate the blobs in linux-firmware git.

Distribution maintainers, like Сanonical, pack this firmware into packages. In case of Ubuntu it is surprisingly linux-firmware package. It is made of the kernel linux-frimware git and updated from time to time.

Источник

Оцените статью
Adblock
detector