먼저 Yocto 에서 사용되어지는 Recipe 관련문법을 아래링크에서 기본으로 알고 구성하도록하자.
Yocto 기본문법 과 이해
https://ahyuo79.blogspot.com/2020/01/raspberry-pi3-linux-yocto.html
- Yocto Reference Manual
반드시 Yocto 각 버전별로 확인을 해야하며, Manaul 기반으로 이해하도록 하는 것을 권장한다.
Zeus(3.0)
Warrior(2.7)
Fido(1.8)
1.1 Layer Configuration 구성 및 설정방법
일반 Layer는 BBPATH 와 BBFILES을 설정을 해주고 각각의 BBFILES 관련정보를 설정해주는 역할로,
BBFILES, 즉 Recipe들을 기본동작을 가능하게 만들어준다.
Reference Manual 참조(Layer 만들기)
https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#creating-your-own-layer
Layer를 쉽게 생성방법
1.2 Machine Layer 분석 및 확인
일반 Layer 구성방법과 거의 동일하며, 처음 conf/layer.conf 구성후
1.3 Distro Layer 분석 및 확인
일반 Layer 구성방법은 비슷하여 conf/layer.conf 구성후 DISTRO 값에 따라 별도로 Distro Layer 가 설정된다
동일하게 Distro Layer의 구성확인
User Conf의 DISTRO 설정 과 Distro Layer 선택
https://ahyuo79.blogspot.com/2020/02/yocto-user-configuration.html
3.1.1. Creating Your Own Layer
https://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#creating-your-own-distribution
2. Yocto의 Layer 추가 방법
더불어 BB 관련된 설정을 넣어 각각의 동작을 조금씩 다르게 할 수 있으며,
별도의 설정을 하여 공통 변수를 공유하게 할 수 있다.
Reference Manual 참조(Layer 만들기)
https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#creating-your-own-layer
Layer를 쉽게 생성방법
bitbake-layers 이용하여 쉽게 생성가능하며, 아래 링크를 참조
https://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#creating-a-general-layer-using-the-bitbake-layers-script
https://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#creating-a-general-layer-using-the-bitbake-layers-script
- 직접 자신의 Layer 생성/설정/Recipe생성/구성
Tool로 하면 매번 필요없는 것들이 많아서 지우는게 많아 나는 직접 구성하는 것을 선호
$ cd sources // Yocto Source로 이동 $ mkdir meta-test-jhlee // Layer 이름 정함 (Layer 설정시 이름동일) $ cd meta-test-jhlee // 새로 생성한 Layer 이동 $ mkdir conf $ vi conf/local.conf // Layer 설정 (아래 참조) $ mkdir -p recipes-core/images // Recipe Directory 관리 $ vi recipes-core/images/core-image-jhlee.bb // Recipe Directory Image Recipe 생성 (아래 참조) $ mkdir -p recipes-test/jhlee-test1 // jhlee-test1 recipe용 $ mkdir -p recipes-test/jhlee-test2 // jhlee-test2 recipe용 $ mkdir -p recipes-test/jhlee-test3 // jhlee-test3 recipe용 $ vi LICENSE // Layer LICENSE $ vi README // Layer README $ vi README.md // Layer 관리시 Github README
나중에는 Tool 이 더 좋아져서 Tool 기반으로 해야 할 걸로 생각되어지며, 이 부분은 추후 Yocto가 버전이 높아지면, 참고만 하도록 하자
- 상위 구성한 Layer 전체구성확인
$ tree -t -L 2 --charset unicode . |-- recipes-core | `-- images |-- recipes-test | |-- jhlee-test1 | |-- jhlee-test2 | `-- jhlee-test3 |-- LICENSE |-- README |-- README.md `-- conf `-- local.conf
- Layer 설정 (conf/layer.con)
일반 Layer의 기본목적은 다음과 같다.
- Recipe 즉 BBFILE 관련설정
- 해당 RECIPE들을 처리할 때 공통적으로 적용될 설정
아래의 각 변수들은 Yocto Manual 반드시 참조하도록
$ vi conf/layer.conf ## BBPATH 에 LAYERDIR (meta-test-jhlee) 위치를 삽입 ## BB FILE들의 위치 (*.bb,*bbclass,**bbappend) # We have a conf and classes directory, add to BBPATH ## $ bitbake -e | grep ^BBPATH 로 확인가능 BBPATH .= ":${LAYERDIR}" ## BB FILE들을 찾는 법 (Recipe List) # We have recipes-* directories, add to BBFILES BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend" ## Layer List로 이것이 추가되면서 아래와 같이 이 이름기준으로 OVERRIDE됨 BBFILE_COLLECTIONS += "meta-test-jhlee" ### conf/layer.conf 에서 사용하며 반드시 suffix로 layer name 사용 BBFILE_PATTERN_meta-test-jhlee = "^${LAYERDIR}/" ### 아래명령어로 우선순위 확인가능 bitbake-layers show-layers BBFILE_PRIORITY_meta-test-jhlee = "9" # no problem in warrior version # Jeonghun ## 아래에서 Yocto의 Version 호환성 LAYERSERIES_COMPAT_meta-test-jhlee = "warrior"
Layer 기본구조
아래의 Manual에서 기본구조를 파악하도록하자
- Image Recipe 설정 (자신만의 image)
$ vi recipes-core/images/core-image-jhlee.bb ## IMAGE 관련 서술 SUMMARY = "Jeonghun Image TEST " ## core-image-base 기반으로 만들며, 다른것으로 변경하면됨 include recipes-core/images/core-image-base.bb ## 현재 내가 만든 Recipe들을 Image에 추가 IMAGE_INSTALL += "binutils" IMAGE_INSTALL += "jhlee-test1 jhlee-test2 jhlee-test3" ## 상위 구성한 Layer를 추가한 후 각각의 Recipe들을 만들면 bitbake에서도 동작 ## e.g bitbake core-image-jhlee ## export IMAGE_BASENAME = "core-image-jhlee"
- 이후 작업
- TEST 할 Recipe 구현 및 소스추가
- User Configuration의 bblayers.conf에 상위 Layer 등록
- source를 이용하여 기본설정 (build space 생성)
- bitbake로 테스트
Recipe 관련 기본문법 및 OVERRIDES 설명
Recipe 작성방법
User Config에 상위 생성된 Layer 등록 (bblayers.conf)
https://ahyuo79.blogspot.com/2020/02/yocto-user-configuration.html1.2 Machine Layer 분석 및 확인
일반 Layer 구성방법과 거의 동일하며, 처음 conf/layer.conf 구성후
MACHINE 값에 따라 별도로 Machine Layer 가 설정된다
물론 변수가 BSP 마다 조금씩 다르겠지만, 구성부터 살펴보자.
물론 변수가 BSP 마다 조금씩 다르겠지만, 구성부터 살펴보자.
아래는 NXP(Freescale)의 구성이며, 간단하게 분석해보자
User Conf의 MACHINE 설정 과 Machine Layer 선택
https://ahyuo79.blogspot.com/2020/02/yocto-user-configuration.html
$ cd sources // Yocto Sources 이동 $ tree -t -L 2 --charset unicode meta-fsl-bsp-release/imx/meta-bsp/conf/ meta-fsl-bsp-release/imx/meta-bsp/conf/ // i.MX BSP Layer 분석 |-- layer.conf // 일반 Layer Recipe들 관리목적 `-- machine // Machine Layer Folder |-- imx6dlsabreauto.conf |-- imx6dlsabresd.conf |-- imx6qpdlsolox.conf |-- imx6qpsabreauto.conf |-- imx6qpsabresd.conf |-- imx6qsabreauto.conf |-- imx6qsabresd.conf |-- imx6slevk.conf |-- imx6sllevk.conf |-- imx6solosabreauto.conf |-- imx6solosabresd.conf |-- imx6sxsabreauto.conf |-- imx6sxsabresd.conf // User Config의 local.conf의 MACHINE 정보 |-- imx6ul7d.conf |-- imx6ul9x9evk.conf |-- imx6ulevk.conf |-- imx6ull14x14evk.conf |-- imx6ull9x9evk.conf |-- imx6ulz14x14evk.conf |-- imx7d12x12lpddr3arm2.conf |-- imx7dsabresd.conf |-- imx7ulpevk.conf |-- imx8_all.conf |-- imx8dxlphantommek.conf |-- imx8mmddr3lval.conf |-- imx8mmddr4evk.conf |-- imx8mmddr4val.conf |-- imx8mmevk.conf |-- imx8mmlpddr4evk.conf |-- imx8mnevk.conf |-- imx8mqevk.conf |-- imx8qmddr4arm2.conf |-- imx8qmlpddr4arm2.conf |-- imx8qmmek.conf |-- imx8qxplpddr4arm2.conf |-- imx8qxpmek.conf `-- include // Machine Layer 공통사항 Include $ ls meta-fsl-bsp-release/imx/meta-bsp/ // 상위 layer.conf에 때문에 Recipe 동작 classes recipes-bsp recipes-core recipes-graphics recipes-multimedia recipes-support wic conf recipes-connectivity recipes-devtools recipes-kernel recipes-security recipes-utils
User Conf의 MACHINE 설정 과 Machine Layer 선택
https://ahyuo79.blogspot.com/2020/02/yocto-user-configuration.html
- BSP Layer 의 conf/layer.conf 설정
- BBMASK를 이용하여 Recipe들을 제외
- HOSTTOOLS 관련설정을 별도로 진행 및 DISTRO 관련설정
$ vi meta-fsl-bsp-release/imx/meta-bsp/conf/layer.conf // Recipe 관리목적 # We have a conf and classes directory, add to BBPATH BBPATH .= ":${LAYERDIR}" # We have a packages directory, add to BBFILES BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "fsl-bsp-release" BBFILE_PATTERN_fsl-bsp-release := "^${LAYERDIR}" BBFILE_PRIORITY_fsl-bsp-release = "8" LAYERSERIES_COMPAT_fsl-bsp-release = "warrior" HOSTTOOLS_NONFATAL_append = " bc sha384sum xxd" # Enable optee for all builds using this layer, assuming the machine supports it. # To remove optee from the build, add the following line to local.conf: # DISTRO_FEATURES_remove = "optee" # DEPRECATED: The ability to remove optee from the build is deprecated and # will be removed in some future release. DISTRO_FEATURES_append = " optee" DISTRO_FEATURES_FILTER_NATIVESDK += "wayland" BBMASK += "meta-freescale/recipes-graphics/wayland/weston-init.bbappend"
- BSP Layer의 include Machine Layer
$ vi meta-fsl-bsp-release/imx/meta-bsp/conf/machine/include/imx6sabresd-common.inc # Provides the i.MX6 SABRE SD common settings ## meta-fsl-bsp-release/imx/meta-bsp/conf/machine/include/imx-base.inc 존재 ## meta-fsl-bsp-release/imx/meta-bsp/conf/machine/include/tune-cortexa9.inc 없음 (현재 필요없음) # ## 아래의 require 파일들을 보면 WIC/WKS 를 비롯하여 UBOOT/KERNEL/IMAGE 설정 다양한 정보를 확인가능 ## SOC_DEFAULT_WKS_FILE / WKS_FILE_DEPENDS / WKS_FILE / KERNEL_IMAGETYPE require conf/machine/include/imx-base.inc require conf/machine/include/tune-cortexa9.inc SERIAL_CONSOLES = "115200;ttymxc0" MACHINE_FIRMWARE_append_mx6 = " linux-firmware-ath6k" MACHINE_FEATURES += " pci wifi bluetooth bcm4339 bcm43455"
- BSP Layer의 Machine Layer
$ vi meta-fsl-bsp-release/imx/meta-bsp/conf/machine/imx6sxsabresd.conf ## OVERRIDES 기능설정 mx6 과 mx6sx로 설정되며 이는 아래의 include에 영향을 미침 ## 아래와 같이 mx6x or mx6으로 변수설정 (conf/machine/include/imx-base.inc) # ## UBOOT_ENTRYPOINT_mx6 = "0x10008000" ## UBOOT_ENTRYPOINT_mx6sx = "0x80008000" # ## MACHINEOVERRIDES_EXTENDER_mx6sx = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d" ## MACHINE_SOCARCH_SUFFIX_mx6sx = "-mx6sx" ## MACHINE_EXTRA_RRECOMMENDS_append_mx6sx = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'imx-alsa-plugins', '', d)}" ## MACHINE_GSTREAMER_1_0_PLUGIN_mx6sx = "imx-gst1.0-plugin" MACHINEOVERRIDES =. "mx6:mx6sx:" ## 상위 include/imx6sabresd-common.inc 참고 require conf/machine/include/imx6sabresd-common.inc ## KERNEL DEVICE TREE 설정 (UBOOT의 DEVICE TREE는 해당안됨) KERNEL_DEVICETREE = "imx6sx-sdb.dtb imx6sx-sdb-emmc.dtb imx6sx-sdb-m4.dtb \ imx6sx-sdb-sai.dtb imx6sx-sdb-lcdif1.dtb imx6sx-sdb-ldo.dtb \ imx6sx-sdb-reva-ldo.dtb imx6sx-sdb-reva.dtb \ imx6sx-sdb-btwifi.dtb imx6sx-sdb-mqs.dtb" MACHINE_FEATURES_append = " optee" ## 보통아래와 같이 사용 uboot-config.bbclass ## UBOOT_CONFIG ??=## UBOOT_CONFIG[foo] = "config,images" # ## UBOOT_CONFIG = emmc 이면 아래의 Kernel Config 설정 UBOOT_CONFIG ??= "${@bb.utils.contains('COMBINED_FEATURES', 'optee', 'sd-optee', 'sd', d)}" UBOOT_CONFIG[sd] = "mx6sxsabresd_config,sdcard" UBOOT_CONFIG[emmc] = "mx6sxsabresd_emmc_config,sdcard" UBOOT_CONFIG[qspi2] = "mx6sxsabresd_qspi2_config" UBOOT_CONFIG[m4fastup] = "mx6sxsabresd_m4fastup_config" UBOOT_CONFIG[mfgtool] = "mx6sxsabresd_config" UBOOT_CONFIG[sd-optee] = "mx6sxsabresd_optee_config,sdcard" OPTEE_BIN_EXT = "6sxsdb"
KERNEL_DEVICE_TREE
UBOOT
https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#ref-classes-uboot-config1.3 Distro Layer 분석 및 확인
일반 Layer 구성방법은 비슷하여 conf/layer.conf 구성후 DISTRO 값에 따라 별도로 Distro Layer 가 설정된다
DISTRO 값이 빈 값이면, poky/meta/conf/distro/defaultsetup.conf 사용한다함
동일하게 Distro Layer의 구성확인
$ cd sources // Yocto Sources 이동 $ tree -t -L 2 --charset unicode ./meta-fsl-bsp-release/imx/meta-sdk/conf/ ./meta-fsl-bsp-release/imx/meta-sdk/conf/ |-- layer.conf `-- distro |-- fsl-imx-fb.conf // DISTRO 값에 의해 설정 |-- fsl-imx-wayland.conf |-- fsl-imx-x11.conf |-- fsl-imx-xwayland.conf |-- imx-wayland-ivi.conf `-- include $ tree -t -L 2 --charset unicode ./meta-fsl-bsp-release/imx/meta-sdk/conf/distro ./meta-fsl-bsp-release/imx/meta-sdk/conf/distro |-- fsl-imx-fb.conf |-- fsl-imx-wayland.conf |-- fsl-imx-x11.conf |-- fsl-imx-xwayland.conf |-- imx-wayland-ivi.conf `-- include |-- fsl-imx-base.inc // DISTRO Layer 확장 `-- fsl-imx-preferred-env.inc
User Conf의 DISTRO 설정 과 Distro Layer 선택
https://ahyuo79.blogspot.com/2020/02/yocto-user-configuration.html
$ vi ./meta-fsl-bsp-release/imx/meta-sdk/conf/layer.conf // 일반 Layer (Recipe 관리, 상위설명참조)
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have a packages directory, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "fsl-sdk-release"
BBFILE_PATTERN_fsl-sdk-release := "^${LAYERDIR}"
BBFILE_PRIORITY_fsl-sdk-release = "8"
LAYERSERIES_COMPAT_fsl-sdk-release = "warrior"
# Add warrior to LAYERSERIERS_COMPAT for genivi layers until warrior branch
# is created in upstream
LAYERSERIES_COMPAT_ivi_append = " warrior"
LAYERSERIES_COMPAT_ivitest_append = " warrior"
LAYERSERIES_COMPAT_ivibsp_append = " warrior"
BBFILES_DYNAMIC += " \
browser-layer:${LAYERDIR}/dynamic-layers/browser-layer/*/*/*.bb \
browser-layer:${LAYERDIR}/dynamic-layers/browser-layer/*/*/*.bbappend \
\
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \
\
qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bb \
qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bbappend \
\
ivi:${LAYERDIR}/dynamic-layers/ivi/*/*/*.bb \
ivi:${LAYERDIR}/dynamic-layers/ivi/*/*/*.bbappend \
\
ivitest:${LAYERDIR}/dynamic-layers/ivitest/*/*/*.bb \
ivitest:${LAYERDIR}/dynamic-layers/ivitest/*/*/*.bbappend \
"
BBMASK += "meta-freescale/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend"
BBMASK += "meta-freescale-distro/recipes-fsl/packagegroups/packagegroup-fsl-tools-gpu-external.bb"
BBMASK += "meta-ivi/meta-ivi/recipes-graphics/wayland/weston_%.bbappend"
- Distro Layer
$ vi ./meta-fsl-bsp-release/imx/meta-sdk/conf/distro/fsl-imx-fb.conf # i.MX DISTRO for the FrameBuffer graphical backend. include conf/distro/include/fsl-imx-base.inc include conf/distro/include/fsl-imx-preferred-env.inc DISTRO = "fsl-imx-fb" # Remove conflicting backends. DISTRO_FEATURES_remove = "x11 wayland directfb "
DISTRO_FEATURES 에서 사용되는 LIST
https://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#ref-features-distro- Distro Layer (Include)
$ vi ./meta-fsl-bsp-release/imx/meta-sdk/conf/distro/include/fsl-imx-base.inc DISTRO = "fsl-imx" DISTRO_NAME = "NXP i.MX Release Distro" DISTRO_VERSION = "4.19-warrior" DISTRO_CODENAME = "warrior" SDK_VENDOR = "-pokysdk" SDK_VERSION := "${DISTRO_VERSION}" #SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}" MAINTAINER = "NXP" TARGET_VENDOR = "-poky" LOCALCONF_VERSION = "1" IMX_DEFAULT_DISTRO_FEATURES = "opengl ptest multiarch" # Enable vulkan distro feature only for mx8 IMX_DEFAULT_DISTRO_FEATURES_append_mx8 = " vulkan" # Enable jailhouse distro feature only for mx8m IMX_DEFAULT_DISTRO_FEATURES_append_mx8m = " jailhouse" IMX_DEFAULT_EXTRA_RDEPENDS = "packagegroup-core-boot" IMX_DEFAULT_EXTRA_RRECOMMENDS = "kernel-module-af-packet" BBMASK += "poky/meta/recipes-graphics/vulkan/vulkan_1.1.73.0.bb" DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} ${IMX_DEFAULT_DISTRO_FEATURES}" SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}" SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}" DISTRO_EXTRA_RDEPENDS += " ${IMX_DEFAULT_EXTRA_RDEPENDS}" DISTRO_EXTRA_RRECOMMENDS += " ${IMX_DEFAULT_EXTRA_RRECOMMENDS}" TCLIBCAPPEND = "" .....중략.... $ vi ./meta-fsl-bsp-release/imx/meta-sdk/conf/distro/include/fsl-imx-preferred-env.inc # Set the preffered provider for opencl-headers PREFERRED_PROVIDER_opencl-headers_imx = "imx-gpu-viv" PREFERRED_VERSION_gstreamer1.0-plugins-base = "1.16.0.imx" PREFERRED_VERSION_gstreamer1.0-plugins-bad = "1.16.0.imx" PREFERRED_VERSION_gstreamer1.0-plugins-good = "1.16.0.imx" PREFERRED_VERSION_gstreamer1.0 = "1.16.0.imx" # Use systemd as default init manager VIRTUAL-RUNTIME_init_manager = "systemd" PREFERRED_PROVIDER_udev = "systemd" "./meta-fsl-bsp-release/imx/meta-sdk/conf/distro/include/fsl-imx-preferred-env.inc" 58L, 2420C 1,1 Top # Use i.MX Kernel, U-Boot and Gstreamer 1.0 providers PREFERRED_PROVIDER_virtual/bootloader_imx = "u-boot-imx" #PREFERRED_PROVIDER_virtual/bootloader_mx6 = "u-boot-imx" #PREFERRED_PROVIDER_virtual/bootloader_mx6ul = "u-boot-imx" #PREFERRED_PROVIDER_virtual/bootloader_mx6sll = "u-boot-imx" #PREFERRED_PROVIDER_virtual/bootloader_mx7d = "u-boot-imx" #PREFERRED_PROVIDER_virtual/bootloader_mx7ulp = "u-boot-imx" PREFERRED_PROVIDER_virtual/kernel_imx = "linux-imx" #PREFERRED_PROVIDER_virtual/kernel_mx6 = "linux-imx" #PREFERRED_PROVIDER_virtual/kernel_mx6ul = "linux-imx" #PREFERRED_PROVIDER_virtual/kernel_mx6sll = "linux-imx" #PREFERRED_PROVIDER_virtual/kernel_mx7d = "linux-imx" #PREFERRED_PROVIDER_virtual/kernel_mx7ulp = "linux-imx" #PREFERRED_PROVIDER_virtual/kernel_imx7ulp_zebu = "linux-imx" PREFERRED_VERSION_linux-libc-headers_imx ?= "4.19" # Extra audio support # Add support for ALL i.MX6/7/8 SoC families MACHINE_EXTRA_RRECOMMENDS_append_imx = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'imx-alsa-plugins', '', d)}" # Default toolchains used in testing i.MX BSPs DEFAULTTUNE_mx6 = "cortexa9hf-neon" DEFAULTTUNE_mx6ul = "cortexa7hf-neon" DEFAULTTUNE_mx6sll = "cortexa9hf-neon" DEFAULTTUNE_mx7d = "cortexa7hf-neon" DEFAULTTUNE_mx7ulp = "cortexa7hf-neon" DEFAULTTUNE_mx8 = "aarch64" # Enable the kenrel loadable module as default USE_GPU_VIV_MODULE = "1" IMX_GPU_VERSION ?= "6.4.0.p1.0" IMX_GPU_VERSION_SUFFIX = "aarch32" IMX_GPU_VERSION_SUFFIX_mx8 = "aarch64" PREFERRED_VERSION_imx-gpu-viv = "${IMX_GPU_VERSION}-${IMX_GPU_VERSION_SUFFIX}" PREFERRED_VERSION_kernel-module-imx-gpu-viv = "${IMX_GPU_VERSION}" PREFERRED_VERSION_imx-gpu-g2d = "${IMX_GPU_VERSION}" # Set the preffered provider for opencl-headers PREFERRED_PROVIDER_opencl-headers_imx = "imx-gpu-viv" PREFERRED_VERSION_gstreamer1.0-plugins-base = "1.16.0.imx" PREFERRED_VERSION_gstreamer1.0-plugins-bad = "1.16.0.imx" PREFERRED_VERSION_gstreamer1.0-plugins-good = "1.16.0.imx" PREFERRED_VERSION_gstreamer1.0 = "1.16.0.imx" # Use systemd as default init manager VIRTUAL-RUNTIME_init_manager = "systemd" PREFERRED_PROVIDER_udev = "systemd" PREFERRED_PROVIDER_udev-utils = "systemd" DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit" IMX_DEFAULT_DISTRO_FEATURES += " systemd" SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT_mx6 = "1" SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT_mx7ulp = "1"
3.1.1. Creating Your Own Layer
https://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#creating-your-own-distribution
2. Yocto의 Layer 추가 방법
- Yocto에서 제공해주는 Layer 검색 (중요)
Openembedded Site에서 제공해주고 있는 Layer들로 이곳에서 검색 후 이 git으로 download를 하면 쉽게 추가가능
https://layers.openembedded.org/layerindex/branch/master/layers/
Raspberry Pi 에서 Layer를 추가 및 Layer 관련 명령어
https://ahyuo79.blogspot.com/2018/02/raspberry-pi-systems-with-yoctohtml.html
Raspberry Pi 에서 Layer를 추가 및 Layer 관련 명령어
https://ahyuo79.blogspot.com/2018/02/raspberry-pi-systems-with-yoctohtml.html