Documentation/driver-api/firmware/built-in-fw.rst GitHub 원문 ↗

Linux 6.18.37 · Driver API

Built-in firmware

Firmware를 vmlinux에 내장하는 방법과 속도·부팅상의 이점, 법적·운영상 제약을 설명합니다.

Source pathDocumentation/driver-api/firmware/built-in-fw.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

built-in-fw.rst:1-33

Firmware를 `vmlinux`에 직접 포함하면 filesystem lookup 없이 빠르게 접근하고 boot device를 일찍 초기화할 수 있습니다. `CONFIG_EXTRA_FIRMWARE`와 `CONFIG_EXTRA_FIRMWARE_DIR`가 이 방식을 제어합니다.

반면 license 호환성, upgrade 때마다 필요한 kernel rebuild, 큰 image 크기, device마다 다른 calibration data 때문에 모든 firmware에 적합한 방식은 아닙니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 =================
2 Built-in firmware
3 =================
4
5 Firmware can be built-in to the kernel, this means building the firmware
6 into vmlinux directly, to enable avoiding having to look for firmware from
7 the filesystem. Instead, firmware can be looked for inside the kernel
8 directly. You can enable built-in firmware using the kernel configuration
9 options:
10
11 * CONFIG_EXTRA_FIRMWARE
12 * CONFIG_EXTRA_FIRMWARE_DIR
13
14 There are a few reasons why you might want to consider building your firmware
15 into the kernel with CONFIG_EXTRA_FIRMWARE:
16
17 * Speed
18 * Firmware is needed for accessing the boot device, and the user doesn't
19 want to stuff the firmware into the boot initramfs.
20
21 Even if you have these needs there are a few reasons why you may not be
22 able to make use of built-in firmware:
23
24 * Legalese - firmware is non-GPL compatible
25 * Some firmware may be optional
26 * Firmware upgrades are possible, therefore a new firmware would implicate
27 a complete kernel rebuild.
28 * Some firmware files may be really large in size. The remote-proc subsystem
29 is an example subsystem which deals with these sorts of firmware
30 * The firmware may need to be scraped out from some device specific location
31 dynamically, an example is calibration data for some WiFi chipsets. This
32 calibration data can be unique per sold device.
33
34

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

내장 firmware 개요

1-13

문서 제목은 `Built-in firmware`입니다.

Firmware를 kernel에 내장할 수 있습니다. 이는 firmware를 `vmlinux`에 직접 포함해 filesystem에서 firmware를 찾지 않아도 되게 한다는 뜻입니다. 그 대신 kernel 내부에서 firmware를 직접 찾을 수 있습니다.

다음 kernel configuration option으로 내장 firmware를 활성화할 수 있습니다.

  • `CONFIG_EXTRA_FIRMWARE`
  • `CONFIG_EXTRA_FIRMWARE_DIR`

Firmware를 kernel에 내장하는 이유

14-20

`CONFIG_EXTRA_FIRMWARE`를 사용해 firmware를 kernel에 포함하는 방안을 고려할 수 있는 이유는 다음과 같습니다.

  • 속도
  • boot device에 접근하려면 firmware가 필요하지만 사용자가 그 firmware를 boot `initramfs`에 넣고 싶지 않은 경우

법적·선택적·업데이트 제약

21-27

이러한 필요가 있더라도 다음 이유 때문에 내장 firmware를 사용하지 못할 수 있습니다.

  • 법적 문구 문제: firmware가 GPL과 호환되지 않을 수 있습니다.
  • 일부 firmware는 선택 사항일 수 있습니다.
  • Firmware upgrade가 가능하므로 새 firmware를 적용할 때 kernel 전체를 다시 build해야 합니다.

크기와 device별 data 제약

28-33
  • 일부 firmware file은 크기가 매우 클 수 있습니다. `remote-proc` subsystem은 이런 종류의 firmware를 다루는 subsystem의 예입니다.
  • Firmware를 device별 위치에서 동적으로 추출해야 할 수 있습니다. 일부 WiFi chipset의 calibration data가 그 예이며, 이 data는 판매된 device마다 고유할 수 있습니다.
내장 firmware 선택 기준
구분조건영향
이점빠른 접근, boot device 초기화filesystem lookup과 initramfs 포함을 피할 수 있음
법적 제약non-GPL-compatible firmwarekernel image에 포함하지 못할 수 있음
운영 제약optional·upgradeable·large firmwarekernel rebuild 또는 image 크기 증가
device별 data동적 calibration data정적 내장 방식이 적합하지 않음

내장 방식의 이점과 적용을 제한하는 조건을 함께 비교합니다.