Helium BSP sources building


Installing LinRT Helium BSP

Setup LinRT git user SSH

After receiving the email from the HelpDesk agent that confirms your registration on 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 bitbucket server.

Download LinRT Helium Yocto BSP sources

Install repo tool on PC Host :

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

Note : To add the repo 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 Helium BSP images

Get LinRT Helium Yocto BSP layers :

To install LinRT Yocto BSP sources, you should get manifest.xml from 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 BSP GIT PROJECT ADDRESS
Helium MultiFB https://linrt@bitbucket.org/linrt/linrt-multifb-helium-manifest.git
Helium X11 MultiFB https://linrt@bitbucket.org/linrt/linrt-x11-multifb-helium-manifest.git
Helium KMS https://linrt@bitbucket.org/linrt/linrt-kms-helium-manifest.git
To list all revisions refs/tags/<TAG>, 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^{}
...
8027f............................bb22857 refs/tags/thud_v2.0-rc2
d3971............................048bbe0 refs/tags/thud_v2.0-rc2^{}

Select your specific LINRT_MANIFEST_FILE.xml :

PLATFORM LINRT MANIFEST FILE
phyCORE i.MX6 phycore-imx6.xml
phyFLEX i.MX6 phyflex-imx6.xml

For example, to get LinRT MultiFB Helium Yocto BSP layers revision thud_v2.0-rc2 for phyCORE i.MX6 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-rc2 -m phycore-imx6.xml
~/yocto-linrt$ repo sync -j4

Available Distributions for LinRT Helium BSP :

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

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

LinRT Distributions available for KMS Helium BSP (depending of your Subscription packages) :

  • LinRT KMS : DISTRO =helium-kms
  • LinRT X11 KMS : DISTRO=helium-x11-kms
  • LinRT Wayland KMS : DISTRO=helium-wayland-kms/li>

Available Machines for LinRT Helium BSP :

Phytec SOMs supported for phyCORE BSP

MACHINE DESCRIPTION
phyboard-mira-imx6-3 PHYTEC phyBOARD-Mira i.MX6 Quad
1GiB RAM, NAND
PB-01501-002.A2, PBA-C-06-002.A2, PCM-058-33230C0I.A3
phyboard-mira-imx6-4 PHYTEC phyBOARD-Mira i.MX6 Solo
256MB RAM, NAND
PB-01501-001.A2, PBA-C-06-001.A2, PCM-058-12000D0C.A3
phyboard-mira-imx6-5 PHYTEC phyBOARD-Mira i.MX6 Quad
2GiB RAM, 8GiB eMMC
PBA-C-06-002.A2, PCM-058-40233C0I.A0
phyboard-mira-imx6-6 PHYTEC 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-7 PHYTEC phyBOARD-Mira i.MX6 DualLite
1GiB RAM, 4GiB eMMC
PBA-C-06-001.A2, PCM-058-30242C0X.A0
phyboard-mira-imx6-8 PHYTEC phyBOARD-Mira i.MX6 Quad
1GiB RAM, 4GiB eMMC
PBA-C-06-002.A2, PCM-058-302A3C0X.A0
phyboard-mira-imx6-9 PHYTEC phyBOARD-Mira i.MX6 Quad Plus
1GiB RAM, NAND, SPI-NOR
PBA-C-06-002.A2, PCM-058-332B0C0I.A0
phyboard-mira-imx6-10 PHYTEC 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-12 PHYTEC 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-14 PHYTEC phyBOARD-Mira i.MX6 DualLite
1GiB RAM, 4GiB eMMC
PBA-C-06-001.A2, PCM-058-30242C0X.A0
phyboard-mira-imx6-15 PHYTEC phyBOARD-Mira i.MX6 Solo
256MB RAM, NAND
PB-01501-001.A2, PBA-C-06-002.A2, PCM-058-12000D0C.A3

Phytec SOMs supported for phyFLEX BSP

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

Initialize build folder configuration for LinRT Helium 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 Helium BSP :

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"
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 OS image support from these available images (depending of your Subscription packages) :

  • 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
  • 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
  • LinRT Sato full multimedia video capture Qt 5 image : IMAGE_NAME = linrt-full-multimedia-video-capture-qt5-image
 To build your LinRT image :
$ cd ~/yocto-linrt
~/yocto-linrt$ source setup-environment build
~/yocto-linrt/build$ bitbake IMAGE_NAME

Build LinRT SDK

To build the SDK for your LinRT image :

$ cd ~/yocto-linrt
~/yocto-linrt$ source setup-environment build
~/yocto-linrt/build$ bitbake IMAGE_NAME -c populate_sdk

Kernel configuration for Helium BSP

Setup Helium BSP Kernel

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

See Platform tuning Wiki page for more information…

LinRT Helium BSP image installation

See Images and SDKs Wiki page for more information…

 

Help-Desk