LinRT BSP Digital Data Software LLC 1110 Brickell Ave, Suite 430, Miami, FL 33131, USA LinRT 305-847-9042

LinRT BSP building : Real-Time Linux Yocto BSP for i.MX and x86 SBC

Contents


Installing LinRT Yocto BSP sources

Setup LinRT git user SSH

After receiving the email from the HelpDesk agent that confirms your registration on the LinRT Git server (bitbucket.org), you must initiate SSH authentification by the user on the PC Host where your RSA key is set.

PC-HOST$ ssh -T git@bitbucket.org
authenticated via a deploy key.
You can use git or hg to connect to Bitbucket. Shell access is disabled.
This deploy key has read access to the following repositories:
 
linrt-bsp-phyXXX-imx6/bsp-multifb-helium: john.doe@domain.com --johndoe@Hostname
linrt-bsp-phyXXX-imx6/linrt-base: john.doe@domain.com -- johndoe@Hostname
linrt-bsp-phyXXX-imx6/linrt-multifb-helium: john.doe@domain.com --johndoe@Hostname

Note: don’t use “sudo” or “su” command to do the connection, you must be logged directly on your PC Host with the user account used with the RSA Key given to the LinRT’s HelpDesk support !

Troubleshooting: if the command returns (permission denied) it’s probably that you don’t use the right RSA key setting to connect to the bitbucket server.

Download LinRT Yocto BSP sources

Install repo tool on PC Host :

Note : Google’s repo tool recently dropped support for python2 and now requires at least python3.6
To satisfy the repo tool dependency on Ubuntu 16.04, run the following commands :

$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt-get update
$ sudo apt-get install python3.6

Once the python3.6 package is installed, you can follow the instructions to install the repo tool :

$ mkdir -p ~/bin
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

Note : check if the folder ~/bin/ is set in your default user PATH with the following command :

$ echo $PATH

If it is not set, you can add the ~/bin/ directory in your PATH, using “export” from the command line

$ export PATH=~/bin:$PATH
 or permanently by including it in ~/.bashrc file :
if [ -d "$HOME/bin" ]
 then
   export PATH=$PATH:$HOME/bin
fi

How to build LinRT Yocto BSP images

Get LinRT Yocto BSP layers :

To install LinRT Yocto BSP sources, you should get manifest.xml from the GIT server to synchronize LinRT Yocto BSP layers.
$ mkdir ~/yocto-linrt 
$ cd ~/yocto-linrt
~/yocto-linrt$ repo init -u GIT_PROJECT_ADDRESS -b refs/tags/TAG -m LINRT_MANIFEST_FILE.xml
Select your git project address GIT_PROJECT_ADDRESS :
LinRT BSPGIT PROJECT ADDRESS
Helium MultiFBhttps://linrt@bitbucket.org/linrt/linrt-multifb-helium-manifest.git
Helium Wayland MultiFBhttps://linrt@bitbucket.org/linrt/linrt-wayland-multifb-helium-manifest.git
Helium X11 MultiFBhttps://linrt@bitbucket.org/linrt/linrt-x11-multifb-helium-manifest.git
Oxygen MultiFBhttps://linrt@bitbucket.org/linrt/linrt-multifb-oxygen-manifest.git
Mercury MultiFBhttps://linrt@bitbucket.org/linrt/linrt-multifb-mercury-manifest.git
Cobalt MultiFBhttps://linrt@bitbucket.org/linrt/linrt-multifb-cobalt-manifest.git
To list all revisions refs/tags/, you can use the following command :
$ git ls-remote --tags GIT PROJECT ADDRESS
8ba6f............................516e1be refs/tags/rocko_v1.0
507e3............................d728b3d refs/tags/rocko_v1.0^{}
6f821............................aef040d refs/tags/rocko_v1.1
75fd6............................93bac70 refs/tags/rocko_v1.1^{}
1fc91............................fac6e3c refs/tags/rocko_v1.2-rc2
0d95d............................df19f00 refs/tags/rocko_v1.2-rc2^{}
...
9a22f............................7c22a55 refs/tags/thud_v2.0
a023b............................3b22e62 refs/tags/thud_v2.0-rc1
8027f............................bb22857 refs/tags/thud_v2.0-rc2
d3971............................048bbe0 refs/tags/thud_v2.0-rc2^{}

Select your specific LINRT_MANIFEST_FILE.xml :

PLATFORMLINRT MANIFEST FILE
phyCORE i.MX6phycore-imx6.xml
phyFLEX i.MX6phyflex-imx6.xml

For example, to get LinRT MultiFB Helium Yocto BSP layers revision thud_v2.0 for phyCORE i.MX6 System On Module platform

$ mkdir ~/yocto-linrt
$ cd ~/yocto-linrt
~/yocto-linrt$ repo init -u https://linrt@bitbucket.org/linrt/linrt-multifb-helium-manifest.git -b refs/tags/thud_v2.0 -m phycore-imx6.xml
~/yocto-linrt$ repo sync -j4

LinRT Distributions available for LinRT Multi-FB BSP (depending of your Subscription) :

Helium BSP

LinRT Yocto BSP building - Helium BSPAvailable distros for Helium BSP

  • LinRT Tiny Multi-FB : DISTRO=helium-tiny-multifb
  • LinRT Multi-FB : DISTRO=helium-multifb
  • LinRT Full Multi-FB : DISTRO=helium-full-multifb

Helium Wayland BSP

LinRT Yocto BSP building - X11 Helium BSPAvailable distros for Helium Wayland BSP

  • LinRT Tiny Multi-FB : DISTRO=helium-tiny-multifb
  • LinRT Multi-FB : DISTRO=helium-multifb
  • LinRT Full Multi-FB : DISTRO=helium-full-multifb
  • LinRT Wayland Multi-FB : DISTRO=helium-wayland-multifb
  • LinRT Full Wayland Multi-FB : DISTRO=helium-full-wayland-multifb

Helium X11 BSP

LinRT Yocto BSP building - X11 Helium BSPAvailable distros for Helium X11 BSP

  • LinRT Tiny Multi-FB : DISTRO=helium-tiny-multifb
  • LinRT Multi-FB : DISTRO=helium-multifb
  • LinRT Full Multi-FB : DISTRO=helium-full-multifb
  • LinRT X11 Multi-FB : DISTRO=helium-x11-multifb
  • LinRT Full X11 Multi-FB : DISTRO=helium-full-x11-multifb

Oxygen BSP

LinRT Yocto BSP building - Oxygen BSPAvailable distros for Oxygen BSP

  • LinRT Tiny Multi-FB : DISTRO=oxygen-tiny-multifb
  • LinRT Multi-FB : DISTRO=oxygen-multifb
  • LinRT Full Multi-FB : DISTRO=oxygen-full-multifb

Mercury BSP

LinRT Yocto BSP building - Mercury BSPAvailable distros for Mercury BSP

  • LinRT Tiny Multi-FB : DISTRO=mercury-tiny-multifb
  • LinRT Multi-FB : DISTRO=mercury-multifb
  • LinRT Full Multi-FB : DISTRO=mercury-full-multifb

Cobalt BSP

LinRT Yocto BSP building - Cobalt BSPAvailable distros for Cobalt BSP

  • LinRT Tiny Multi-FB : DISTRO=cobalt-tiny-multifb
  • LinRT Multi-FB : DISTRO=cobalt-multifb
  • LinRT Full Multi-FB : DISTRO=cobalt-full-multifb

Available Machines for LinRT BSP

Phytec phyCORE-i.MX6 SOMs supported by LinRT BSP

MACHINEDESCRIPTION
phyboard-mira-imx6-3PHYTEC phyBOARD-Mira i.MX6 Quad
1GiB RAM, NAND
PB-01501-002.A2, PBA-C-06-002.A2, PCM-058-33230C0I.A3
phyboard-mira-imx6-4PHYTEC phyBOARD-Mira i.MX6 Solo
256MB RAM, NAND
PB-01501-001.A2, PBA-C-06-001.A2, PCM-058-12000D0C.A3
phyboard-mira-imx6-5PHYTEC phyBOARD-Mira i.MX6 Quad
2GiB RAM, 8GiB eMMC
PBA-C-06-002.A2, PCM-058-40233C0I.A0
phyboard-mira-imx6-6PHYTEC phyBOARD-Mira i.MX6 Solo
1GiB RAM, 1GiB NAND with PEB-WLBT-01(Wifi)
PCM-058-33000D0X.A0, PBA-C-06-001.A2
phyboard-mira-imx6-7PHYTEC phyBOARD-Mira i.MX6 DualLite
1GiB RAM, 4GiB eMMC
PBA-C-06-001.A2, PCM-058-30242C0X.A0
phyboard-mira-imx6-8PHYTEC phyBOARD-Mira i.MX6 Quad
1GiB RAM, 4GiB eMMC
PBA-C-06-002.A2, PCM-058-302A3C0X.A0
phyboard-mira-imx6-9PHYTEC phyBOARD-Mira i.MX6 Quad Plus
1GiB RAM, NAND, SPI-NOR
PBA-C-06-002.A2, PCM-058-332B0C0I.A0
phyboard-mira-imx6-10PHYTEC phyBOARD-Mira i.MX6 Quad
1GiB RAM, NAND with PEB-WLBT-01(Wifi)
PB-01501-004.A1, PBA-C-06-002.A2, PCM-058-33230C0I.A3
phyboard-mira-imx6-12PHYTEC phyBOARD-Mira i.MX6 Quad
i.MX6 Quad, 1GB RAM, NAND with RS485
PB-01501-XXX.AX, PBA-C-06-002.A2, PCM-058-33230C0I.A3
phyboard-mira-imx6-14PHYTEC phyBOARD-Mira i.MX6 DualLite
1GiB RAM, 4GiB eMMC
PBA-C-06-001.A2, PCM-058-30242C0X.A0
phyboard-mira-imx6-15PHYTEC phyBOARD-Mira i.MX6 Solo
256MB RAM, NAND
PB-01501-001.A2, PBA-C-06-002.A2, PCM-058-12000D0C.A3

Phytec phyFLEX-i.MX6 SOMs supported by LinRT BSP

MACHINEDESCRIPTION
phyflex-imx6-1PHYTEC phyFLEX-i.MX6 Quad PBA-B-01
1GiB RAM two banks, 16MiB SPI-NOR
PFL-A-02-23237E0.A1
phyflex-imx6-2PHYTEC phyFLEX-i.MX6 Quad PBA-B-01
1GiB RAM one bank, 16MiB SPI-NOR
PFL-A-02-13237E0.A1
phyflex-imx6-3PHYTEC phyFLEX-i.MX6 Quad PBA-B-01
2GiB RAM two banks, 16MiB SPI-NOR
phyflex-imx6-4PHYTEC phyFLEX-i.MX6 Quad PBA-B-01
4GiB RAM two banks, 16MiB SPI-NOR
PFL-A-02-55237E0.A3
phyflex-imx6-5PHYTEC phyFLEX-i.MX6 Quad PBA-B-01
512MiB RAM one bank, 16MiB SPI-NOR
phyflex-imx6-6PHYTEC phyFLEX-i.MX6 DualLite PBA-B-01
1GiB RAM two banks, 16MiB SPI-NOR
PFL-A-02-23247E0X.A1
phyflex-imx6-7PHYTEC phyFLEX-i.MX6 DualLite PBA-B-01
1GiB RAM one bank, 16MiB SPI-NOR
PFL-A-02-13247E0X.A0
phyflex-imx6-8PHYTEC phyFLEX-i.MX6 Solo PBA-B-01
512MiB RAM one bank, no SPI-NOR
PFL-A-02-0200541.A0
phyflex-imx6-9PHYTEC phyFLEX-i.MX6 Solo PBA-B-01
256MiB RAM one bank, no SPI-NOR
phyflex-imx6-10PHYTEC phyFLEX-i.MX6 Solo PBA-B-01
128MiB RAM one bank, no SPI-NOR
phyflex-imx6-11PHYTEC phyFLEX-i.MX6 DualLite PBA-B-01
4GiB RAM two banks, 16MiB SPI-NOR
PFL-A-02-55237E0.A3

Initialize build folder configuration for LinRT Yocto BSP

Initialize build folder and configuration for your subscription, for example with MACHINE : phyboard-mira-imx6-3  and DISTRO : helium-full-multifb :
$ cd ~/yocto-linrt
~/yocto-linrt$ MACHINE=phyboard-mira-imx6-3 DISTRO=helium-full-multifb source setup-environment build

Accept the Freescale’s End User License Agreement (EULA) :

Some BSPs depend on libraries and packages which are covered by Freescale's
End User License Agreement (EULA). To have the right to use these binaries in
your images, you need to read and accept the following...
 
...
 
Vivante
Distribution of Vivante software must be a part of, or embedded within,
Authorized Systems that include a Vivante Graphics Processing Unit.
 
Do you accept the EULA you just read? (y/n) <b>y</b>
EULA has been accepted.

Accept the Freescale’s End User License Agreement (EULA) :

Welcome to Freescale Community BSP
 
The Yocto Project has extensive documentation about OE including a
reference manual which can be found at:
    http://yoctoproject.org/documentation
 
For more information about OpenEmbedded see their website:
    http://www.openembedded.org/
 
You can now run 'bitbake &lt;target&gt;'
 
Common targets are:
    linrt-tiny-image
    linrt-tiny-qt5-image
    meta-toolchain
    meta-toolchain-sdk
    adt-installer
    meta-ide-support
 
Your build environment has been configured with:
 
    MACHINE=phyboard-mira-imx6-3
    SDKMACHINE=i686
    DISTRO=helium-full-multifb
    EULA=1
 
~/yocto-linrt/build$

Available images for LinRT Yocto BSP building

Edit ~/yocto-linrt/build/conf/local.conf and add following lines :

~/yocto-linrt/build$ nano conf/local.conf
 
MACHINE ??= 'phyboard-mira-imx6-3'
DISTRO ?= 'helium-full-multifb'
PACKAGE_CLASSES ?= "package_ipk"
 
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS = "\
    STOPTASKS,${TMPDIR},1G,100K \
    STOPTASKS,${DL_DIR},1G,100K \
    STOPTASKS,${SSTATE_DIR},1G,100K \
    STOPTASKS,/tmp,100M,100K \
    ABORT,${TMPDIR},100M,1K \
    ABORT,${DL_DIR},100M,1K \
    ABORT,${SSTATE_DIR},100M,1K \
    ABORT,/tmp,10M,1K"
PACKAGECONFIG_append_pn-qemu-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
HOSTTOOLS_NONFATAL += " whoami"
CONF_VERSION = "1"
RM_OLD_IMAGE = "1"
 
INHERIT += "rm_work"
RM_WORK_EXCLUDE += ""
 
#IMAGE_FEATURES_append = " dev-pkgs"
 
#IMAGE_INSTALL_append = " rt-tests"
#IMAGE_INSTALL_append = " packagegroup-rauc"
 
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
EXTRA_IMAGE_FEATURES += "tools-debug"
#EXTRA_IMAGE_FEATURES += "eclipse-debug" 
#EXTRA_IMAGE_FEATURES += "qtcreator-debug"
 
LICENSE_FLAGS_WHITELIST_append = " commercial"
 
MIRRORS += " \ 
    git://source.codeaurora.org/external/imx/ git://github.com/nxp-imx/;protocol=https \
    https://source.codeaurora.org/external/imx/ https://github.com/nxp-imx/ \ 
    http://source.codeaurora.org/external/imx/ http://github.com/nxp-imx/ \ 
    gitsm://source.codeaurora.org/external/imx/ gitsm://github.com/nxp-imx/;protocol=https \ 
"
 
DL_DIR ?= "${BSPDIR}/downloads/"
ACCEPT_FSL_EULA = "1"

Notes: if your image provides qt5 framework, you must add in~/yocto-linrt/build/conf/local.conf file the following line more :

EXTRA_IMAGE_FEATURES += "qtcreator-debug"

Build LinRT image

Your HelpDesk subscription includes a specific LinRT Real-Time Yocto BSP sources building and customizing support from these available images (depending of your Subscription packages) :

Standard Package

  • LinRT tiny headless image : IMAGE_NAME = linrt-tiny-image
  • LinRT tiny qt5 image : IMAGE_NAME = linrt-tiny-qt5-image
  • LinRT full multimedia image : IMAGE_NAME = linrt-full-multimedia-image
  • LinRT full multimedia Qt 5 image : IMAGE_NAME = linrt-full-multimedia-qt5-image
  • LinRT full multimedia Qt 5 HTML5 image : IMAGE_NAME = linrt-full-multimedia-qt5-html5-image

Video Capture Package

  • LinRT tiny headless image : IMAGE_NAME = linrt-tiny-image
  • LinRT tiny video capture image : IMAGE_NAME = linrt-tiny-video-capture-image
  • LinRT tiny qt5 image : IMAGE_NAME = linrt-tiny-qt5-image
  • LinRT tiny qt5 video capture image : IMAGE_NAME = linrt-tiny-video-capture-qt5-image
  • LinRT full multimedia image : IMAGE_NAME = linrt-full-multimedia-image
  • LinRT full multimedia video capture image : IMAGE_NAME = linrt-full-multimedia-video-capture-image
  • LinRT full multimedia Qt 5 image : IMAGE_NAME = linrt-full-multimedia-qt5-image
  • LinRT full multimedia video capture Qt 5 image : IMAGE_NAME = linrt-full-multimedia-video-capture-qt5-image

Chromium Package

  • LinRT tiny headless image : IMAGE_NAME = linrt-tiny-image
  • LinRT tiny qt5 image : IMAGE_NAME = linrt-tiny-qt5-image
  • LinRT full multimedia image : IMAGE_NAME = linrt-full-multimedia-image
  • LinRT full multimedia Qt 5 image : IMAGE_NAME = linrt-full-multimedia-qt5-image
  • LinRT full multimedia Qt 5 HTML5 image : IMAGE_NAME = linrt-full-multimedia-qt5-html5-image
  • LinRT full multimedia Chromium HTML5 image : IMAGE_NAME = linrt-full-multimedia-chromium-html5-image

X11 Chromium Package

  • LinRT tiny headless image : IMAGE_NAME = linrt-tiny-image
  • LinRT tiny qt5 image : IMAGE_NAME = linrt-tiny-qt5-image
  • LinRT full multimedia image : IMAGE_NAME = linrt-full-multimedia-image
  • LinRT full multimedia Qt 5 image : IMAGE_NAME = linrt-full-multimedia-qt5-image
  • LinRT full multimedia Qt 5 HTML5 image : IMAGE_NAME = linrt-full-multimedia-qt5-html5-image
  • LinRT full multimedia Chromium HTML5 image : IMAGE_NAME = linrt-full-multimedia-chromium-html5-image
  • LinRT Sato full multimedia image : IMAGE_NAME = linrt-full-multimedia-sato-image
  • LinRT Sato full multimedia Qt 5 HTML5 image : IMAGE_NAME = linrt-full-multimedia-qt5-html5-sato-image
  • LinRT Sato full multimedia Chromium HTML5 image : IMAGE_NAME = linrt-full-multimedia-chromium-html5-sato-image
 To build your LinRT image :
$ cd ~/yocto-linrt
~/yocto-linrt$ source setup-environment build
~/yocto-linrt/build$ bitbake IMAGE_NAME

Kernel configuration for LinRT BSP

Setup and Build the BSP Kernel

To configure kernel LinRT image :
$ cd ~/yocto-linrt
~/yocto-linrt$ source setup-environment build
~/yocto-linrt/build$ bitbake -c menuconfig virtual/kernel

LinRT BSP image installation

See Images and SDKs Wiki page for more information…

 

LinRT Real-Time Linux Yocto BSP Helpdesk Support
Help-Desk LinRT Real-Time Linux Yocto BSP Helpdesk Support