Lines Matching +full:runs +full:- +full:on

9 (64-bit), it can be applied to any board in a similar way.
13 You must install essential host packages on your build host. The following
14 command installs the host packages based on an Ubuntu distribution
16 .. code-block::
18 sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential \
19 chrpath socat cpio python3 python3-pip python3-pexpect xz-utils \
20 debianutils iputils-ping python3-git python3-jinja2 python3-subunit zstd \
21 liblz4-tool file locales libacl1
25 For host package requirements on all supported Linux distributions, see the
27 ref-manual/system-requirements.html#required-packages-for-the-build-host>`_
36 .. code-block:: none
45 ├── meta-openembedded
46 ├── meta-raspberrypi
51 .. code-block::
53 mkdir -p lvgl_yocto_guide/sources
55 Clone Poky, meta-openembedded and meta-raspberrypi in the sources
57 .. code-block::
60 git clone --branch scarthgap https://git.yoctoproject.org/poky.git
61 git clone --branch scarthgap https://git.openembedded.org/meta-openembedded
62 git clone --branch scarthgap git://git.yoctoproject.org/meta-raspberrypi
67 To understand better what is going on, let's build the image like it is
70 .. code-block:: none
73 source sources/poky/oe-init-build-env
81 .. code-block:: none
86 ├── conf-notes.txt
87 ├── conf-summary.txt
100 .. code-block::
102 bitbake-layers add-layer ../sources/meta-openembedded
103 bitbake-layers add-layer ../sources/meta-raspberrypi
109 .. code-block:: bash
120 ${TOPDIR}/../sources/poky/meta-poky \
121 ${TOPDIR}/../sources/poky/meta-yocto-bsp \
122 ${TOPDIR}/../sources/meta-raspberrypi \
123 ${TOPDIR}/../sources/meta-openembedded/meta-oe \
124 ${TOPDIR}/../sources/meta-openembedded/meta-multimedia \
125 ${TOPDIR}/../sources/meta-openembedded/meta-networking \
126 ${TOPDIR}/../sources/meta-openembedded/meta-python \
132 bitbake-layers show-layers
135 - core
136 - yocto
137 - yoctobsp
138 - raspberrypi
139 - openembedded-layer
140 - multimedia-layer
141 - networking-layer
142 - meta-python
149 .. code-block::
151 ls ../sources/meta-raspberrypi/conf/machine/*.conf
156 .. code-block:: bash
158 MACHINE ??= "raspberrypi3-64"
162 .. code-block:: bash
164 LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
168 …n about this variable `here <https://meta-raspberrypi.readthedocs.io/en/latest/ipcompliance.html#l…
172 bitbake core-image-base
181 ---------
192 ----------
200 - **images**: it contains the images that can be flashed or deployed to
202 ext4, .tar.gz, .squashfs), bootloaders (e.g., U-Boot), and other
205 - **rmp/deb/ipk**: These folders contain the individual software packages
209 be installed on the target device using package management tools
210 - **sdk**: This subdirectory contains Software Development Kits (SDKs)
211 that you can use to cross-compile applications for your target system.
212 The SDKs are generated when you use the ``bitbake -c populate_sdk``
216 tmp/sysroots-components
217 -----------------------
227 The sysroot-components directory helps optimize the build process because if
232 - ``all``: Architecture-independent files.
233 - ``cortexa53``: Files for the Cortex-A53 (ARMv8-A) architecture.
234 - ``manifests``: Track files installed in the sysroot by package.
235 - ``raspberrypi3_64``: Files specific to the Raspberry Pi 3 (64-bit).
236 - ``x86_64``: Files for the x86_64 (PC) architecture, typically for
237 cross-compilation tools.
238 - ``x86_64-nativesdk``: Files related to the SDK for cross-compilation on
245 tmp/sysroots-uninative
246 ----------------------
248 The sysroots-uninative directory in Yocto is used to support the "uninative"
255 --------
266 .. code-block:: none
274 ├── sysroot-destdir/
287 There is a recipe in ``meta-openembedded`` since ``honister``.
289 .. list-table:: lvgl recipe version
291 :header-rows: 1
293 * - Branch
294 - Recipe
295 * - scarthgap (Yocto Project 5.0)
296 - lvgl 9.1.0
297 * - nanbield (Yocto Project 4.3)
298 - lvgl 8.3.10
299 * - mickledore (Yocto Project 4.2)
300 - lvgl 8.1.0
301 * - langdale (Yocto Project 4.1)
302 - lvgl 8.1.0
303 * - langdale (Yocto Project 4.1)
304 - lvgl 8.1.0
305 * - kirkstone (Yocto Project 4.0)
306 - lvgl 8.0.3
308 In this guide, we are on the ``scarthgap`` branch, so we are using lvgl 9.1.0.
314 This is the path of lvgl recipes: ``lvgl_yocto_guide/sources/meta-openembedded/
315 meta-oe/recipes-graphics/lvgl``
319 .. code-block:: bash
323 │ ├── 0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch
324 │ ├── 0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch
325 │ ├── 0004-Factor-out-fbdev-initialization-code.patch
326 │ ├── 0005-Add-DRM-KMS-example-support.patch
327 │ ├── 0006-Add-SDL2-example-support.patch
328 │ ├── 0007-fix-cmake-generate-versioned-shared-libraries.patch
329 │ └── 0008-fix-fbdev-set-resolution-prior-to-buffer.patch
330 ├── lv-conf.inc
332 └── lvgl-demo-fb_9.1.0.bb
334 - ``file`` folder contains all the patches that can be applied when
336 - ``lv_conf.inc`` is an include file, usually containing common configuration
338 - ``lvgl_9.1.0.bb`` is the recipe to build lvgl library.
339 - ``lvgl-demo-fb_9.1.0.bb`` is a recipe to build an application using lvgl.
343 .. code-block:: bash
345 # SPDX-FileCopyrightText: Huawei Inc.
347 # SPDX-License-Identifier: MIT
357 file://0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch \
358 file://0007-fix-cmake-generate-versioned-shared-libraries.patch \
359 file://0008-fix-fbdev-set-resolution-prior-to-buffer.patch \
365 EXTRA_OECMAKE = "-DLIB_INSTALL_DIR=${baselib} -DBUILD_SHARED_LIBS=ON"
368 require lv-conf.inc
371 install -d "${D}${includedir}/${PN}"
372 install -m 0644 "${S}/lv_conf.h" "${D}${includedir}/${PN}/lv_conf.h"
375 FILES:${PN}-dev += "\
389 - The main source repository for LVGL specifying the master branch.
390 - The following arguments are the local patch files that will be applied to
407 require: This line includes another configuration file, ``lv-conf.inc``,
424 .. code-block:: bash
426 bitbake lvgl -c fetch
440 build/tmp/work/cortexa53-poky-linux/lvgl`` but these folders are empty since
447 .. code-block:: bash
449 bitbake lvgl -c unpack
453 In the ``lvgl_yocto_guide/build/tmp/work/cortexa53-poky-linux/lvgl/9.1.0``
455 the recipe). You will also see the patches that will be applied on the next
462 .. code-block:: bash
464 bitbake lvgl -c patch
470 Patch file is also defined in **SRC_URI** variable. By default it runs in
474 .. code-block:: bash
476 bitbake lvgl -c configure
479 build-time and configuration options for the software being built before
485 the project, specifying build options and paths based on variables in your
487 there are operations added in the task in ``lv-conf.inc``.
490 cortexa53-poky-linux/lvgl/9.1.0``, you will find a ``build`` folder that was
496 .. code-block:: bash
498 bitbake lvgl -c compile
511 are available in ``lvgl_yocto_guide/build/tmp/work/ cortexa53-poky-linux/lvgl/9.1.0/build/lib``.
516 .. code-block:: bash
518 bitbake lvgl -c install
521 **${D}**. This task runs with the current working directory **${S}** which
538 .. code-block:: bash
544 the library to the host SDK we will generate later on.
548 bitbake core-image-base
553 rpm/cortexa53/lvgl-9.1.0-r0.cortexa53.rpm`` and other rpm files related to
562 - **Development Environment**: The SDK provides developers with a
563 ready-to-use development environment tailored for a specific target
566 applications that run on the target device.
567 - **Cross-Compilation**: The SDK allows developers to cross-compile
570 systems, where development often occurs on more powerful machines.
571 - **Simplified Development**: By packaging all required components, the SDK
575 - **Consistent Build Environment**: The SDK ensures that developers are
578 applications will behave as expected on the target device.
582 .. code-block:: bash
584 bitbake core-image-base -c populate_sdk
587 poky-glibc-x86_64-core-image-base-cortexa53-raspberrypi3-64-toolchain-5.0.4.
591 .. code-block:: bash
593 $ ./sdk/poky-glibc-x86_64-core-image-base-cortexa53-raspberrypi3-64-toolchain-5.0.4.sh
596 Enter target directory for SDK (default: /opt/poky/5.0.4): /opt/poky/sdk-with-lvgl
597 You are about to install the SDK to "/opt/poky/sdk-with-lvgl". Proceed [Y/n]? y
602 .. code-block:: bash
604 cd /opt/poky/5.0.4/sysroots/cortexa53-poky-linux
605 find . -name "*lvgl*"
607 The ``.so`` files you will find will depend on the LVGL configuration you used.
609 Now to use the SDK environment and cross-compile an application:
611 .. code-block:: bash
613 source /opt/poke/5.0.4/environment-setup-cortexa53-poky-linux
617 The tools available in LVGL library will depend on the build configuration
633 .. code-block::
635 bitbake-layers create-layer ../sources/meta-mylvgl
636 bitbake-layers add-layer ../sources/meta-mylvgl
638 In the ``sources`` folder, a new folder was created: ``meta-mylvgl`` and the
641 .. code-block:: none
647 └── recipes-example
658 .. code-block::
660 cd ../sources/meta-mylvgl
661 mkdir -p recipes-lvglapp/lvgl-fbdev-benchmark/files
662 touch recipes-lvglapp/lvgl-fbdev-benchmark/lvglbenchmarkfbdev_2.4.bb
664 We will focus on 1 application that will clone an lvgl git repository and patch
667 The content of ``recipes-lvglapp/lvgl-fbdev-benchmark/lvglbenchmarkfbdev_2.4.
670 .. code-block:: none
679 file://0001-change-config-file-to-run-fbdev-with-2-threads.patch \
680 file://0002-adapt-CMakeLists-file-to-compile-and-link-fbdev.patch \
691 install -d ${D}${bindir}
692 install -m 0755 ${S}/bin/lvglbenchmark ${D}${bindir}
698 -------
702 .. code-block::
704 touch 0001-change-config-file-to-run-fbdev-with-2-threads.patch
706 Content of ``0001-change-config-file-to-run-fbdev-with-2-threads.patch``
708 .. code-block:: none
715 ---
716 lv_conf.h | 34 +++++++++++++++++-----------------
717 1 file changed, 17 insertions(+), 17 deletions(-)
719 diff --git a/lv_conf.h b/lv_conf.h
721 --- a/lv_conf.h
723 @@ -39,9 +39,9 @@
724 * - LV_STDLIB_RTTHREAD: RT-Thread implementation
725 * - LV_STDLIB_CUSTOM: Implement the functions externally
727 -#define LV_USE_STDLIB_MALLOC LV_STDLIB_BUILTIN
728 -#define LV_USE_STDLIB_STRING LV_STDLIB_BUILTIN
729 -#define LV_USE_STDLIB_SPRINTF LV_STDLIB_BUILTIN
736 @@ -89,7 +89,7 @@
737 * - LV_OS_WINDOWS
738 * - LV_OS_MQX
739 * - LV_OS_CUSTOM */
740 -#define LV_USE_OS LV_OS_NONE
745 @@ -117,12 +117,12 @@
749 -#define LV_DRAW_LAYER_SIMPLE_BUF_SIZE (24 * 1024) /* [bytes] */
755 -#define LV_DRAW_THREAD_STACK_SIZE (8 * 1024) /* [bytes] */
760 @@ -147,7 +147,7 @@
764 - #define LV_DRAW_SW_DRAW_UNIT_CNT 1
767 /* Use Arm-2D to accelerate the sw render */
769 @@ -979,8 +979,8 @@
773 - #define LV_LINUX_FBDEV_RENDER_MODE LV_DISPLAY_RENDER_MODE_PARTIAL
774 - #define LV_LINUX_FBDEV_BUFFER_COUNT 0
780 @@ -1069,19 +1069,19 @@
784 -#define LV_USE_DEMO_KEYPAD_AND_ENCODER 1
791 -#define LV_USE_DEMO_RENDER 1
795 -#define LV_USE_DEMO_STRESS 1
799 -#define LV_USE_DEMO_MUSIC 1
804 @@ -1091,16 +1091,16 @@
808 -#define LV_USE_DEMO_FLEX_LAYOUT 1
811 /* Smart-phone like multi-language demo */
812 -#define LV_USE_DEMO_MULTILANG 1
816 -#define LV_USE_DEMO_TRANSFORM 1
820 -#define LV_USE_DEMO_SCROLL 1
825 --
830 -------
834 .. code-block::
836 touch 0002-adapt-CMakeLists-file-to-compile-and-link-fbdev.patch
838 Content of ``0002-adapt-CMakeLists-file-to-compile-and-link-fbdev.patch``
840 .. code-block:: none
847 ---
848 CMakeLists.txt | 17 +++++------------
849 1 file changed, 5 insertions(+), 12 deletions(-)
851 diff --git a/CMakeLists.txt b/CMakeLists.txt
853 --- a/CMakeLists.txt
855 @@ -1,8 +1,8 @@
859 -set(CMAKE_C_STANDARD 99)#C99 # lvgl officially support C99 and above
860 -set(CMAKE_CXX_STANDARD 17)#C17
863 set(CMAKE_CXX_STANDARD_REQUIRED ON)
866 @@ -10,15 +10,8 @@ set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
870 -add_executable(main main.c mouse_cursor_icon.c)
873 -include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake)
874 -include_directories(${Libdrm_INCLUDE_DIRS})
875 -
876 -find_package(SDL2)
877 -find_package(SDL2_image)
878 -include_directories(${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS})
879 -
880-target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${SDL2_…
881 -add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main)
885 --
893 .. code-block::
895 bitbake-layers show-recipes | grep lvglbenchmarkfbdev
900 .. code-block::
906 .. code-block::
908 bitbake core-image-base
913 .. code-block::
916 find . -wholename "*bin/lvglbench*"