Skip to content
This repository has been archived by the owner on Aug 9, 2020. It is now read-only.
/ edm-yocto-bsp Public archive

(Archived, please change to use tn-imx-yocto-manifest) Yocto Project manifests

Notifications You must be signed in to change notification settings

TechNexion/edm-yocto-bsp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 

Repository files navigation

TechNexion Yocto 2.4 rocko 4.9.y GA BSP

This BSP is a TechNexion release providing support NXP i.mx series processors

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

Download the BSP source:

For NXP i.mx8mq SOC, e.g.,PICO-IMX8M:

$: PATH=${PATH}:~/bin
$: mkdir edm_yocto
$: cd edm_yocto
$: repo init -u https://github.com/TechNexion/edm-yocto-bsp.git -b rocko_4.9.y_GA -m imx-4.9.88-2.0.0_ga.xml
$: repo sync -j8

Create build environment

Method 1:

Set up build environment on host PC:

Our build environment is under ubuntu 16.04.

Install required packages:

$: sudo apt-get install gawk wget git git-core diffstat unzip texinfo gcc-multilib build-essential \
chrpath socat cpio python python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping libsdl1.2-dev xterm \
language-pack-en coreutils texi2html file docbook-utils \
python-pysqlite2 help2man desktop-file-utils \
libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake \
groff curl lzop asciidoc u-boot-tools libreoffice-writer \
sshpass ssh-askpass zip xz-utils kpartx vim screen

Method 2:

Download virtual machine with pre-installed Ubuntu 16.04 and packages.

ftp://ftp.technexion.net/development_resources/development_tools/vm

This virtual machine is validated to build Yocto 2.4.

Method 3:

Use the dockerfile to setup the build environment:

After fetch yocto source code, create a docker image from a dockerfile.

$: cd sources/meta-edm-bsp-release/tools/container
$: docker build -t tn_ubuntu1604 .
$: docker run -it -u jenkins -v ${directory_in_host_machine}:${directory_in_docker} tn_ubuntu1604 /bin/bash
(-v: use to bind volume to the directory in host machine)
(password: jenkins)

Prepare WIFI/BT firmware

There are two kinds of WLAN module on TechNexion boards. One is Broadcom(BRCM) WLAN(includes BCM4330/BCM4339(AP6335)/BCM43438(AP6212)), the other is Qualcomm(QCA) WLAN(includes QCA9377-5/QCA6174). Because of the license restriction, please contact TechNexion FAE or Sales to get licensed firmware files.

For QCA WLAN and BT: qca9377-3_qca6174-3_firmware_20191128.zip

After getting the firmware binary: .. Decompress the tarball and put all the firmware files into sources/meta-edm-bsp-release/recipes-kernel/linux-firmware/files.

The directory sources/meta-edm-bsp-release/recipes-kernel/linux-firmware/files is the place to put WIFI/BT firmware files.

  1. Add firmware package in Yocto build: Add argument "WIFI_FIRMWARE=y" in build instruction. Please refer to following explanation.

Configurations for setup script

“MACHINE” is the target of build. It usually corresponds to the name of SOM or SBC.

For more information, please check the file under “sources/meta-edm-bsp-release/conf/machine”.

“-b” specify the build directory.

“DISPLAY” is the disply type. This option only works on i.mx6 (i.mx6 Solo/Dual Lite/Dual/Quad) SOMs and doesn’t work for i.mx6ul, i.mx6sx and i.mx7.

“BASEBOARD” is the baseboard type.

“WIFI_MODULE” is to choose what kind of WLAN is on board. (qca/brcm/ath-pci)

“WIFI_FIRMWARE” is to choose to add WLAN firmware files in target rootfs or not. (y/all)

Table 1. Build configurations for supported hardware
Parameter Available options Description

MACHINE

pico-imx8m

Compatible with TechNexion PICO-IMX8M (i.MX8M Quad)

pico-imx6

Compatible with TechNexion PICO-IMX6 (i.MX6 Solo/DL/Dual/Quad)

pico-imx7

Compatible with TechNexion PICO-IMX7

pico-imx6ul

Compatible with TechNexion PICO-IMX6UL/ULL

edm-imx6

Compatible with TechNexion EDM-IMX6 (i.MX6 Solo/DL/Dual/Quad/Quad Plus)

edm-imx7

Compatible with TechNexion EDM-IMX7

tep1-imx7

Compatible with TechNexion TEP-0500-IMX7/TEP-0700-IMX7

tep1-imx6ul

Compatible with TechNexion TEP-0500-IMX6UL/TEP-0700-IMX6UL

tek-imx6

Compatible with TechNexion TEK3-IMX6/TEP-1010-IMX6/TEP-1560-IMX6/TWP-1010-IMX6/TWP-1560-IMX6 (i.MX6 Solo/DL/Dual/Quad/Quad Plus)

tek3-imx6ul

Compatible with TechNexion TEK3-IMX6UL

DISTRO

fsl-imx-x11

Only X11 graphics. X11 graphics are not supported on i.MX8.

fsl-imx-wayland

Wayland weston graphics

fsl-imx-xwayland

Wayland graphics and X11. X11 applications using EGL are not supported

fsl-imx-fb

Frame Buffer graphics - no X11 or Wayland. Frame Buffer is not supported on i.MX8.

BASEBOARD

(It specifies the 'baseboard' variable in uEnv.txt)

pi, nymph, dwarf, hobbit

Compatible with TechNexion PICO-IMX6 (i.MX6 Solo/DL/Quad/UL/ULL).

gnome, fairy, tc0700, tc1000

Compatible with TechNexion EDM-IMX6 (i.MX6 Solo/DL/Dual/Quad/Quad Plus). (EDM-IMX7D only support gnome)

WIFI_MODULE

(It specifies the 'wifi_module' variable in uEnv.txt)

'qca', 'brcm', 'ath-pci'

Choose what kind of WLAN is on board.

WIFI_FIRMWARE

'y' or 'all'

'y' option depends on 'WIFI_MODULE'. If you specify 'WIFI_MODULE' as 'qca'. Then, it only add 'qca' firmware package in yocto build. 'all' option will add both 'qca', 'brcm' and 'ath-pci' firmware package in yocto build. Please refer to section "Prepare WIFI/BT firmware" to ensure you already put firmware files in the right place.

DISPLAY

(Parameter "DISPLAY" only works on i.mx6/i.mx8m) (It specifies the 'displayinfo' variable in uEnv.txt)

lvds7

(i.mx6) 7 inch 1024x600 LVDS panel

lvds10

(i.mx6) 10 inch 1280x800 LVDS panel

lvds15

(i.mx6) 15 inch 1366x768 LVDS panel

hdmi720p

(i.mx6) 1280x720 HDMI

hdmi1080p

(i.mx6) 1920x1080 HDMI

lcd

(i.mx6) 5 inch/7 inch 800x480 TTL parallel LCD panel

lvds7_hdmi720p

(i.mx6) Dual display output to both 7 inch LVDS and HDMI

custom

(i.mx6) Reserved for custom panel

mipi5

(i.mx8m) MIPI-DSI 5 inch panel(with ILI9881 controller)

hdmi

(i.mx8m) HDMI monitor (the resolution is decided by EDID)

-b

<build dir>

Assign the name of build directory

Table 2. Choosing Yocto target image
Image name Target

core-image-minimal

A small image that only allows a device to boot

core-image-base

A console-only image that fully supports the target device hardware

core-image-sato

An image with Sato, a mobile environment and visual style for mobile devices. The image supports X11 with a Sato theme, Pimlico applications. It contains a terminal, an editor and a file manager

fsl-image-machine-test

An FSL Community i.MX core image with console environment - no GUI interface

fsl-image-validation-imx

Builds an i.MX image with a GUI without any Qt content.

fsl-image-qt5-validation-imx

Builds an opensource Qt 5 image. These images are only supported for i.MX SoC with hardware graphics. They are not supported on the i.MX 6UltraLite, i.MX 6UltraLiteLite, and i.MX 7Dual.

Build Yocto for TechNexion target platform

Please don’t add argument 'WIFI_FIRMWARE=y' if you don’t put firmware files in "sources/meta-edm-bsp-release/recipes-kernel/linux-firmware/files" . It would result in build failure. Please refer to section "Prepare WIFI/BT firmware".

For PICO-IMX8M

Wayland image for HDMI monitor:

$: DISPLAY=hdmi WIFI_FIRMWARE=y DISTRO=fsl-imx-wayland MACHINE=pico-imx8m source edm-setup-release.sh -b build-wayland
$: bitbake fsl-image-qt5-validation-imx

Wayland image for MIPI-DSI 5-inch panel:

$: DISPLAY=mipi5 WIFI_FIRMWARE=y DISTRO=fsl-imx-wayland MACHINE=pico-imx8m source edm-setup-release.sh -b build-wayland
$: bitbake fsl-image-qt5-validation-imx

DISTRO: DISTRO can be replaced to "fsl-imx-xwayland"

For PICO-IMX6

PI baseboard, QT5 with X11 image for HDMI output:

For PICO-IMX6 with QCA WLAN:
$: WIFI_FIRMWARE=y WIFI_MODULE=qca DISTRO=fsl-imx-x11 MACHINE=pico-imx6 BASEBOARD=pi source edm-setup-release.sh -b build-x11-pico-imx6
For PICO-IMX6 with BRCM WLAN:
$: WIFI_FIRMWARE=y WIFI_MODULE=brcm DISTRO=fsl-imx-x11 MACHINE=pico-imx6 BASEBOARD=pi source edm-setup-release.sh -b build-x11-pico-imx6
$: bitbake fsl-image-qt5-validation-imx

NYMPH baseboard, QT5 with X11 image for 7 inch LVDS panel:

For PICO-IMX6 with QCA WLAN:
$: DISPLAY=lvds7 WIFI_FIRMWARE=y WIFI_MODULE=qca DISTRO=fsl-imx-x11 MACHINE=pico-imx6 BASEBOARD=nymph source edm-setup-release.sh -b build-x11-pico-imx6
For PICO-IMX6 with BRCM WLAN:
$: DISPLAY=lvds7 WIFI_FIRMWARE=y WIFI_MODULE=brcm DISTRO=fsl-imx-x11 MACHINE=pico-imx6 BASEBOARD=nymph source edm-setup-release.sh -b build-x11-pico-imx6
$: bitbake fsl-image-qt5-validation-imx

For PICO-IMX7

PI baseboard, QT5 with X11 image for 7 inch/5 inch TTL-LCD panel:

For PICO-IMX7 with QCA WLAN:
$: WIFI_FIRMWARE=y WIFI_MODULE=qca DISTRO=fsl-imx-x11 MACHINE=pico-imx7 BASEBOARD=pi source edm-setup-release.sh -b build-x11-pico-imx7
For PICO-IMX7 with BRCM WLAN:
$: WIFI_FIRMWARE=y WIFI_MODULE=brcm DISTRO=fsl-imx-x11 MACHINE=pico-imx7 BASEBOARD=pi source edm-setup-release.sh -b build-x11-pico-imx7
$: bitbake fsl-image-qt5-validation-imx

For PICO-IMX6UL/ULL

PI baseboard, QT5 with X11 image for HDMI output:

For PICO-IMX6UL/ULL with QCA WLAN:
$: WIFI_FIRMWARE=y WIFI_MODULE=qca DISTRO=fsl-imx-x11 MACHINE=pico-imx6ul BASEBOARD=pi source edm-setup-release.sh -b build-x11-pico-imx6ul
For PICO-IMX6UL/ULL with BRCM WLAN:
$: WIFI_FIRMWARE=y WIFI_MODULE=brcm DISTRO=fsl-imx-x11 MACHINE=pico-imx6ul BASEBOARD=pi source edm-setup-release.sh -b build-x11-pico-imx6ul
$: bitbake fsl-image-qt5-validation-imx

NYMPH baseboard, QT5 with X11 image for 7 inch LVDS panel:

For PICO-IMX6UL/ULL with QCA WLAN:
$: DISPLAY=lvds7 WIFI_FIRMWARE=y WIFI_MODULE=qca DISTRO=fsl-imx-x11 MACHINE=pico-imx6ul BASEBOARD=nymph source edm-setup-release.sh -b build-x11-pico-imx6ul
For PICO-IMX6UL/ULL with BRCM WLAN:
$: DISPLAY=lvds7 WIFI_FIRMWARE=y WIFI_MODULE=brcm DISTRO=fsl-imx-x11 MACHINE=pico-imx6ul BASEBOARD=nymph source edm-setup-release.sh -b build-x11-pico-imx6ul
$: bitbake fsl-image-qt5-validation-imx

For EDM-IMX6

GNOME baseboard, QT5 with X11 image for 7 inch/5 inch TTL-LCD panel:

For EDM-IMX6 with QCA WLAN:
$: WIFI_FIRMWARE=y WIFI_MODULE=qca DISTRO=fsl-imx-x11 MACHINE=edm-imx6 BASEBOARD=gnome source edm-setup-release.sh -b build-x11-edm-imx6
For EDM-IMX6 with BRCM WLAN:
$: WIFI_FIRMWARE=y WIFI_MODULE=brcm DISTRO=fsl-imx-x11 MACHINE=edm-imx6 BASEBOARD=gnome source edm-setup-release.sh -b build-x11-edm-imx6
$: bitbake fsl-image-qt5-validation-imx

FAIRY baseboard, QT5 with X11 image for 7 inch LVDS panel:

For EDM-IMX6 with QCA WLAN:
$: DISPLAY=lvds7 WIFI_FIRMWARE=y WIFI_MODULE=qca DISTRO=fsl-imx-x11 MACHINE=edm-imx6 BASEBOARD=fairy source edm-setup-release.sh -b build-x11-edm-imx6
For EDM-IMX6 with BRCM WLAN:
$: DISPLAY=lvds7 WIFI_FIRMWARE=y WIFI_MODULE=brcm DISTRO=fsl-imx-x11 MACHINE=edm-imx6 BASEBOARD=fairy source edm-setup-release.sh -b build-x11-edm-imx6
$: bitbake fsl-image-qt5-validation-imx

TC0700 baseboard, QT5 with X11 image for 7 inch LVDS panel:

For EDM-IMX6 with QCA WLAN:
$: DISPLAY=lvds7 WIFI_FIRMWARE=y WIFI_MODULE=qca DISTRO=fsl-imx-x11 MACHINE=edm-imx6 BASEBOARD=tc0700 source edm-setup-release.sh -b build-x11-edm-imx6
For EDM-IMX6 with BRCM WLAN:
$: DISPLAY=lvds7 WIFI_FIRMWARE=y WIFI_MODULE=brcm DISTRO=fsl-imx-x11 MACHINE=edm-imx6 BASEBOARD=tc0700 source edm-setup-release.sh -b build-x11-edm-imx6
$: bitbake fsl-image-qt5-validation-imx

TC1000 baseboard, QT5 with X11 image for 10 inch LVDS panel:

For EDM-IMX6 with QCA WLAN:
$: DISPLAY=lvds10 WIFI_FIRMWARE=y WIFI_MODULE=qca DISTRO=fsl-imx-x11 MACHINE=edm-imx6 BASEBOARD=tc1000 source edm-setup-release.sh -b build-x11-edm-imx6
For EDM-IMX6 with BRCM WLAN:
$: DISPLAY=lvds10 WIFI_FIRMWARE=y WIFI_MODULE=brcm DISTRO=fsl-imx-x11 MACHINE=edm-imx6 BASEBOARD=tc1000 source edm-setup-release.sh -b build-x11-edm-imx6
$: bitbake fsl-image-qt5-validation-imx

For EDM-IMX7

GNOME baseboard, QT5 with X11 image for 7 inch/5 inch TTL-LCD panel:

For EDM-IMX7 with QCA WLAN:
$: WIFI_FIRMWARE=y WIFI_MODULE=qca DISTRO=fsl-imx-x11 MACHINE=edm-imx7 BASEBOARD=gnome source edm-setup-release.sh -b build-x11-edm-imx7
$: bitbake fsl-image-qt5-validation-imx

For TEP-0500-IMX7/TEP-0700-IMX7

TEP-0500-IMX7/TEP-0700-IMX7, QT5 with X11 image:

For TEP1-IMX7 with PCIE WLAN:
$: WIFI_FIRMWARE=y WIFI_MODULE=ath-pci DISTRO=fsl-imx-x11 MACHINE=tep1-imx7 source edm-setup-release.sh -b build-x11-tep1-imx7
$: bitbake fsl-image-qt5-validation-imx

For TEP-0500-IMX6UL/TEP-0700-IMX6UL

TEP-0500-IMX6UL/TEP-0700-IMX6UL, QT5 with X11 image:

$: DISTRO=fsl-imx-x11 MACHINE=tep1-imx6ul source edm-setup-release.sh -b build-x11-tep1-imx6ul
$: bitbake fsl-image-qt5-validation-imx

For TEK3-IMX6

TEK3-IMX6 BOX PC, QT5 with X11 image for HDMI output:

For TEK3-IMX6 with PCIE WLAN:
$:  WIFI_FIRMWARE=y WIFI_MODULE=ath-pci DISTRO=fsl-imx-x11 MACHINE=tek-imx6 source edm-setup-release.sh -b build-x11-tek-imx6
$: bitbake fsl-image-qt5-validation-imx

For TEP-1010-IMX6/TEP-1560-IMX6/TWP-1010-IMX6/TWP-1560-IMX6

TEP-1010-IMX6/TWP-1010-IMX6, QT5 with X11 image:

For TEP-1010-IMX6/TWP-1010-IMX6 with PCIE WLAN:
$:  DISPLAY=lvds10 WIFI_FIRMWARE=y WIFI_MODULE=ath-pci DISTRO=fsl-imx-x11 MACHINE=tek-imx6 source edm-setup-release.sh -b build-x11-tek-imx6
$: bitbake fsl-image-qt5-validation-imx

TEP-1560-IMX6/TWP-1560-IMX6, QT5 with X11 image:

For TEP-1560-IMX6/TWP-1560-IMX6 with PCIE WLAN:
$:  DISPLAY=lvds15 WIFI_FIRMWARE=y WIFI_MODULE=ath-pci DISTRO=fsl-imx-x11 MACHINE=tek-imx6 source edm-setup-release.sh -b build-x11-tek-imx6
$: bitbake fsl-image-qt5-validation-imx

For TEK3-IMX6UL

TEK3-IMX6UL, QT5 with X11 image:

$: DISTRO=fsl-imx-x11 MACHINE=tek3-imx6ul source edm-setup-release.sh -b build-x11-tek3-imx6ul
$: bitbake fsl-image-qt5-validation-imx

QTWebkit

To start to go to /usr/share/qt5/examples/webkitwidgets/browser and run browser

Qt

Note that Qt has both a commercial and open source license options. Make the decision about which license to use before starting work on custom Qt applications. Once custom Qt applications are started with an open source Qt license the work can not be used with a commercial Qt license. Work with a legal representative to understand the differences between each license. Default builds use an open source Qt license.

Note Qt is not supported on i.MX 6UltraLite and i.MX 7Dual. It works on X11 backend only but is not a supported feature.

Image Deployment

When build completes, the generated release image is under “${BUILD-TYPE}/tmp/deploy/images/${MACHINE}”: $: bzip2 -fd fsl-image-XXX.rootfs.sdcard.bz2 "fsl-image-XXX.rootfs.sdcard"

If the i.mx8m module is only with eMMC, please use following tool to flash image into eMMC. Please set boot jumper to boot from serial download mode, then this tool will mount eMMC as USB mass storage:

Please follow the userguide below to flash the image into your target board to deploy yocto.

MFG tool: (can be excuted under both MS Windows and Linux)

PICO-IMX8M(1GB/2GB/3GB/4GB DRAM):

ftp://ftp.technexion.net/development_resources/development_tools/installer/

About

(Archived, please change to use tn-imx-yocto-manifest) Yocto Project manifests

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •