나는 Debian Stretch에서 내 커널(4.4.x)을 컴파일하고 있는데, 사용자 공간에서 로드할 필요가 없도록 내 라데온 그래픽 카드용 펌웨어를 커널에 포함시키고 싶습니다.
CONFIG_FIRMWARE_IN_KERNEL
CONFIG_EXTRA_FIRMWARE
펌웨어 파일을 설치했습니다/lib/firmware/
apt-get install firmware-amd-graphics
특정 그래픽 카드에 어떤 펌웨어 파일을 포함해야 하는지 어떻게 알 수 있나요?
VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Oland GL [FirePro W2100]
다음 펌웨어 파일 중 일부가 필요하다고 가정합니다.
/lib/firmware/radeon/oland_*.bin
하지만 어느 것?
일반적으로 특정 하드웨어/드라이버에 필요한 펌웨어 파일을 찾는 프로세스는 무엇입니까?
답변1
젠투 위키라데온 기사커널 바이너리에 펌웨어를 포함하는 방법을 설명합니다. 이 문서에는 각 GPU 모델에 필요한 펌웨어 바이너리가 나열된 표도 포함되어 있습니다. 당신을 위한파이어프로 W2100(Erlan 칩셋) 이 표에는 다음 펌웨어 바이너리가 나열되어 있습니다.
radeon/oland_ce.bin radeon/oland_mc.bin radeon/oland_me.bin
radeon/oland_pfp.bin radeon/oland_rlc.bin radeon/oland_smc.bin
radeon/TAHITI_uvd.bin
dmesg| grep "direct-loading firmware"
시스템에 사용된 커널 로그를 확인하면 어떤 펌웨어가 자동으로 로드되었는지 알 수 있습니다.
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/OLAND_pfp.bin
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/OLAND_me.bin
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/OLAND_ce.bin
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/OLAND_rlc.bin
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/OLAND_mc2.bin
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/OLAND_smc.bin
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/TAHITI_uvd.bin
이 방법은 젠투 위키의 테이블에서 사용되는 데이터를 수집하는 데 사용되는 것 같습니다.
빌드 중 커널 이미지에 포함될 펌웨어는 다음을 사용하여 구성됩니다.CONFIG_EXTRA_FIRMWARE
옵션. 빌드 시스템이 추가 펌웨어를 찾는 디렉터리는 CONFIG_EXTRA_FIRMWARE_DIR
옵션을 사용하여 구성됩니다.
펌웨어 바이너리를 포함하는 방법은 다음 단계를 따르세요.
모듈이 아닌 커널에 직접 radon 드라이버(및 직접 렌더링 관리자)를 빌드해야 합니다. 모듈은 파일 시스템에서 로드되어야 합니다.
CONFIG_EXTRA_FIRMWARE_DIR
다음 과 같이 구성됨/lib/firmware
, 위치 분포는 바이너리 이미지를 설치합니다. 이렇게 하면 펌웨어 바이너리를 복사할 필요가 없습니다.목록에 펌웨어 파일을 나열합니다
CONFIG_EXTRA_FIRMWARE
. 여러 파일은 공백으로 구분됩니다.
사용메뉴 구성:
radeon 드라이버를 커널에 직접 빌드합니다.
Device Drivers ---> Graphics support ---> <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> <*> AMD GPU
펌웨어 포함
Device Drivers ---> Generic Driver Options ---> [*] Include in-kernel firmware blobs in kernel binary (radeon/... radeon/...) (/lib/firmware) Firmware blobs root directory