О прошивках⚓︎
Многие драйвера в ядре Linux (например, для видеокарт и сетевых адаптеров) требуют маленькие проприетарные компоненты - firmware (прошивки).
Определение необходимых прошивок⚓︎
Для того чтобы выяснить, какие прошивки нужны - загрузитесь в операционную систему (инструкции о том, как это сделать даны в следующих 2 разделах) и выполните команду dmesg
. Если для вашего ядра требуются какие либо прошивки - вы увидите связанные с этим ошибки.
Обратите внимание
Если система не загружается из-за ошибки, связанной с видео драйвером - поищите в интернете, какие драйвера необходимы для вашего видео адаптера.
Установка прошивок⚓︎
Их можно установить двумя способами:
Первый - скомпилировать требующий прошивку драйвер как модуль и поместить её в /lib/firmware
.
Второй - задать опцию CONFIG_EXTRA_FIRMWARE
. В ней должны быть перечислены через пробел все прошивки, которые необходимо включить в ядро.
Можно изменить путь поиска включенных в опцию CONFIG_EXTRA_FIRMWARE
прошивок, задав опцию CONFIG_EXTRA_FIRMWARE_DIR
(по умолчанию /lib/firmware
)
Например:
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"
В этом случае подключаются firmware для видеокарт AMDGPU семейства picasso (например, Vega 8). Они в таком случае находятся в /lib/firmware/amdgpu/
Найти и загрузить большую часть прошивок можно здесь https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/