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
if [ -d "$HOME/bin" ] then export PATH=$PATH:$HOME/bin fi
How to build LinRT Yocto BSP images
Get 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
LinRT BSP | GIT PROJECT ADDRESS |
Helium MultiFB | https://linrt@bitbucket.org/linrt/linrt-multifb-helium-manifest.git |
Helium Wayland MultiFB | https://linrt@bitbucket.org/linrt/linrt-wayland-multifb-helium-manifest.git |
Helium X11 MultiFB | https://linrt@bitbucket.org/linrt/linrt-x11-multifb-helium-manifest.git |
Oxygen MultiFB | https://linrt@bitbucket.org/linrt/linrt-multifb-oxygen-manifest.git |
Mercury MultiFB | https://linrt@bitbucket.org/linrt/linrt-multifb-mercury-manifest.git |
Cobalt MultiFB | https://linrt@bitbucket.org/linrt/linrt-multifb-cobalt-manifest.git |
$ 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 :
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 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
Helium Wayland BSP
Helium X11 BSP
Oxygen BSP
Mercury BSP
Cobalt BSP
Available Machines for LinRT BSP
Phytec phyCORE-i.MX6 SOMs supported by LinRT 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 phyFLEX-i.MX6 SOMs supported by LinRT 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 |
phyflex-imx6-11 | PHYTEC 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
$ 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 <target>' 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
$ 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
$ 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…