2021-06-10 02:30:25 +08:00
# О прошивках
2021-06-27 15:52:41 +08:00
Многие драйвера в ядре Linux (например, для видеокарт и сетевых адаптеров) требуют маленькие проприетарные компоненты - firmware (прошивки).
2021-06-10 02:30:25 +08:00
## Определение необходимых прошивок
Для того чтобы выяснить, какие прошивки нужны - загрузитесь в операционную систему (инструкции о том, как это сделать даны в следующих 2 разделах) и выполните команду `dmesg` . Если для вашего ядра требуются какие либо прошивки - вы увидите связанные с этим ошибки.
2021-06-27 15:52:41 +08:00
?> Если система не загружается из-за ошибки, связанной с видео драйвером - поищите в интернете, какие драйвера необходимы для вашего видео адаптера.
2021-06-10 02:30:25 +08:00
## Установка прошивок
2021-06-10 02:58:30 +08:00
Их можно установить двумя способами:
2021-06-10 02:30:25 +08:00
2021-06-10 02:58:30 +08:00
Первый - скомпилировать требующий прошивку драйвер как модуль и поместить её в `/lib/firmware` .
2021-06-10 02:30:25 +08:00
Второй - задать опцию `CONFIG_EXTRA_FIRMWARE` . В ней должны быть перечислены через пробел все прошивки, которые необходимо включить в ядро.
2021-06-26 20:02:42 +08:00
Можно изменить путь поиска включенных в опцию `CONFIG_EXTRA_FIRMWARE` прошивок, задав опцию `CONFIG_EXTRA_FIRMWARE_DIR` (по умолчанию `/lib/firmware` )
2021-06-10 02:30:25 +08:00
Например:
```
CONFIG_EXTRA_FIRMWARE="amdgpu/picasso_asd.bin amdgpu/picasso_gpu_info.bin amdgpu/picasso_mec2.bin amdgpu/picasso_pfp.bin amdgpu/picasso_rlc.bin amdgpu/picasso_ta.bin amdgpu/picasso_ce.bin amdgpu/picasso_me.bin amdgpu/picasso_mec.bin amdgpu/picasso_rlc_am4.bin amdgpu/picasso_sdma.bin amdgpu/picasso_vcn.bin"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
```
2021-06-27 15:52:41 +08:00
В этом случае подключаются firmware для видеокарт AMDGPU семейства picasso (например, Vega 8). Они в таком случае находятся в `/lib/firmware/amdgpu/`
2021-06-10 02:30:25 +08:00
Найти и загрузить большую часть прошивок можно здесь `https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/`