rewrote quickstart, build-process
[AGL/documentation.git] / docs / 0_Getting_Started / 2_Building_AGL_Image / 5_3_RCar_Gen_3.md
1 ---
2 title: Building for R Car Gen 3
3 ---
4
5 AGL supports building for several automotive
6 [Renesas](https://www.renesas.com/us/en/solutions/automotive.html) board kits.
7 Renesas is the number one supplier of vehicle control microcontrollers and
8 System on a Chip (SoC) products for the automotive industry.
9
10 This section provides the build and deploy steps you need to create an
11 image for the following Renesas platforms:
12
13 * [Renesas R-Car Starter Kit Pro Board](https://www.elinux.org/R-Car/Boards/M3SK)
14 * [Renesas R-Car Starter Kit Premier Board](https://www.elinux.org/R-Car/Boards/H3SK)
15 * [Renesas Salvator-X Board](https://www.elinux.org/R-Car/Boards/Salvator-X)
16 * [Renesas Kingfisher Infotainment Board](https://elinux.org/R-Car/Boards/Kingfisher)
17
18 **NOTE:** You can find similar information for the Pro and Premier board kits on the
19 [R-Car/Boards/Yocto-Gen3](https://elinux.org/R-Car/Boards/Yocto-Gen3) page.
20 The information on this page describes setup and build procedures for both these
21 Renesas development kits.
22
23 ## 1. Downloading Proprietary Drivers
24
25 Before setting up the build environment, you need to download proprietary drivers from the
26 [R-Car H3/M3 Software library and Technical document](https://www.renesas.com/us/en/solutions/automotive/rcar-download/rcar-demoboard-2.html)
27 site.
28
29 Follow these steps to download the drivers you need:
30
31 1. **Determine the Files You Need:**
32
33      Run the `setup_mm_packages.sh` script as follows to
34      display the list of ZIP files containing the drivers you need.
35
36      ```sh
37      $ grep -rn ZIP_.= $AGL_TOP/meta-agl/meta-agl-bsp/meta-rcar-gen3/scripts/setup_mm_packages.sh
38      ```
39
40      The script's output identifies the files you need to download from the page.
41
42 2. **Get Your Board Support Package (BSP) Version:**
43
44     Be sure to have the correct BSP version of the R-Car Starter Kit based on the version of the AGL software you are using. Find the appropriate download links on the [R-Car H3/M3 Software library and Technical document](https://www.renesas.com/us/en/solutions/automotive/rcar-download/rcar-demoboard-2.html)
45     site. The file pairs are grouped according to the Yocto Project version you are
46     using with the AGL software.
47
48         | AGL Version| Renesas Version |
49         | AGL master | 3.21.0          |
50
51 3. **Download the Files:**
52
53     Start the download process by clicking the download link.
54     If you do not have an account with Renesas, you will be asked to register a free account.
55     You must register and follow the "Click Through" licensing process
56     in order to download these proprietary files.
57
58     If needed, follow the instructions to create the free account by providing the required
59     account information.
60     Once the account is registered and you are logged in, you can download the files.
61
62     **NOTE:**
63     You might have to re-access the
64     [original page](https://www.renesas.com/us/en/solutions/automotive/rcar-download/rcar-demoboard-2.html)
65     that contains the download links you need after creating the account and logging in.
66
67 4. **Create an Environment Variable to Point to Your Download Area:**
68
69     Create and export an environment variable named `XDG_DOWNLOAD_DIR` that points to
70     your download directory.
71
72     ```sh
73     $ export XDG_DOWNLOAD_DIR=$HOME/Downloads
74     ```
75
76 5. **Be Sure the Files Have Rights:**
77
78     Be sure you have the necessary rights for the files you downloaded.
79
80     ```sh
81     $ chmod a+r $XDG_DOWNLOAD_DIR/*.zip
82     ```
83
84 ## 2. Getting Your Hardware Together
85
86    Gather together this list of hardware items, which is not exhaustive.
87    Having these items ahead of time saves you from having to try and
88    collect hardware during development:
89
90    Supported Starter
91
92    * Kit Gen3 board with its 5V power supply.
93    * Micro USB-A cable for serial console.
94       This cable is optional if you are using Ethernet and an SSH connection.
95    * USB 2.0 Hub.  The hub is optional but makes it easy to connect multiple USB devices.
96    * Ethernet cable.  The cable is optional if you are using a serial console.
97    * HDMI type D (Micro connector) cable and an associated display.
98    * 4 Gbyte minimum MicroSD Card.  It is recommended that you use a class 10 type.
99    * USB touch screen device such as the GeChic 1502i/1503i.  A touch screen device is optional.
100
101   **NOTE:** The Salvator-X Board has NDA restrictions.
102   Consequently, less documentation is available for this board both here and across the Internet.
103
104 ## 3. Making Sure Your Build Environment is Correct
105
106    The
107    "[Initializing Your Build Environment](./3_Initializing_Your_Build_Environment.md)"
108    section presented generic information for setting up your build environment
109    using the `aglsetup.sh` script.
110    If you are building an image for a supported Renesas board,
111    you need to take steps to make sure your build host is set up correctly.
112
113   1. **Define Your Board:**
114
115     Depending on your Renesas board, define and export a `MACHINE` variable as follows:
116
117
118     | BOARD  | `MACHINE` |
119     |:-:|:-:|
120     | Renesas RCar H3  | `MACHINE`= h3ulcb |
121     | Renesas RCar H3 w Kingfisher Board  | `MACHINE`= h3ulcb-kf |
122     | Renesas RCar H3 w/o gfx blobs  | `MACHINE`= h3ulcb-nogfx |
123     | Renesas RCar Salvator/H3  | `MACHINE`= h3-salvator-x |
124     | Renesas RCar M3  | `MACHINE`= m3ulcb |
125     | Renesas RCar M3 w Kingfisher Board  | `MACHINE`= m3ulcb-kf |
126     | Renesas RCar M3 w/o gfx blobs  | `MACHINE`= m3ulcb-nogfx |
127     | Renesas RCar Salvator/M3  | `MACHINE`= m3-salvator-x |
128
129
130     For example, the following command defines and exports the `MACHINE` variable
131     for the Starter Kit Pro/H3 Board:
132
133     ```sh
134     $ export MACHINE=h3ulcb
135     ```
136
137   2. **Run the `aglsetup.sh` Script:**
138
139     Use the following commands to run the AGL Setup script:
140
141     ```sh
142     $ cd $AGL_TOP
143     $ source meta-agl/scripts/aglsetup.sh -m $MACHINE -b build-$MACHINE agl-devel agl-demo
144     which expands to :
145     $ source meta-agl/scripts/aglsetup.sh -m h3ulcb -b build-h3ulcb agl-devel agl-demo
146     ```
147
148   3. **Examine the Script's Log:**
149
150     Running the `aglsetup.sh` script creates the `setup.log` file, which is in
151     the `build-h3ulcb/conf` folder.
152     You can examine this log to see the results of the script.
153     For example, suppose the graphics drivers were missing or could not be extracted
154     when you ran the script.
155
156 ## 4. Using BitBake
157
158    Start the build using the `bitbake` command.
159
160    **NOTE:** An initial build can take many hours depending on your
161    CPU and and Internet connection speeds.
162    The build also takes approximately 100G-bytes of free disk space.
163
164    For this example, the target is "agl-demo-platform":
165
166   ``` sh
167   $ time bitbake agl-demo-platform
168   ```
169
170    The build process puts the resulting image in the Build Directory:
171   ``` sh
172   build-h3ulcb/tmp/deploy/images/$MACHINE
173   ```
174
175 ## 5. Booting the Image Using a MicroSD Card
176
177   To boot your image on the Renesas board, you need to do three things:
178
179   1. Update all firmware on the board.
180   2. Prepare the MicroSD card to you can boot from it.
181   3. Boot the board.
182
183   **NOTE:** For subsequent builds, you only have to re-write the MicroSD
184   card with a new image.
185
186   * **Updating the Board's Firmware**
187
188     Follow these steps to update the firmware:
189
190     1. **Update the Sample Loader and MiniMonitor:**
191
192         You only need to make these updates one time per device.
193
194         Follow the procedure found on the
195         eLinux.org wiki to update to at least version 3.02,
196         which is mandatory to run the AGL image ([R-car loader update](https://elinux.org/R-Car/Boards/Kingfisher#How_to_update_of_Sample_Loader_and_MiniMonitor)).
197
198     2. **Update the Firmware Stack:**
199
200         You only need to update the firmware stack if you are
201         using the Eel or later (5.0) version of AGL software.
202
203         M3 and H3 Renesas board are AArch64 platforms.
204         As such, they have a firmware stack that is divided across: **ARM Trusted Firmware**, **OP-Tee** and **U-Boot**.
205
206         If you are using the Eel (5.0) version or later of the AGL software, you must update
207         the firmware using the **[R-car h3ulcb firmware update](http://elinux.org/R-Car/Boards/H3SK#Flashing_firmware)**
208         or **[R-car m3ulcb firmware update](https://elinux.org/R-Car/Boards/M3SK#Flashing_firmware)** links from the
209         [Embedded Linux Wiki](https://www.elinux.org/Main_Page) (i.e. `elinux.org`).
210
211         The table in the wiki lists the files you need to flash the firmware.
212         You can find these files in the following directory:
213
214         ```sh
215         $AGL_TOP/build/tmp/deploy/images/$MACHINE
216         ```
217
218         **NOTE:** The Salvator-X firmware update process is not documented on eLinux.
219
220   * **Preparing the MicroSD Card**
221
222      ```sh
223      $ lsblk
224      $ sudo umount <boot_device_name>
225      $ xzcat agl-image-ivi-crosssdk-h3ulcb.wic.xz | sudo dd of=<boot_device_name> bs=4M
226      $ sync
227      ```
228
229   * **Booting the Board**
230
231     Follow these steps to boot the board:
232
233     1. Use the board's power switch to turn off the board.
234
235     2. Insert the MicroSD card into the board.
236
237     3. Verify that you have plugged in the following:
238
239       * An external monitor into the board's HDMI port
240
241       * An input device (e.g. keyboard, mouse, touchscreen, and so forth) into the board's USB ports.
242
243     4. Use the board's power switch to turn on the board.
244
245     After a few seconds, you will see the AGL splash screen on the display and you
246     will be able to log in at the console's terminal or using the graphic screen.
247
248 ## 6. Setting Up the Serial Console
249
250   Setting up the Serial Console involves the following:
251
252   * Installing a serial client on your build host
253   * Connecting your build host to your Renesas board's serial port
254   * Powering on the board to get a shell at the console
255   * Configuring U-Boot parameters
256   * Logging into the console
257   * Determining the board's IP address
258
259  Brief about each process :
260
261   1. Installing a Serial Client on Your Build Host
262
263     You need to install a serial client on your build host.
264     Some examples are [GNU Screen](https://en.wikipedia.org/wiki/GNU_Screen), [picocom](https://linux.die.net/man/8/picocom), and [Minicom](https://en.wikipedia.org/wiki/Minicom). Of these three, "picocom" has less dependencies and is therefore considered the "lightest" solution.
265
266   2. Connecting Your Build Host to Your Renesas Board's Serial Port
267
268     You need to physically connect your build host to the Renesas board using
269     a USB cable from the host to the serial CP2102 USP port (i.e. Micro USB-A port)
270     on the Renesas board.
271
272     Once you connect the board, determine the device created for the serial link.
273     Use the `dmesg` command on your build host.
274
275     ```sh
276     dmesg | tail 9
277     [2097783.287091] usb 2-1.5.3: new full-speed USB device number 24 using ehci-pci
278     [2097783.385857] usb 2-1.5.3: New USB device found, idVendor=0403, idProduct=6001
279     [2097783.385862] usb 2-1.5.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
280     [2097783.385864] usb 2-1.5.3: Product: FT232R USB UART
281     [2097783.385866] usb 2-1.5.3: Manufacturer: FTDI
282     [2097783.385867] usb 2-1.5.3: SerialNumber: AK04WWCE
283     [2097783.388288] ftdi_sio 2-1.5.3:1.0: FTDI USB Serial Device converter detected
284     [2097783.388330] usb 2-1.5.3: Detected FT232RL
285     [2097783.388658] usb 2-1.5.3: FTDI USB Serial Device converter now attached to ttyUSB0
286     ```
287
288     The device created is usually `/dev/ttyUSB0`.
289     However, the number might vary depending on other USB serial ports connected to the host.
290
291     To use the link, you need to launch the client.
292     Here are three commands, which vary based on the serial client, that show
293     how to launch the client:
294
295     ```sh
296     picocom -b 115200 /dev/ttyUSB0
297     ```
298
299     or
300
301     ```sh
302     minicom -b 115200 -D /dev/ttyUSB0
303     ```
304
305     or
306
307     ```sh
308     screen /dev/ttyUSB0 115200
309     ```
310
311
312   3. Powering on the Board to Get a Shell at the Console
313
314     Both the Pro and Premier kits (e.g.
315     [m3ulcb](https://elinux.org/R-Car/Boards/M3SK) and
316     [h3ulcb](https://elinux.org/R-Car/Boards/H3SK#Hardware)) have nine
317     switches (SW1 through SW9).
318     To power on the board, "short-press" SW8, which is the power switch.
319
320     Following, is console output for the power on process for each kit:
321
322     h3ulcb:
323
324     ```sh
325     NOTICE:  BL2: R-Car Gen3 Initial Program Loader(CA57) Rev.1.0.7
326     NOTICE:  BL2: PRR is R-Car H3 ES1.1
327     NOTICE:  BL2: LCM state is CM
328     NOTICE:  BL2: DDR1600(rev.0.15)
329     NOTICE:  BL2: DRAM Split is 4ch
330     NOTICE:  BL2: QoS is Gfx Oriented(rev.0.30)
331     NOTICE:  BL2: AVS setting succeeded. DVFS_SetVID=0x52
332     NOTICE:  BL2: Lossy Decomp areas
333     NOTICE:       Entry 0: DCMPAREACRAx:0x80000540 DCMPAREACRBx:0x570
334     NOTICE:       Entry 1: DCMPAREACRAx:0x40000000 DCMPAREACRBx:0x0
335     NOTICE:       Entry 2: DCMPAREACRAx:0x20000000 DCMPAREACRBx:0x0
336     NOTICE:  BL2: v1.1(release):41099f4
337     NOTICE:  BL2: Built : 19:20:52, Jun  9 2016
338     NOTICE:  BL2: Normal boot
339     NOTICE:  BL2: dst=0xe63150c8 src=0x8180000 len=36(0x24)
340     NOTICE:  BL2: dst=0x43f00000 src=0x8180400 len=3072(0xc00)
341     NOTICE:  BL2: dst=0x44000000 src=0x81c0000 len=65536(0x10000)
342     NOTICE:  BL2: dst=0x44100000 src=0x8200000 len=524288(0x80000)
343     NOTICE:  BL2: dst=0x49000000 src=0x8640000 len=1048576(0x100000)
344
345
346     U-Boot 2015.04 (Jun 09 2016 - 19:21:52)
347
348     CPU: Renesas Electronics R8A7795 rev 1.1
349     Board: H3ULCB
350     I2C:   ready
351     DRAM:  3.9 GiB
352     MMC:   sh-sdhi: 0, sh-sdhi: 1
353     In:    serial
354     Out:   serial
355     Err:   serial
356     Net:   Board Net Initialization Failed
357     No ethernet found.
358     Hit any key to stop autoboot:  0
359     ```
360
361
362     m3ulcb:
363
364     ```sh
365     NOTICE:  BL2: R-Car Gen3 Initial Program Loader(CA57) Rev.1.0.14
366     NOTICE:  BL2: PRR is R-Car M3 Ver1.0
367     NOTICE:  BL2: Board is Starter Kit Rev1.0
368     NOTICE:  BL2: Boot device is HyperFlash(80MHz)
369     NOTICE:  BL2: LCM state is CM
370     NOTICE:  BL2: AVS setting succeeded. DVFS_SetVID=0x52
371     NOTICE:  BL2: DDR1600(rev.0.22)NOTICE:  [COLD_BOOT]NOTICE:  ..0
372     NOTICE:  BL2: DRAM Split is 2ch
373     NOTICE:  BL2: QoS is default setting(rev.0.17)
374     NOTICE:  BL2: Lossy Decomp areas
375     NOTICE:       Entry 0: DCMPAREACRAx:0x80000540 DCMPAREACRBx:0x570
376     NOTICE:       Entry 1: DCMPAREACRAx:0x40000000 DCMPAREACRBx:0x0
377     NOTICE:       Entry 2: DCMPAREACRAx:0x20000000 DCMPAREACRBx:0x0
378     NOTICE:  BL2: v1.3(release):4eef9a2
379     NOTICE:  BL2: Built : 00:25:19, Aug 25 2017
380     NOTICE:  BL2: Normal boot
381     NOTICE:  BL2: dst=0xe631e188 src=0x8180000 len=512(0x200)
382     NOTICE:  BL2: dst=0x43f00000 src=0x8180400 len=6144(0x1800)
383     NOTICE:  BL2: dst=0x44000000 src=0x81c0000 len=65536(0x10000)
384     NOTICE:  BL2: dst=0x44100000 src=0x8200000 len=524288(0x80000)
385     NOTICE:  BL2: dst=0x50000000 src=0x8640000 len=1048576(0x100000)
386
387
388     U-Boot 2015.04-dirty (Aug 25 2017 - 10:55:49)
389
390     CPU: Renesas Electronics R8A7796 rev 1.0
391     Board: M3ULCB
392     I2C:   ready
393     DRAM:  1.9 GiB
394     MMC:   sh-sdhi: 0, sh-sdhi: 1
395     In:    serial
396     Out:   serial
397     Err:   serial
398     Net:   ravb
399     Hit any key to stop autoboot:  0
400     ```
401
402 ## 7. Setting-up U-boot
403
404   **Configuring U-Boot Parameters**
405
406     Follow these steps to configure the board to use the MicroSD card as the
407     boot device and also to set the screen resolution:
408
409   1. As the board is powering up, press any key to stop the autoboot process.
410       You need to press a key quickly as you have just a few seconds in which to
411       press a key.
412
413   2. Once the autoboot process is interrupted, use the board's serial console to
414      enter `printenv` to check if you have correct parameters for booting your board:
415
416       Here is an example using the **h3ulcb** board:
417
418       ```sh
419       $ printenv
420       baudrate=115200
421       bootargs=console=ttySC0,115200 root=/dev/mmcblk1p1 rootwait ro rootfstype=ext4
422       bootcmd=run load_ker; run load_dtb; booti 0x48080000 - 0x48000000
423       bootdelay=3
424       fdt_high=0xffffffffffffffff
425       initrd_high=0xffffffffffffffff
426       load_dtb=ext4load mmc 0:1 0x48000000 /boot/r8a7795-h3ulcb.dtb
427       load_ker=ext4load mmc 0:1 0x48080000 /boot/Image
428       stderr=serial
429       stdin=serial
430       stdout=serial
431       ver=U-Boot 2015.04 (Jun 09 2016 - 19:21:52)
432
433       Environment size: 648/131068 bytes
434       ```
435
436       Here is a second example using the **m3ulcb** board:
437
438       ```sh
439       $ printenv
440       baudrate=115200
441       bootargs=console=ttySC0,115200 root=/dev/mmcblk1p1 rootwait ro rootfstype=ext4
442       bootcmd=run load_ker; run load_dtb; booti 0x48080000 - 0x48000000
443       bootdelay=3
444       fdt_high=0xffffffffffffffff
445       filesize=cdeb
446       initrd_high=0xffffffffffffffff
447       load_dtb=ext4load mmc 0:1 0x48000000 /boot/r8a7796-m3ulcb.dtb
448       load_ker=ext4load mmc 0:1 0x48080000 /boot/Image
449       stderr=serial
450       stdin=serial
451       stdout=serial
452       ver=U-Boot 2015.04 (Nov 30 2016 - 18:25:18)
453
454       Environment size: 557/131068 bytes
455       ```
456
457   3. Loading dtb :
458
459       **NOTE** : Refer [here](https://elinux.org/R-Car/Boards/Yocto-Gen3-CommonFAQ/Which_dtb_file_is_required_to_boot_linux_on_the_R-Car_Starter_Kit_board_%3F) for more information.
460
461       Make sure your ``load_dtb`` is set as follows :
462
463        * **H3SK v2.0(DDR 4GB)** : `$ setenv load_dtb ext4load mmc 0:1 0x48000000 /boot/r8a7795-h3ulcb.dtb`
464
465        * **H3SK v2.0(DDR 8GB)/v3.0(DDR 8GB)** : `$ setenv load_dtb ext4load mmc 0:1 0x48000000 /boot/r8a7795-h3ulcb-4x2g.dtb`
466
467        * **M3SK v1.0** : `$ setenv load_dtb ext4load mmc 0:1 0x48000000 /boot/r8a7796-m3ulcb.dtb`
468
469        * **M3SK v3.0** : `$ setenv load_dtb ext4load mmc 0:1 0x48000000 /boot/r8a7796-m3ulcb-2x4g.dtb`
470
471        * **H3SK with a Kingfisher board** : `$ setenv load_dtb ext4load mmc 0:1 0x48000000 /boot/r8a7795-h3ulcb-kf.dtb`
472
473        * **M3SK with a Kingfisher board** : `$ setenv load_dtb ext4load mmc 0:1 0x48000000 /boot/r8a7796-m3ulcb-kf.dtb`
474
475   4. Set Correct Environment :
476
477      Be sure your environment is set up as follows:
478
479      ```sh
480      $ setenv bootargs console=ttySC0,115200 ignore_loglevel vmalloc=384M video=HDMI-A-1:1920x1080-32@60 root=/dev/mmcblk1p1 rw rootfstype=ext4 rootwait rootdelay=2
481      $ setenv bootcmd run load_ker\; run load_dtb\; booti 0x48080000 - 0x48000000
482      $ setenv load_ker ext4load mmc 0:1 0x48080000 /boot/Image
483      ```
484
485   5. Save the boot environment: `$ saveenv`
486
487   6. Boot the board: `$ run bootcmd`
488
489 ## 8. Troubleshooting
490
491   * **Logging Into the Console**
492
493     Once the board boots, you should see the
494     [Wayland display](https://en.wikipedia.org/wiki/Wayland_(display_server_protocol))
495     on the external monitor.
496     A login prompt should appear as follows depending on your board:
497
498     **h3ulcb**:
499     ```sh
500     Automotive Grade Linux ${AGL_VERSION} h3ulcb ttySC0
501
502     h3ulcb login: root
503     ```
504
505     **m3ulcb**:
506     ```sh
507     Automotive Grade Linux ${AGL_VERSION} m3ulcb ttySC0
508
509     m3ulcb login: root
510     ```
511
512     At the prompt, login by using `root` as the login.
513     The password is "empty" so you should not be prompted for the password.
514
515   * **Determining the Board's IP Address**
516
517     If your board is connected to a local network using Ethernet and
518     if a DHCP server is able to distribute IP addresses,
519     you can determine the board's IP address and log in using `ssh`.
520
521     Here is an example for the m3ulcb board:
522
523     ```sh
524     m3ulcb login: root
525     root@m3ulcb:~# ip -4 a
526     1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
527         inet 127.0.0.1/8 scope host lo
528           valid_lft forever preferred_lft forever
529     3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
530         inet 10.0.0.27/24 brd 10.0.0.255 scope global eth0
531           valid_lft forever preferred_lft forever
532     ```
533
534     In the previous example, IP address is 10.0.0.27.
535     Once you know the address, you can use `ssh` to login.
536
537     ```sh
538     $ ssh root@10.0.0.27
539     ```
540
541 ## 9. Supplementary Information
542
543   * R-Car Generation 3 Information
544
545     Refer to the following for more information from [eLinux website](https://elinux.org/R-Car).
546
547   * Proprietary libraries for meta-rcar-gen3
548
549     The meta-rcar-gen3 layer of meta-renesas is supported Graphic GLES(GSX)
550     libraries, proprietary library of multimedia, and ICCOM software.
551
552     1. Build with Renesas multimedia libraries
553
554         Multimedia portions depend on GLES portions.
555
556         * A. Configuration for Multimedia features
557
558
559             * Please copy proprietary libraries to the directory of recipes.
560
561             * Please set local.conf the following.
562               **Enable multimedia features. This provides package group of plug-ins of the GStreamer, multimedia libraries and kernel drivers.**
563
564               ```sh
565               MACHINE_FEATURES_append = " multimedia"
566               ```
567
568         * B. Configuration for optional codecs and middleware
569
570             * Please copy proprietary libraries to the directory of recipes.
571
572             * Add features to DISTRO_FEATURES_append to local.conf
573
574               **Additional configuration in OMX module**
575
576               ```sh
577               " h263dec_lib"       - for OMX Media Component H263 Decoder Library
578               " h264dec_lib"       - for OMX Media Component H264 Decoder Library
579               " h264enc_lib"       - for OMX Media Component H.264 Encoder Library
580               " h265dec_lib"       - for OMX Media Component H265 Decoder Library
581               " mpeg2dec_lib"      - for OMX Media Component MPEG2 Decoder Library
582               " mpeg4dec_lib"      - for OMX Media Component MPEG4 Decoder Library
583               " vc1dec_lib"        - for OMX Media Component VC-1 Decoder Library
584               " divxdec_lib"       - for OMX Media Component DivX Decoder Library
585               " rvdec_lib"         - for OMX Media Component RealVideo Decoder Library
586               " alacdec_lib"       - for OMX Media Component ALAC Decoder Library
587               " flacdec_lib"       - for OMX Media Component FLAC Decoder Library
588               " aaclcdec_lib"      - for OMX Media Component AAC-LC Decoder Library
589               " aaclcdec_mdw"      - for AAC-LC 2ch Decoder Middleware for Linux
590               " aacpv2dec_lib"     - for OMX Media Component aacPlus V2 Decoder Library
591               " aacpv2dec_mdw"     - for aacPlus V2 Decoder Middleware for Linux
592               " mp3dec_lib"        - for OMX Media Component MP3 Decoder Library
593               " mp3dec_mdw"        - for MP3 Decoder Middleware for Linux
594               " wmadec_lib"        - for OMX Media Component WMA Standard Decoder Library
595               " wmadec_mdw"        - for WMA Standard Decoder Middleware for Linux
596               " dddec_lib"         - for OMX Media Component Dolby(R) Digital Decoder Library
597               " dddec_mdw"         - for Dolby(R) Digital Decoder Middleware for Linux
598               " aaclcenc_lib"      - for OMX Media Component AAC-LC Encoder Library
599               " vp8dec_lib"        - for OMX Media Component VP8 Decoder Library for Linux
600               " vp8enc_lib"        - for OMX Media Component VP8 Encoder Library for Linux
601               " vp9dec_lib"        - for OMX Media Component VP9 Decoder Library for Linux
602               " aaclcenc_mdw"      - for AAC-LC Encoder Middleware for Linux
603               " cmsbcm"            - for CMS Basic Color Management Middleware for Linux
604               " cmsblc"            - for CMS CMM3 Backlight Control Middleware for Linux
605               " cmsdgc"            - for CMS VSP2 Dynamic Gamma Correction Middleware for Linux
606               " dtv"               - for ISDB-T DTV Software Package for Linux
607               " dvd"               - for DVD Core-Middleware for Linux
608               " adsp"              - for ADSP driver, ADSP interface and ADSP framework for Linux
609               " avb"               - for AVB Software Package for Linux
610               ```
611
612             Ex:
613
614             ```sh
615             DISTRO_FEATURES_append = " h264dec_lib h265dec_lib mpeg2dec_lib aaclcdec_lib aaclcdec_mdw"
616             ```
617
618         * C. Configuration for test packages
619
620           Must ensure that Multimedia features have been enabled.
621           (Please refer to III/A to enable Multimedia.)
622
623           * Please add feature to DISTRO_FEATURES_append to local.conf.
624
625             **Configuration for multimedia test package**
626             ```sh
627             DISTRO_FEATURES_append = "mm-test"
628             ```
629
630     2. Enable Linux ICCOM driver and Linux ICCOM library
631
632
633         For Linux ICCOM driver and Linux ICCOM library
634
635         * Please copy proprietary libraries to the directory of recipes.
636
637         * Please set local.conf the following.
638
639         ```sh
640         DISTRO_FEATURES_append = "iccom"
641         ```
642
643