Yocto Toolchain installation: Difference between revisions

From Variscite Wiki
No edit summary
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<!-- Set release according to "release" parameter in URL and use RELEASE_MORTY_V1.0_DART-6UL as default
<!-- Set release according to "release" parameter in URL and use RELEASE_MORTY_V1.0_DART-6UL as default
--> {{#vardefine:RELEASE_PARAM|{{#urlget:release}}}} <!--
--> {{INIT_RELEASE_PARAM|RELEASE_MORTY_V1.0_DART-6UL}}<!--
--> {{#lst:Yocto_Platform_Customization|{{#var:RELEASE_PARAM|RELEASE_MORTY_V1.0_DART-6UL}}}} <!--
--> {{#lst:Yocto_Platform_Customization|{{#var:RELEASE_PARAM}}}} <!--
--> {{#lst:B2QT_Platform_Customization|{{#var:RELEASE_PARAM}}}} <!--
--> {{#varexists:DEFAULT_IMAGE_BB_NAME | | {{ #vardefine:DEFAULT_IMAGE_BB_NAME | fsl-image-gui }} }} <!--
--> {{#vardefine:TOOLCHAIN_INSTALL_NAME | {{#switch: {{#var:SOC_SERIES|imx6}}
        |imx9|
        |imx8|={{#var:TOOLCHAIN_INSTALL_XWAYLAND_NAME}}
        |{{#var:TOOLCHAIN_INSTALL_X11_NAME}}
        }}}}<!--
--> {{#vardefine:TOOLCHAIN_INSTALL_NAME |  {{#var:TOOLCHAIN_INSTALL_B2QT_NAME | {{#var:TOOLCHAIN_INSTALL_NAME}}}}}} <!-- Override YOCTO_INSTALL_NAME if TOOLCHAIN_INSTALL_B2QT_NAME exists
--> {{#vardefine:BB_ENV | {{#varexists: B2QT_GIT | MACHINE={{#var:MACHINE_NAME}} | }} }} <!--
--> {{#vardefine:B2QT_OR_YOCTO | {{#varexists: B2QT_GIT | B2QT | Yocto }} }} <!--
--> {{PageHeader|Yocto toolchain installation for out of Yocto builds}} {{DocImage|category1=Yocto|category2={{#var:HARDWARE_NAME}}}} __toc__
--> {{PageHeader|Yocto toolchain installation for out of Yocto builds}} {{DocImage|category1=Yocto|category2={{#var:HARDWARE_NAME}}}} __toc__


== Pre Requirements ==
== Prerequisites==
Full Yocto OpenEmbedded environment is required for the toolchain generation.<br>
A full {{#var:B2QT_OR_YOCTO}} build environment is required for the toolchain generation.<br>
To setup Yocto build environment follow steps 1 & 3 of the {{Varlink|Yocto_Build_Release|{{#var:RELEASE_LINK}}|Build Yocto from source code}} guide and then proceed to the toolchain build below:
To setup a {{#var:B2QT_OR_YOCTO}} build environment follow steps 1 & 3 of the {{Varlink|{{#var:B2QT_OR_YOCTO}}_Build_Release|{{#var:RELEASE_LINK}}|Build {{#var:B2QT_OR_YOCTO}} from source code}} guide and then proceed to either the toolchain or complete SDK steps below:


== Build Toolchain ==
== Build a toolchain ==
{{#lst:Yocto_Platform_Customization|YOCTO_ENV_SETUP_X}}


  $ cd {{#var:BUILD_FOLDER}}
  $ {{#var:BB_ENV}} bitbake {{#varexists: DEFAULT_TOOLCHAIN_BB_NAME | {{#var:DEFAULT_TOOLCHAIN_BB_NAME}} | {{#varexists: B2QT_BSP_VERSION | meta-toolchain-b2qt-embedded-qt5-sdk | meta-toolchain}} }}
$ MACHINE={{#var:MACHINE_NAME}} DISTRO={{#var:BUILD_DISTRO}} {{#var:BUILD_SCRIPT}} {{#ifeq: {{#var:HARDWARE_NAME}}|DART-MX8M|-b {{#var:BUILD_FOLDER_XWAYLAND}}|{{#var:BUILD_FOLDER_X11}}}}


$ bitbake meta-ide-support
== Build a complete SDK ==
$ bitbake meta-toolchain


The output will be located at tmp/deploy/sdk/.
To compile applications that require libraries other than glibc you should build an SDK which contains development versions of all libraries in the rootfs image, and not just the basic toolchain.
{{#lst:Yocto_Platform_Customization|YOCTO_ENV_SETUP_X}}


== Install Toolchain ==
E.g. when using the {{#var:DEFAULT_IMAGE_BB_NAME}} image:
Install the tools by running it:
$ {{#var:BB_ENV}} bitbake -c populate_sdk {{#var:DEFAULT_IMAGE_BB_NAME}}
{{Note|The SDK should match the rootfs image on the target, otherwise you may experience difficulties when trying to debug application failures.}}


$ tmp/deploy/sdk/{{#ifeq: {{#var:HARDWARE_NAME}}|DART-MX8M|{{#var:TOOLCHAIN_INSTALL_XWAYLAND_NAME}}|{{#var:TOOLCHAIN_INSTALL_X11_NAME}}}}
== Install the toolchain/SDK ==
Install the tools by running the resulted script in tmp/deploy/sdk/.


Reply to all defaults 'y'<br>
E.g.
At the end of the installation you should see the following:
$ tmp/deploy/sdk/{{#var:TOOLCHAIN_INSTALL_NAME}}
Note: The toolchain/script name depends on your build machine and the bitbaked image/recipe, and may change.<br>
<br>
Accept all the default options, and at the end of the installation you should see the following:
<pre>
<pre>
SDK has been successfully set up and is ready to be used.
SDK has been successfully set up and is ready to be used.
</pre>
</pre>
{{Note|The toolchain name depend on your build machine and may change}}


== Use Toolchain ==
== Use the toolchain/SDK ==
Each time you wish to use the toolchain in a new shell session, you need to source the environment setup script:
Each time you wish to use the toolchain in a new shell session, you need to source the environment setup script:
  $ source {{#var:TOOLCHAIN_LOCATION}}
  $ source {{#var:TOOLCHAIN_LOCATION}}{{#ifeq: {{#var:SOC_SERIES}}|imx8|<br>$ export LDFLAGS=|}}
{{#ifeq: {{#var:HARDWARE_NAME}}|DART-MX8M|$ export LDFLAGS=|}}

Revision as of 22:04, 13 January 2023

Warning: This page is designed to be used with a 'release' URL parameter.

This page is using the default release RELEASE_MORTY_V1.0_DART-6UL.
To view this page for a specific Variscite SoM and software release, please follow these steps:

  1. Visit variwiki.com
  2. Select your SoM
  3. Select the software release
Yocto toolchain installation for out of Yocto builds

Prerequisites

A full Yocto build environment is required for the toolchain generation.
To setup a Yocto build environment follow steps 1 & 3 of the Build Yocto from source code guide and then proceed to either the toolchain or complete SDK steps below:

Build a toolchain

$ cd ~/var-fslc-yocto
$ MACHINE=imx6ul-var-dart DISTRO=fslc-x11 . setup-environment build_x11


$  bitbake meta-toolchain

Build a complete SDK

To compile applications that require libraries other than glibc you should build an SDK which contains development versions of all libraries in the rootfs image, and not just the basic toolchain.

$ cd ~/var-fslc-yocto
$ MACHINE=imx6ul-var-dart DISTRO=fslc-x11 . setup-environment build_x11


E.g. when using the fsl-image-gui image:

$  bitbake -c populate_sdk fsl-image-gui
The SDK should match the rootfs image on the target, otherwise you may experience difficulties when trying to debug application failures.

Install the toolchain/SDK

Install the tools by running the resulted script in tmp/deploy/sdk/.

E.g.

$ tmp/deploy/sdk/fslc-x11-glibc-x86_64-meta-toolchain-armv7at2hf-neon-toolchain-2.2.1.sh

Note: The toolchain/script name depends on your build machine and the bitbaked image/recipe, and may change.

Accept all the default options, and at the end of the installation you should see the following:

SDK has been successfully set up and is ready to be used.

Use the toolchain/SDK

Each time you wish to use the toolchain in a new shell session, you need to source the environment setup script:

$ source /opt/fslc-x11/2.2.1/environment-setup-armv7at2hf-neon-fslc-linux-gnueabi