introduction to nxp yocto

47
Introduction to NXP Yocto October 2020 DK Development Kit CB Carrier Board SOM System on Module Engineering Since 2003 delivering proven designs

Upload: others

Post on 30-May-2022

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to NXP Yocto

Introduction to NXP Yocto

October 2020

DKDevelopment Kit

CBCarrier Board

SOMSystem on Module

EngineeringSince 2003 delivering proven designs

Page 2: Introduction to NXP Yocto

www.somlabs.com

Agenda

❑Introduction to the development virtual machine

❑Explaining Yocto project structure

❑SoMLabs meta-layer and hardware support

❑Building system and SDK

❑System installation

❑Building C application with Yocto SDK

❑Creating a new recipe

Page 3: Introduction to NXP Yocto

www.somlabs.com

Exercises

❑/home/dev/Excercises/Workshop1/

❑Lab1 - Building C application with SDK

❑Lab2 - Adding a new recipe

❑Lab3 - Run application on system boot

Page 4: Introduction to NXP Yocto

www.somlabs.com

SoMLabs virtual machine

Page 5: Introduction to NXP Yocto

www.somlabs.com

SoMLabs virtual machine

❑Oracle VirtualBox 6.1 with Extension Pack (www.virtualbox.org)

❑At least 165 GB free disk space

❑Bridged network adapter

❑SSH access

❑Login: dev

❑Password: dev

Page 6: Introduction to NXP Yocto

www.somlabs.com

SoMLabs virtual machine

From host machine:

❑ssh dev@<ip_address>

❑password: dev

or

❑ssh [email protected]

❑password: dev

Page 7: Introduction to NXP Yocto

www.somlabs.com

Building system and SDK

Page 8: Introduction to NXP Yocto

www.somlabs.com

Building system and SDK

❑Installing required packages:

sudo apt-get install repo gawk wget git diffstat unzip texinfo gcc-

multilib build-essential chrpath socat libsdl1.2-dev xterm sed cvs

subversion coreutils texi2html docbook-utils python-pysqlite2

help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-

mesa-dev mercurial autoconf automake groff curl lzop asciidoc u-

boot-tools

Page 9: Introduction to NXP Yocto

www.somlabs.com

Building system and SDK

❑Downloading the sourcesmkdir imx-yocto-bsp

cd imx-yocto-bsp

repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-

linux-zeus -m imx-5.4.3-2.0.0.xml

repo sync

cd sources

git clone -b zeus https://github.com/SoMLabs/imx-meta-somlabs.git meta-somlabs

Page 10: Introduction to NXP Yocto

www.somlabs.com

Building system and SDK

❑Configuring the build (imx-setup-release.sh)

echo "BBLAYERS += \"\${BSPDIR}/sources/meta-somlabs\"" >> $BUILD_DIR/conf/bblayers.conf

echo "LICENSE_FLAGS_WHITELIST = \"commercial\"" >> $BUILD_DIR/conf/local.conf

Page 11: Introduction to NXP Yocto

www.somlabs.com

Building system and SDK

❑Selecting the machine:

visionsom-8mm-cb-std

visioncb-6ull-std-emmc-btwifi

visioncb-6ull-std-emmc

visioncb-6ull-std-sd-btwifi

visioncb-6ull-std-sd

DISTRO=fsl-imx-wayland MACHINE=<SELECTED_MACHINE> source imx-setup-release.sh -b <BUILD_DIRECTORY>

Page 12: Introduction to NXP Yocto

www.somlabs.com

Building system and SDK

❑Building the system:

bitbake fsl-image-validation-imx

image is located in tmp/deploy/images

❑Building the SDK:

bitbake fsl-image-validation-imx -c populate_sdk

installer is located in tmp/deploy/sdk

Page 13: Introduction to NXP Yocto

www.somlabs.com

Building system and SDK

❑Detailed instruction is located in the meta-somlabs repository

README file and on wiki website:

github.com/SoMLabs/imx-meta-somlabs/blob/zeus/README.md

wiki.somlabs.com/index.php/VisionSOM_imx-meta-somlabs

Page 14: Introduction to NXP Yocto

www.somlabs.com

Yocto project structure

Page 15: Introduction to NXP Yocto

www.somlabs.com

Yocto project structure

Page 16: Introduction to NXP Yocto

www.somlabs.com

Yocto project structure

Page 17: Introduction to NXP Yocto

www.somlabs.com

Yocto project structure

Page 18: Introduction to NXP Yocto

www.somlabs.com

SoMLabs meta-layer and

hardware support

Page 19: Introduction to NXP Yocto

www.somlabs.com

SoMLabs meta-layer and hardware support

❑Support for SoMLabs modules and carrier boards:

VisionSOM-6ULL

VisionSOM-8Mmini

❑Sources for kernel and u-boot:

github.com/SoMLabs/somlabs-linux-imx

github.com/SoMLabs/somlabs-uboot-imx

❑Demo applications

Page 20: Introduction to NXP Yocto

www.somlabs.com

SoMLabs meta-layer and hardware support

Page 21: Introduction to NXP Yocto

www.somlabs.com

SoMLabs meta-layer and hardware support

Page 22: Introduction to NXP Yocto

www.somlabs.com

SoMLabs meta-layer and hardware support

Page 23: Introduction to NXP Yocto

www.somlabs.com

SoMLabs meta-layer and hardware support

Page 24: Introduction to NXP Yocto

www.somlabs.com

SoMLabs meta-layer and hardware support

Page 25: Introduction to NXP Yocto

www.somlabs.com

System installation

Page 26: Introduction to NXP Yocto

www.somlabs.com

System installation

❑Copy image to host machine:scp [email protected]:imx-yocto-bsp/build-visionsom-8mm-cb-std/tmp/deploy/images/visionsom-

8mm-cb-std/fsl-image-validation-imx-visionsom-8mm-cb-std.sdcard.bz2 .

❑Extracting image file:bunzip2 -dkf fsl-image-validation-imx-visionsom-8mm-cb-std.sdcard.bz2

Page 27: Introduction to NXP Yocto

www.somlabs.com

System installation

❑Installing on SD-card:

sudo dd if=fsl-image-validation-imx-visionsom-8mm-cb-std.sdcard

of=/dev/sdX bs=1M status=progress

sudo sync

Page 28: Introduction to NXP Yocto

www.somlabs.com

System installation

❑Obtaining UUU tool from NXP:

github.com/NXPmicro/mfgtools

github.com/NXPmicro/mfgtools/releases

❑Copying bootloader image to the host system:

scp [email protected]:imx-yocto-bsp/build-visionsom-8mm-cb-

std/tmp/deploy/images/visionsom-8mm-cb-std/imx-boot-visionsom-8mm-cb-std-

sd.bin-flash_evk .

Page 29: Introduction to NXP Yocto

www.somlabs.com

System installation

❑Installing on eMMC:

sudo ./uuu -v -b emmc_all imx-boot-visionsom-8mm-cb-std-sd.bin-flash_evk fsl-

image-validation-imx-visionsom-8mm-cb-std.sdcard

Page 30: Introduction to NXP Yocto

www.somlabs.com

System installation

❑Connecting to the system (serial port)

sudo screen /dev/ttyACM0 115200

Page 31: Introduction to NXP Yocto

www.somlabs.com

System installation

❑Connecting to the system (SSH)• ssh root@<IP>

• ssh [email protected]

Page 32: Introduction to NXP Yocto

www.somlabs.com

Building C application with

Yocto SDK

Page 33: Introduction to NXP Yocto

www.somlabs.com

Building C application

❑Configuring the environment

. /opt/fsl-imx-wayland/5.4-zeus/environment-setup-aarch64-poky-linux

Page 34: Introduction to NXP Yocto

www.somlabs.com

Building C application

❑Source code

/home/dev/Excercises/Workshop1/Lab1/main.c

❑Compilation

$CC main.c -o hello

Page 35: Introduction to NXP Yocto

www.somlabs.com

Building C application

❑Running the example

Page 36: Introduction to NXP Yocto

www.somlabs.com

Creating a new recipe

Page 37: Introduction to NXP Yocto

www.somlabs.com

Creating a new recipe

❑meta-somlabs/recipes-somlabs/somlabs-example:somlabs-example/

├── somlabs-example

│ └── main.c

└── somlabs-example.bb

❑/home/dev/Excercises/Workshop1/Lab2cd ~/imx-yocto-bsp/sources/meta-somlabs/recipes-somlabs/

cp -r ~/Excercises/Workshop1/Lab2/somlabs-example .

Page 38: Introduction to NXP Yocto

www.somlabs.com

Creating a new recipe

❑/meta-somlabs/recipes-somlabs/somlabs-example/somlabs-

example/main.c

Page 39: Introduction to NXP Yocto

www.somlabs.com

Creating a new recipe

❑/meta-somlabs/recipes-somlabs/somlabs-example/somlabs-example.bb

Page 40: Introduction to NXP Yocto

www.somlabs.com

Creating a new recipe

❑meta-somlabs/recipes-fsl/images/fsl-image-validation-imx.bbappend

PACKAGE_INSTALL += " \

somlabs-demo \

somlabs-example \

"

Page 41: Introduction to NXP Yocto

www.somlabs.com

Creating a new recipe

❑Building new imagessh [email protected]

cd ~/imx-yocto-bsp

DISTRO=fsl-imx-wayland MACHINE=visionsom-8mm-cb-std source imx-setup-

release.sh -b build-visionsom-8mm-cb-std

bitbake fsl-image-validation-imx

Page 42: Introduction to NXP Yocto

www.somlabs.com

Creating a new recipe

❑Installing new imagescp [email protected]:imx-yocto-bsp/build-visionsom-8mm-cb-std/tmp/deploy/images/visionsom-8mm-cb-std/fsl-image-validation-imx-visionsom-8mm-cb-std.sdcard.bz2 .

bunzip2 -dkf fsl-image-validation-imx-visionsom-8mm-cb-std.sdcard.bz2

scp [email protected]:imx-yocto-bsp/build-visionsom-8mm-cb-std/tmp/deploy/images/visionsom-8mm-cb-std/imx-boot-visionsom-8mm-cb-std-sd.bin-flash_evk .

sudo ./uuu -v -b emmc_all imx-boot-visionsom-8mm-cb-std-sd.bin-flash_evk fsl-image-validation-imx-visionsom-8mm-cb-std.sdcard

Page 43: Introduction to NXP Yocto

www.somlabs.com

Autostart application

Page 44: Introduction to NXP Yocto

www.somlabs.com

Creating a new recipe

❑meta-somlabs/recipes-somlabs/somlabs-example:somlabs-example/

├── somlabs-example

│ ├── main.c

│ └── somlabs-example.service

└── somlabs-example.bb

❑/home/dev/Excercises/Workshop1/Lab3cd ~/imx-yocto-bsp/sources/meta-somlabs/recipes-somlabs/

cp -r ~/Excercises/Workshop1/Lab3/somlabs-example .

Page 45: Introduction to NXP Yocto

www.somlabs.com

Creating a new recipe

❑meta-somlabs/recipes-somlabs/somlabs-example/somlabs-example.bb

Page 46: Introduction to NXP Yocto

www.somlabs.com

Creating a new recipe

❑meta-somlabs/recipes-somlabs/somlabs-example/somlabs-

example/somlabs-example.service

Page 47: Introduction to NXP Yocto

Connecting the FutureCustomer Centric