<Spec>

  • target Board : i.MX6DL
  • Ubuntu : ubuntu-18.04.5-desktop-amd64

 

1. Yocto 설치 및 build

$ git clone git://code.qt.io/yocto/meta-boot2qt
$ cd meta-boot2qt
$ git checkout tags/v5.12.3
$ ./b2qt-init-build-env init --device imx6qdlsabresd
$ vi meta-boot2qt-distro/recipes-core/packagegroups/packagegroup-b2qt-embedded-base.bb
$ 	ttf-opensans와 otf-noto를 제거 (제거하지 않으면 build error 발생)
$ export MACHINE=imx6qdlsabresd
$ source ./setup-environment.sh
$ bitbake b2qt-embedded-qt5-image

먼저 QT5.12.3 Version으로 boot2qt 빌드를 하였다. build가 완료 되면 Filesystem image만 사용할 예정이다.

 

 * Output Filesystem Image Path

meta-boot2qt/build-imx6qdlsabresd/tmp/deploy/images/imx6qdlsabresd/b2qt-embedded-qt5-image-imx6qdlsabresd-20211109054636.rootfs.ext3

 

 

2. GPU Driver부분만 변경하여 Yocto Build

현재 GPU Drive Version이 6.2.4p.1.2 로 설정되어 있는데 6.2.4.p4.0로 변경해 보겠다.

최소한의 필요한 부분을 수정하여 빌드하는것이 목적이다.

 

1.  Configure 설정

$ vi meta-boot2qt-distro/conf/distro/include/imx6qdlsabresd.conf
+ PREFERRED_VERSION_imx-gpu-viv = "6.2.4.p4.0-aarch32"
+ PREFERRED_VERSION_kernel-module-imx-gpu-viv = "6.2.4.p4.0"
+ PREFERRED_VERSION_imx-gpu-g2d = "6.2.4.p4.0"

 

 2. meta-freescale 수정

1. https://git.yoctoproject.org/
2. meta-freescale 선택
3. tree 목록 -> recipes-graphics
4. log 목록 선택
5. 2019-09-21 weston-init: Adjust to match recent oe-core changes Khem Raj 2

( meta-freescale-b61675eccc5ac3cf73f9e24bc651a08ab37110de.tar.bz2 )
6. commit 목록을 들어가면 file을 donwload 받을 수 있다. download 받고 압축풀고 recipes-graphics 부분만 update해준다.

$ cp -rfvp meta-freescale-b61675eccc5ac3cf73f9e24bc651a08ab37110de/recipes-graphics meta-boot2qt/sources/meta-freescale/recipes-graphics
$ 			## GPU Version 확인
$ ls meta-boot2qt/sources/meta-freescale/recipes-graphics/imx-gpu-g2d
$ ls meta-boot2qt/sources/meta-freescale/recipes-graphics/imx-gpu-viv

 

 

 3. vi sources/poky/meta/recipes-graphics/wayland/weston_3.0.0.bb 수정

36번째 줄 'kms' 제거

 

 

 4. build

$ export MACHINE=imx6qdlsabresd
$ source ./setup-environment.sh
$ bitbake b2qt-embedded-qt5-image

build하면 다음과 같은 message가 나오지만 빌드가 완료된다.

 

 

 5. build 확인

# ls build-imx6qdlsabresd/tmp/work/cortexa9hf-neon-mx6qdl-poky-linux-gnueabi/imx-gpu-viv/1_6.2.4.p4.0-aarch32-r0

 

 6. Filesystem ouput

 - Filesystem Image 위치

# ls build-imx6qdlsabresd/tmp/deploy/images/imx6qdlsabresd/b2qt-embedded-qt5-image-imx6qdlsabresd-20211116063046.rootfs.ext3

 

유용한 bitbake 명령어

 

# bitbake-layers show-layers

# bitbake-layers show-overlayed

# bitbake-layers show-appends

 

 사용될 kernel version이 4.19이기에 4.9 -> 4.19로 마춰주려고 하였지만 실제 build에서 skip되어 영향이 없는 부분이다.

$ vi meta-boot2qt/sources/meta-freescale-3rdparty/recipes-kernel/linux/linux-boundary_4.19.x.bb

# Adapted from linux-imx.inc, copyright (C) 2013, 2014 O.S. Systems Software LTDA
# Released under the MIT license (see COPYING.MIT for the terms)

require recipes-kernel/linux/linux-imx.inc

SUMMARY = "Linux kernel for Boundary Devices boards"

SRC_URI = "git://github.com/boundarydevices/linux-imx6.git;branch=${SRCBRANCH} \
           file://defconfig \
"

LOCALVERSION = "-1.1.0-ga+yocto"
SRCBRANCH = "boundary-imx_4.19.x_1.1.0"
SRCREV = "ac107ccf4dcb6a1c4e90d794ed3b3f44d4859868"
DEPENDS += "lzop-native bc-native"
COMPATIBLE_MACHINE = "(nitrogen6x|nitrogen6x-lite|nitrogen6sx|nitrogen7)"

* yocto에서 kernel version 4.9 -> 4.19 실제로 kernel 전체를 4.9에서 4.19로 바꾸는게 아니고 boundery부분만 바꿔서(참고하는 kernel) 빌드 되도록 한다.
1. git://github.com/boundarydevices/linux-imx6
2. github branch를 kernel 4.19 선택 후 commit hash값 확인해서 넣는다.

+ Recent posts