← Documents Documentation/admin-guide/media/building.rst GitHub 원문 ↗

Linux 6.18.37 · Administration / Media

Building support for a media device

Media subsystem, remote controller, HDMI CEC driver의 kernel 설정과 build·install 절차를 설명합니다.

Source pathDocumentation/admin-guide/media/building.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

Kernel과 media 설정

building.rst:1-118

Source tree 선택, `menuconfig`, media core dependency를 정리합니다.

RC·CEC·media driver 선택

building.rst:119-292

Remote controller, HDMI CEC, filtered/unfiltered media driver 설정을 비교합니다.

Build와 설치

building.rst:293-357

전체 kernel과 `media_build` driver tree를 빌드하고 설치하는 절차를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ===================================
4 Building support for a media device
5 ===================================
6
7 The first step is to download the Kernel's source code, either via a
8 distribution-specific source file or via the Kernel's main git tree\ [1]_.
9
10 Please notice, however, that, if:
11
12 - you're a braveheart and want to experiment with new stuff;
13 - if you want to report a bug;
14 - if you're developing new patches
15
16 you should use the main media development tree ``master`` branch:
17
18 https://git.linuxtv.org/media.git/
19
20 In this case, you may find some useful information at the
21 `LinuxTv wiki pages <https://linuxtv.org/wiki>`_:
22
23 https://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers
24
25 .. [1] The upstream Linux Kernel development tree is located at
26
27 https://git.kernel.org/pub/scm/li nux/kernel/git/torvalds/linux.git/
28
29 Configuring the Linux Kernel
30 ============================
31
32 You can access a menu of Kernel building options with::
33
34 $ make menuconfig
35
36 Then, select all desired options and exit it, saving the configuration.
37
38 The changed configuration will be at the ``.config`` file. It would
39 look like::
40
41 ...
42 # CONFIG_RC_CORE is not set
43 # CONFIG_CEC_CORE is not set
44 CONFIG_MEDIA_SUPPORT=m
45 CONFIG_MEDIA_SUPPORT_FILTER=y
46 ...
47
48 The media subsystem is controlled by those menu configuration options::
49
50 Device Drivers --->
51 <M> Remote Controller support --->
52 [ ] HDMI CEC RC integration
53 [ ] Enable CEC error injection support
54 [*] HDMI CEC drivers --->
55 <*> Multimedia support --->
56
57 The ``Remote Controller support`` option enables the core support for
58 remote controllers\ [2]_.
59
60 The ``HDMI CEC RC integration`` option enables integration of HDMI CEC
61 with Linux, allowing to receive data via HDMI CEC as if it were produced
62 by a remote controller directly connected to the machine.
63
64 The ``HDMI CEC drivers`` option allow selecting platform and USB drivers
65 that receives and/or transmits CEC codes via HDMI interfaces\ [3]_.
66
67 The last option (``Multimedia support``) enables support for cameras,
68 audio/video grabbers and TV.
69
70 The media subsystem support can either be built together with the main
71 Kernel or as a module. For most use cases, it is preferred to have it
72 built as modules.
73
74 .. note::
75
76 Instead of using a menu, the Kernel provides a script with allows
77 enabling configuration options directly. To enable media support
78 and remote controller support using Kernel modules, you could use::
79
80 $ scripts/config -m RC_CORE
81 $ scripts/config -m MEDIA_SUPPORT
82
83 .. [2] ``Remote Controller support`` should also be enabled if you
84 want to use some TV card drivers that may depend on the remote
85 controller core support.
86
87 .. [3] Please notice that the DRM subsystem also have drivers for GPUs
88 that use the media HDMI CEC support.
89
90 Those GPU-specific drivers are selected via the ``Graphics support``
91 menu, under ``Device Drivers``.
92
93 When a GPU driver supports HDMI CEC, it will automatically
94 enable the CEC core support at the media subsystem.
95
96 Media dependencies
97 ------------------
98
99 It should be noticed that enabling the above from a clean config is
100 usually not enough. The media subsystem depends on several other Linux
101 core support in order to work.
102
103 For example, most media devices use a serial communication bus in
104 order to talk with some peripherals. Such bus is called I²C
105 (Inter-Integrated Circuit). In order to be able to build support
106 for such hardware, the I²C bus support should be enabled, either via
107 menu or with::
108
109 ./scripts/config -m I2C
110
111 Another example: the remote controller core requires support for
112 input devices, with can be enabled with::
113
114 ./scripts/config -m INPUT
115
116 Other core functionality may also be needed (like PCI and/or USB support),
117 depending on the specific driver(s) you would like to enable.
118
119 Enabling Remote Controller Support
120 ----------------------------------
121
122 The remote controller menu allows selecting drivers for specific devices.
123 It's menu looks like this::
124
125 --- Remote Controller support
126 <M> Compile Remote Controller keymap modules
127 [*] LIRC user interface
128 [*] Support for eBPF programs attached to lirc devices
129 [*] Remote controller decoders --->
130 [*] Remote Controller devices --->
131
132 The ``Compile Remote Controller keymap modules`` option creates key maps for
133 several popular remote controllers.
134
135 The ``LIRC user interface`` option adds enhanced functionality when using the
136 ``lirc`` program, by enabling an API that allows userspace to receive raw data
137 from remote controllers.
138
139 The ``Support for eBPF programs attached to lirc devices`` option allows
140 the usage of special programs (called eBPF) that would allow applications
141 to add extra remote controller decoding functionality to the Linux Kernel.
142
143 The ``Remote controller decoders`` option allows selecting the
144 protocols that will be recognized by the Linux Kernel. Except if you
145 want to disable some specific decoder, it is suggested to keep all
146 sub-options enabled.
147
148 The ``Remote Controller devices`` allows you to select the drivers
149 that would be needed to support your device.
150
151 The same configuration can also be set via the ``script/config``
152 script. So, for instance, in order to support the ITE remote controller
153 driver (found on Intel NUCs and on some ASUS x86 desktops), you could do::
154
155 $ scripts/config -e INPUT
156 $ scripts/config -e ACPI
157 $ scripts/config -e MODULES
158 $ scripts/config -m RC_CORE
159 $ scripts/config -e RC_DEVICES
160 $ scripts/config -e RC_DECODERS
161 $ scripts/config -m IR_RC5_DECODER
162 $ scripts/config -m IR_ITE_CIR
163
164 Enabling HDMI CEC Support
165 -------------------------
166
167 The HDMI CEC support is set automatically when a driver requires it. So,
168 all you need to do is to enable support either for a graphics card
169 that needs it or by one of the existing HDMI drivers.
170
171 The HDMI-specific drivers are available at the ``HDMI CEC drivers``
172 menu\ [4]_::
173
174 --- HDMI CEC drivers
175 < > ChromeOS EC CEC driver
176 < > Amlogic Meson AO CEC driver
177 < > Amlogic Meson G12A AO CEC driver
178 < > Generic GPIO-based CEC driver
179 < > Samsung S5P CEC driver
180 < > STMicroelectronics STiH4xx HDMI CEC driver
181 < > STMicroelectronics STM32 HDMI CEC driver
182 < > Tegra HDMI CEC driver
183 < > SECO Boards HDMI CEC driver
184 [ ] SECO Boards IR RC5 support
185 < > Pulse Eight HDMI CEC
186 < > RainShadow Tech HDMI CEC
187
188 .. [4] The above contents is just an example. The actual options for
189 HDMI devices depends on the system's architecture and may vary
190 on new Kernels.
191
192 Enabling Media Support
193 ----------------------
194
195 The Media menu has a lot more options than the remote controller menu.
196 Once selected, you should see the following options::
197
198 --- Media support
199 [ ] Filter media drivers
200 [*] Autoselect ancillary drivers
201 Media device types --->
202 Media core support --->
203 Video4Linux options --->
204 Media controller options --->
205 Digital TV options --->
206 HDMI CEC options --->
207 Media drivers --->
208 Media ancillary drivers --->
209
210 Except if you know exactly what you're doing, or if you want to build
211 a driver for a SoC platform, it is strongly recommended to keep the
212 ``Autoselect ancillary drivers`` option turned on, as it will auto-select
213 the needed I²C ancillary drivers.
214
215 There are now two ways to select media device drivers, as described
216 below.
217
218 ``Filter media drivers`` menu
219 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
220
221 This menu is meant to easy setup for PC and Laptop hardware. It works
222 by letting the user to specify what kind of media drivers are desired,
223 with those options::
224
225 [ ] Cameras and video grabbers
226 [ ] Analog TV
227 [ ] Digital TV
228 [ ] AM/FM radio receivers/transmitters
229 [ ] Software defined radio
230 [ ] Platform-specific devices
231 [ ] Test drivers
232
233 So, if you want to add support to a camera or video grabber only,
234 select just the first option. Multiple options are allowed.
235
236 Once the options on this menu are selected, the building system will
237 auto-select the needed core drivers in order to support the selected
238 functionality.
239
240 .. note::
241
242 Most TV cards are hybrid: they support both Analog TV and Digital TV.
243
244 If you have an hybrid card, you may need to enable both ``Analog TV``
245 and ``Digital TV`` at the menu.
246
247 When using this option, the defaults for the media support core
248 functionality are usually good enough to provide the basic functionality
249 for the driver. Yet, you could manually enable some desired extra (optional)
250 functionality using the settings under each of the following
251 ``Media support`` sub-menus::
252
253 Media core support --->
254 Video4Linux options --->
255 Media controller options --->
256 Digital TV options --->
257 HDMI CEC options --->
258
259 Once you select the desired filters, the drivers that matches the filtering
260 criteria will be available at the ``Media support->Media drivers`` sub-menu.
261
262 ``Media Core Support`` menu without filtering
263 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
264
265 If you disable the ``Filter media drivers`` menu, all drivers available
266 for your system whose dependencies are met should be shown at the
267 ``Media drivers`` menu.
268
269 Please notice, however, that you should first ensure that the
270 ``Media Core Support`` menu has all the core functionality your drivers
271 would need, as otherwise the corresponding device drivers won't be shown.
272
273 Example
274 -------
275
276 In order to enable modular support for one of the boards listed on
277 :doc:`this table <cx231xx-cardlist>`, with modular media core modules, the
278 ``.config`` file should contain those lines::
279
280 CONFIG_MODULES=y
281 CONFIG_USB=y
282 CONFIG_I2C=y
283 CONFIG_INPUT=y
284 CONFIG_RC_CORE=m
285 CONFIG_MEDIA_SUPPORT=m
286 CONFIG_MEDIA_SUPPORT_FILTER=y
287 CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
288 CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
289 CONFIG_MEDIA_USB_SUPPORT=y
290 CONFIG_VIDEO_CX231XX=y
291 CONFIG_VIDEO_CX231XX_DVB=y
292
293 Building and installing a new Kernel
294 ====================================
295
296 Once the ``.config`` file has everything needed, all it takes to build
297 is to run the ``make`` command::
298
299 $ make
300
301 And then install the new Kernel and its modules::
302
303 $ sudo make modules_install
304 $ sudo make install
305
306 Building just the new media drivers and core
307 ============================================
308
309 Running a new development Kernel from the development tree is usually risky,
310 because it may have experimental changes that may have bugs. So, there are
311 some ways to build just the new drivers, using alternative trees.
312
313 There is the `Linux Kernel backports project
314 <https://backports.wiki.kernel.org/index.php/Main_Page>`_, with contains
315 newer drivers meant to be compiled against stable Kernels.
316
317 The LinuxTV developers, with are responsible for maintaining the media
318 subsystem also maintains a backport tree, with just the media drivers
319 daily updated from the newest kernel. Such tree is available at:
320
321 https://git.linuxtv.org/media_build.git/
322
323 It should be noticed that, while it should be relatively safe to use the
324 ``media_build`` tree for testing purposes, there are not warranties that
325 it would work (or even build) on a random Kernel. This tree is maintained
326 using a "best-efforts" principle, as time permits us to fix issues there.
327
328 If you notice anything wrong on it, feel free to submit patches at the
329 Linux media subsystem's mailing list: [email protected]. Please
330 add ``[PATCH media-build]`` at the e-mail's subject if you submit a new
331 patch for the media-build.
332
333 Before using it, you should run::
334
335 $ ./build
336
337 .. note::
338
339 1) you may need to run it twice if the ``media-build`` tree gets
340 updated;
341 2) you may need to do a ``make distclean`` if you had built it
342 in the past for a different Kernel version than the one you're
343 currently using;
344 3) by default, it will use the same config options for media as
345 the ones defined on the Kernel you're running.
346
347 In order to select different drivers or different config options,
348 use::
349
350 $ make menuconfig
351
352 Then, you can build and install the new drivers::
353
354 $ make && sudo make install
355
356 This will override the previous media drivers that your Kernel were
357 using.
358

3. 한국어 전문 번역

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

Media 장치 지원용 source 준비

1-28

Media 장치를 지원하도록 kernel을 빌드하는 첫 단계는 distribution이 제공하는 source package 또는 kernel main git tree에서 Linux kernel source를 받는 것입니다.

새 기능을 시험하거나 bug를 보고하거나 새 patch를 개발하려면 main media development tree의 `master` branch를 사용해야 합니다.

원문 각주에 적힌 upstream Linux kernel development tree 경로는 `https://git.kernel.org/pub/scm/li nux/kernel/git/torvalds/linux.git/`입니다. 경로 가운데의 두 공백도 원문 표기를 그대로 보존했습니다.

Linux kernel 설정

29-95

Kernel build option menu는 다음 명령으로 엽니다.

$ make menuconfig

필요한 option을 모두 선택한 다음 설정을 저장하고 종료합니다. 변경 결과는 `.config`에 기록되며, media support를 module로 선택한 예는 다음과 같습니다.

...
# CONFIG_RC_CORE is not set
# CONFIG_CEC_CORE is not set
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_SUPPORT_FILTER=y
...

Media subsystem의 상위 menu option은 다음 위치에 있습니다.

Device Drivers --->
	<M> Remote Controller support  --->
	[ ] HDMI CEC RC integration
	[ ] Enable CEC error injection support
	[*] HDMI CEC drivers  --->
	<*> Multimedia support  --->
Device Drivers의 media 진입점
Device DriversRemote Controller support
Device DriversHDMI CEC RC integration
Device DriversCEC error injection support
Device DriversHDMI CEC drivers
Device DriversMultimedia support

Device Drivers menu에서 remote control, CEC, multimedia core로 들어가는 상위 설정 구조입니다.

설정 option역할
`Remote Controller support`Remote controller core를 활성화합니다. 일부 TV card driver도 이 core에 의존할 수 있습니다.
`HDMI CEC RC integration`HDMI CEC로 받은 data를 machine에 직접 연결한 remote controller의 입력처럼 Linux에 전달합니다.
`HDMI CEC drivers`HDMI interface에서 CEC code를 송수신하는 platform 및 USB driver를 선택합니다.
`Multimedia support`Camera, audio/video grabber, TV 지원을 활성화합니다.

Media subsystem은 kernel 본체에 built-in으로 넣거나 module로 빌드할 수 있습니다. 대부분의 사용 사례에서는 module 구성이 권장됩니다.

Menu 대신 `scripts/config`로 option을 직접 바꿀 수도 있습니다. Media support와 remote controller support를 module로 설정하는 명령은 다음과 같습니다.

$ scripts/config -m RC_CORE
$ scripts/config -m MEDIA_SUPPORT

GPU의 HDMI CEC driver는 `Device Drivers` 아래 `Graphics support` menu에서 선택합니다. GPU driver가 HDMI CEC를 지원하면 media subsystem의 CEC core support도 자동으로 활성화됩니다.

Media subsystem dependency

96-118

깨끗한 config에서 앞의 상위 option만 켜는 것으로는 보통 충분하지 않습니다. Media subsystem은 동작에 필요한 여러 Linux core 기능에 의존합니다.

대부분의 media device는 주변 장치와 통신할 때 I²C(Inter-Integrated Circuit) serial bus를 사용합니다. 해당 hardware를 빌드하려면 menu 또는 다음 명령으로 I²C support를 켭니다.

./scripts/config -m I2C

Remote controller core에는 input device support가 필요합니다.

./scripts/config -m INPUT

선택한 driver에 따라 PCI 또는 USB support 같은 다른 core 기능도 필요할 수 있습니다.

Remote Controller support 활성화

119-163

Remote controller menu에서는 장치별 driver와 decoder를 선택합니다.

--- Remote Controller support
<M>   Compile Remote Controller keymap modules
[*]   LIRC user interface
[*]     Support for eBPF programs attached to lirc devices
[*]   Remote controller decoders  --->
[*]   Remote Controller devices  --->
Option설명
`Compile Remote Controller keymap modules`여러 대중적인 remote controller용 key map을 만듭니다.
`LIRC user interface``lirc` program이 raw remote-control data를 받을 수 있는 확장 API를 활성화합니다.
`Support for eBPF programs attached to lirc devices`Application이 eBPF program으로 Linux kernel에 추가 remote-control decoding 기능을 제공할 수 있게 합니다.
`Remote controller decoders`Linux kernel이 인식할 protocol을 선택합니다. 특정 decoder를 끌 목적이 아니라면 모든 하위 option을 유지하는 것이 좋습니다.
`Remote Controller devices`사용할 장치에 필요한 driver를 선택합니다.

Intel NUC와 일부 ASUS x86 desktop에 있는 ITE remote controller driver를 지원하도록 `scripts/config`를 설정하는 예는 다음과 같습니다.

$ scripts/config -e INPUT
$ scripts/config -e ACPI
$ scripts/config -e MODULES
$ scripts/config -m RC_CORE
$ scripts/config -e RC_DEVICES
$ scripts/config -e RC_DECODERS
$ scripts/config -m IR_RC5_DECODER
$ scripts/config -m IR_ITE_CIR

HDMI CEC support 활성화

164-191

Driver가 HDMI CEC를 요구하면 CEC support는 자동으로 설정됩니다. 따라서 이를 필요로 하는 graphics card 또는 기존 HDMI driver를 활성화하면 됩니다.

HDMI 전용 driver는 `HDMI CEC drivers` menu에서 선택합니다.

--- HDMI CEC drivers
< >   ChromeOS EC CEC driver
< >   Amlogic Meson AO CEC driver
< >   Amlogic Meson G12A AO CEC driver
< >   Generic GPIO-based CEC driver
< >   Samsung S5P CEC driver
< >   STMicroelectronics STiH4xx HDMI CEC driver
< >   STMicroelectronics STM32 HDMI CEC driver
< >   Tegra HDMI CEC driver
< >   SECO Boards HDMI CEC driver
[ ]     SECO Boards IR RC5 support
< >   Pulse Eight HDMI CEC
< >   RainShadow Tech HDMI CEC

위 목록은 예시입니다. 실제 HDMI 장치 option은 system architecture에 따라 달라지고 새 kernel에서 변경될 수 있습니다.

Media support와 driver filter

192-261

Media menu를 선택하면 다음과 같은 option이 표시됩니다.

--- Media support
[ ] Filter media drivers
[*] Autoselect ancillary drivers
    Media device types --->
    Media core support --->
    Video4Linux options --->
    Media controller options --->
    Digital TV options --->
    HDMI CEC options --->
    Media drivers --->
    Media ancillary drivers --->
Media support menu 구조
Media supportFilter media drivers
Media supportAutoselect ancillary drivers
Media supportMedia device types
Media supportMedia core support
Media supportVideo4Linux options
Media supportMedia controller options
Media supportDigital TV options
Media supportHDMI CEC options
Media supportMedia drivers
Media supportMedia ancillary drivers

Media support에서 filter와 자동 선택을 설정한 뒤 기능별 core·driver menu로 이동합니다.

무엇을 하는지 정확히 알고 있거나 SoC platform driver를 빌드하는 경우가 아니라면 `Autoselect ancillary drivers`를 켜 두는 것이 강하게 권장됩니다. 이 option은 필요한 I²C ancillary driver를 자동 선택합니다.

`Filter media drivers`는 PC와 laptop hardware 설정을 단순화합니다. 필요한 media 기능 종류를 다음 option으로 지정합니다.

[ ] Cameras and video grabbers
[ ] Analog TV
[ ] Digital TV
[ ] AM/FM radio receivers/transmitters
[ ] Software defined radio
[ ] Platform-specific devices
[ ] Test drivers

Camera나 video grabber만 지원하려면 첫 option만 선택하면 됩니다. 여러 option을 함께 고를 수도 있고, build system이 선택한 기능에 필요한 core driver를 자동 선택합니다.

대부분의 TV card는 analog TV와 digital TV를 모두 지원하는 hybrid 장치입니다. Hybrid card라면 menu에서 `Analog TV`와 `Digital TV`를 함께 활성화해야 할 수 있습니다.

Filter를 사용할 때 media core의 기본값은 대개 기본 동작에 충분하지만, 다음 `Media support` 하위 menu에서 선택 기능을 추가로 켤 수 있습니다.

Media core support --->
Video4Linux options --->
Media controller options --->
Digital TV options --->
HDMI CEC options --->
선택 가능한 media core 하위 menu
Media supportMedia core support
Media supportVideo4Linux options
Media supportMedia controller options
Media supportDigital TV options
Media supportHDMI CEC options

Driver filter의 기본 선택에 더해 필요한 core 기능을 수동으로 보강하는 경로입니다.

Filter를 고르면 조건에 맞는 driver가 `Media support->Media drivers` 하위 menu에 나타납니다.

Filter 없이 core와 driver 선택

262-292

`Filter media drivers`를 끄면 dependency가 충족된 system용 driver가 모두 `Media drivers` menu에 표시됩니다.

다만 먼저 `Media Core Support` menu에서 해당 driver가 요구하는 core 기능을 모두 켜야 합니다. 빠진 기능이 있으면 대응하는 device driver가 목록에 나타나지 않습니다.

`cx231xx-cardlist`에 나열된 board 하나와 media core를 module로 지원하려면 `.config`에 다음 항목이 필요합니다.

CONFIG_MODULES=y
CONFIG_USB=y
CONFIG_I2C=y
CONFIG_INPUT=y
CONFIG_RC_CORE=m
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_SUPPORT_FILTER=y
CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_VIDEO_CX231XX=y
CONFIG_VIDEO_CX231XX_DVB=y

새 kernel 빌드와 설치

293-305

`.config`에 필요한 항목이 모두 들어가면 `make`로 kernel을 빌드합니다.

$ make

그다음 새 kernel module과 kernel을 설치합니다.

$ sudo make modules_install
$ sudo make install

새 media driver와 core만 빌드

306-357

Development tree의 새 kernel은 실험적 변경과 bug를 포함할 수 있어 그대로 실행하기가 위험할 수 있습니다. 대안 tree를 이용하면 새 driver만 빌드할 수 있습니다.

LinuxTV developer가 관리하는 `media_build`는 최신 kernel의 media driver를 매일 가져오는 backport tree입니다. Test에는 비교적 안전하지만 임의의 kernel에서 동작하거나 빌드된다는 보장은 없고, 시간 범위 안에서 best-effort 방식으로 유지됩니다.

문제가 있으면 Linux media subsystem mailing list `[email protected]`로 patch를 보낼 수 있습니다. media-build patch의 e-mail subject에는 `[PATCH media-build]`를 붙입니다.

처음 사용할 때는 다음 script를 실행합니다.

$ ./build
주의내용
1`media-build` tree가 갱신되면 `./build`를 두 번 실행해야 할 수 있습니다.
2과거에 현재와 다른 kernel version용으로 빌드했다면 `make distclean`이 필요할 수 있습니다.
3기본적으로 현재 실행 중인 kernel에 정의된 media config option을 그대로 사용합니다.

다른 driver나 config option을 선택하려면 다음 menu를 엽니다.

$ make menuconfig

선택을 마치면 새 driver를 빌드하고 설치합니다.

$ make && sudo make install

이 설치는 현재 kernel이 사용하던 기존 media driver를 덮어씁니다.