...
Info | ||
---|---|---|
| ||
If working with a non-kit SOM, there are additional steps required to build this release for your configuration. Please view the notes in the Building the BSP from Source section for the applicable differences. For each SOM configuration there is a required change to the build configuration layers file and the yocto MACHINE value. |
...
Hide If special @anonymous Status colour Yellow title MOVED
This Quickstart provides you with the tools and know-how to install and work with the Linux Board Support Package (BSP) for the phyBOARD-Zeta. This Quickstart shows you how to do everything from installing the appropriate tools and source, to building custom kernels, to deploying the OS, to and exercising the software and hardware. Additionally, gain access to the SOM and baseboard schematics for the phyBOARD-Zeta by registering at the following: http://phytec.com/support/registration/.
...
- phyCORE-i.MX7 SOM
- phyBOARD-Zeta i.MX7 carrier board
- 2x 2x5 pin header to DB9 male connector
- Evaluation board PEB-EVAL-02 (optional)
- LCD Display Adapter with 7" capacitive display PEB-AV-02-TC (optional)
- WiFi/BT module PEB-WLBT-03 (optional)
- Null-Modem RS232 DB9 cable (female to female)
- AC adapter with 2-pin phoenix connector supplying 5V DC, min. 2.5A
- microSD Card for flashing and booting
Note |
---|
See release notes for supported SOM and carrier board versions. |
...
Use the following as a reference for the connector interfaces on the phyBOARD-i.MX7 that will be used in this Quickstart.
Expansion Boards
Use the following images as a reference when connecting any compatible PHYTEC expansion boards.
UART and CAN connectors
Use the following images as a reference when connecting UART and CAN 2x5 pin header to DB9 adapters
Anchor | ||||
---|---|---|---|---|
|
...
Booting the Pre-Built Images
Note |
---|
See Release Notes for information regarding supported Yocto machine configurations, and replace <Yocto Machine> in the steps below with the appropriate machine for your hardware. |
Download the "fsl-image-validation-imx-<Yocto Machine>.sdcard" image which will be used to format a bootable SD card. The binary images for BSP-Yocto-Download the binary images for BSP-Yocto-FSL-iMX7-PD18.1.x from are available on PHYTEC's Artifactory, and images are organized by machine name.
Extract Flash the tarball to your desired working directorySD card image to a micro SD card:
Code Block tarsudo -jxf BSP-Yocto-FSL-iMX7-PD18.1.0.xml.tar.bz2 -C <WORK_DIR>
Note See Release Notes for supported Yocto machine configurations, and replace <Yocto Machine> below with the appropriate machine for your hardware.
Flash the SD card image to a micro SD card:
Code Block sudo dd if=fsl-image-gui-<Yocto Machine>.sdcard of=/dev/sd<SD partition> bs=1M && sync
Note For more information on formatting an SD card, see Creating a Bootable SD Card.
dd if=fsl-image-validation-imx-<Yocto Machine>.sdcard of=/dev/sd<SD partition> bs=1M && sync
Note For more information on formatting an SD card, see Creating a Bootable SD Card.
If using the If using the evaluation module PEB-EVAL-02, plug it into the expansion connector X16 on the carrier board.
- If using the WiFi/BT module PEB-WLBT-03, plug it into the expansion connector header.
- If using the LCD Display, connect the module PEB-AV-02-TC to the AV connectors X3 and X4.
Plug micro SD card into slot on underside of board.
Connect UART cable to the 5x2 pin header labelled "RS-232". This header requires an adapter as well as Null modem cable. When plugged in, the adapter cable should be oriented towards the USB and ethernet interfaces.
Start your favorite terminal software (such as Minicom or TeraTerm) on your host PC and configure it for 115200 baud, 8 data bits, no parity, and 1 stop bit (8n1) with no handshake
Connect 5V power supply to the 2-pin phoenix connector. Looking into the connector, the pin on the left is positive and the one next to it is negative.
- Press the "PWR" button (this may not be necessary if the battery has completely discharged). You will now start to see console output on your terminal window. If everything was done correctly the board should boot completely into Linux, arriving at a login prompt:
"FreescaleNXP i.MX Release Distro 4.
19.
1511-
21.0.
1 <Yocto0 <Yocto Machine>
/dev/ttymxc4
"<Yocto Machine> loginMachine> login: root
- The default login account is root with an empty password.
...
Code Block |
---|
sudo apt-get install gawk wget git-core 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 |
Note |
---|
The above is the recommended package installation for development on a Ubuntu 14.04 LTS Linux distribution. For a breakdown of the packages as well as a list of packages required for other Linux distributions, see the "Required Packages for the Host Development System" section in the Yocto Project Reference Manual: http://www.yoctoproject.org/docs/2.1.1/ref-manual/ref-manual.html#required-packages-for-the-host-development-system |
Verify that the preferred shell for your Host PC is ''bash'' and not ''dash'':
Code Block |
---|
sudo dpkg-reconfigure dash
# Respond "No" to the prompt asking "Install dash as /bin/sh?" |
Repo Tool
Download and install the repo tool. This tool is used to obtain Yocto source from Git.
Code Block |
---|
cd /opt
sudo mkdir bin
# /opt/ directory has root permission, change the permissions so your user account can access this folder. In the following replace <user> with your specific username
sudo chown -R <user>: bin
cd bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ./repo
chmod a+x repo |
Add the repo directory in your PATH, using export from the command line or permanently by including it in .bashrc:
Code Block |
---|
export PATH=/opt/bin/:$PATH |
Git Setup
If you have not yet configured your Git environment on this machine, please execute the following commands to set your user name and email address. See here for more information on getting started with Git.
Code Block |
---|
git config --global user.email "your@email.com"
git config --global user.name "Your Name" |
Server Setup (Optional)
...
title | Click here to see server setup for TFTP, NFS, and Samba (Optional) |
---|
...
Note |
---|
The above is the recommended package installation for development on a Ubuntu 16.04 LTS Linux distribution. For a breakdown of the packages as well as a list of packages required for other Linux distributions, see the "Required Packages for the Host Development System" section in the Yocto Project Reference Manual |
Verify that the preferred shell for your Host PC is ''bash'' and not ''dash'':
Code Block |
---|
sudo dpkg-reconfigure dash
# Respond "No" to the prompt asking "Install dash as /bin/sh?" |
Repo Tool
Download and install the repo tool. This tool is used to obtain Yocto source from Git.
Code Block |
---|
cd /opt
sudo mkdir bin
# /opt/ directory has root permission, change the permissions so your user account can access this folder. In the following replace <user> with your specific username
sudo chown -R <user>: bin
cd bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ./repo
chmod a+x repo |
Add the repo directory in your PATH, using export from the command line or permanently by including it in .bashrc:
Code Block |
---|
export PATH=/opt/bin/:$PATH |
Git Setup
If you have not yet configured your Git environment on this machine, please execute the following commands to set your user name and email address. See here for more information on getting started with Git.
Code Block |
---|
git config --global user.email "your@email.com"
git config --global user.name "Your Name" |
Server Setup (Optional)
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Yocto Build Steps
BSP Directory Setup
Create a directory which will house your BSP development. In this example the BSP directory is /opt/PHYTEC_BSPs/. This is not a requirement and if another location is preferred (ex. ~/PHYTEC_BSPs) feel free to modify. We recommend using /opt over your HOME directory to avoid errors attributed to ~ syntax as well as the sudo requirement for the root filesystem and automation package building. We also recommend creating a package download directory (yocto_dl) separate from the yocto tree (yocto_imx7), as it makes resetting the build environment easier and subsequent build times much faster.
Code Block |
---|
sudo mkdir /opt/PHYTEC_BSPs
cd /opt/
# /opt/ directory has root permission, change the permissions so your user account can access this folder. In the following replace <user> with your specific username
sudo chown -R <user>: PHYTEC_BSPs
cd PHYTEC_BSPs
mkdir yocto_imx7
mkdir yocto_dl
cd yocto_imx7
export YOCTO_DIR=`pwd` |
At this point you will now be able to navigate to the Yocto directory using the $YOCTO_DIR environment variable.
Download the BSP Meta Layers
Download the manifest file for BSP-Yocto-FSL-iMX7-PD18.1.x:
Code Block |
---|
cd $YOCTO_DIR
repo init -u https://stash.phytec.com/scm/pub/manifests-phytec.git -b imx7 -m BSP-Yocto-FSL-iMX7-PD18.1.1.xml |
Download the Yocto meta layers specified in the manifest file:
Code Block |
---|
repo sync |
Start the Build
Run the Yocto build directory setup. The TEMPLATECONF variable is used to set the source of the local configuration files (conf/bblayers.conf and conf/local.conf), which are located in the meta-phytec layer:
Code Block |
---|
cd $YOCTO_DIR
TEMPLATECONF=$YOCTO_DIR/sources/meta-phytec/meta-phytec-fsl/conf source sources/poky/oe-init-build-env build |
Modify the DL_DIR variable in build/conf/local.conf to use your new download directory:
Code Block |
---|
DL_DIR ?= "/opt/PHYTEC_BSPs/yocto_dl" |
Maximize build efficiency by modifying the BB_NUMBER_THREADS variable to suit your host development system. This sets the maximum number of tasks that BitBake should run in parallel. Also set the variable PARALLEL_MAKE to specify the number of threads that make can run. By default, these are set to 4 in build/conf/local.conf:
Code Block |
---|
# Parallelism options - based on cpu count
BB_NUMBER_THREADS ?= "4"
PARALLEL_MAKE ?= "-j 4" |
Info | ||
---|---|---|
| ||
In order to build certain packages included in the FSL meta layers, you need to accept the NXP EULA at '$YOCTO_DIR/sources/meta-fsl-bsp-release/imx/EULA.txt'. Please read it and if you accept it, add the following in build/conf/local.conf:
|
...
Yocto Build Steps
BSP Directory Setup
Create a directory which will house your BSP development. In this example the BSP directory is /opt/PHYTEC_BSPs/. This is not a requirement and if another location is preferred (ex. ~/PHYTEC_BSPs) feel free to modify. We recommend using /opt over your HOME directory to avoid errors attributed to ~ syntax as well as the sudo requirement for the root filesystem and automation package building. We also recommend creating a package download directory (yocto_dl) separate from the yocto tree (yocto_imx7), as it makes resetting the build environment easier and subsequent build times much faster.
Code Block |
---|
sudo mkdir /opt/PHYTEC_BSPs
cd /opt/
# /opt/ directory has root permission, change the permissions so your user account can access this folder. In the following replace <user> with your specific username
sudo chown -R <user>: PHYTEC_BSPs
cd PHYTEC_BSPs
mkdir yocto_imx7
mkdir yocto_dl
cd yocto_imx7
export YOCTO_DIR=`pwd` |
At this point you will now be able to navigate to the Yocto directory using the $YOCTO_DIR environment variable.
Download the BSP Meta Layers
Download the manifest file for BSP-Yocto-FSL-iMX7-PD18.1.x:
Code Block |
---|
cd $YOCTO_DIR
repo init -u https://stash.phytec.com/scm/pub/manifests-phytec.git -b imx7 -m BSP-Yocto-FSL-iMX7-PD18.1.0.xml |
Download the Yocto meta layers specified in the manifest file:
Code Block |
---|
repo sync |
Start the Build
Note |
---|
See Release Notes for supported Yocto machine configurations, and replace <Yocto Machine> below with the appropriate machine for your hardware. |
Run the Yocto build directory setup. The TEMPLATECONF variable is used to set the source of the local configuration files (conf/bblayers.conf and conf/local.conf), which are located in the meta-phytec layer:
Code Block |
---|
cd $YOCTO_DIR
TEMPLATECONF=$YOCTO_DIR/sources/meta-phytec/meta-phytec-fsl/conf MACHINE=<Yocto Machine> source sources/poky/oe-init-build-env build |
Modify the DL_DIR variable in build/conf/local.conf to use your new download directory:
Code Block |
---|
DL_DIR ?= "/opt/PHYTEC_BSPs/yocto_dl" |
Maximize build efficiency by modifying the BB_NUMBER_THREADS variable to suit your host development system. This sets the maximum number of tasks that BitBake should run in parallel. Also set the variable PARALLEL_MAKE to specify the number of threads that make can run. By default, these are set to 4 in build/conf/local.conf:
Code Block |
---|
# Parallelism options - based on cpu count
BB_NUMBER_THREADS ?= "4"
PARALLEL_MAKE ?= "-j 4" |
Info | ||
---|---|---|
| ||
In order to build certain packages included in the FSL meta layers, you need to accept the Freescale EULA at '/opt/yocto/yocto_fsl/sources/meta-fsl-arm/EULA'. Please read it and if you accept it, add the following in build/conf/local.conf:
|
Warning | ||
---|---|---|
The kernel-module-laird-backports-3.5.4.2-r0 recipe will fail to build due to a change in the zip file being downloaded from LSR's website. To resolve this, download 930-0075.zip and 930-0075.zip.done available on PHYTEC's Artifactory and add them to the local download directory specified by DL_DIR (/opt/PHYTEC_BSPs/yocto_dl in this guide). This package provides support for WiFi/BT module PEB-WLBT-03, so if this module is not being used another option is to simply remove the package from the build. To do so, comment out or remove the following lines from $YOCTO_DIR/sources/meta-phytec/meta-phytec-fsl/conf/machine/imx7d-phyboard-zeta-001.conf:
|
Warning | ||||
---|---|---|---|---|
| ||||
|
...
The setup is complete and you now have everything to complete a build. This BSP has been tested with the fsl-image-guivalidation-imx image. It is suggested that you start with this image to verify functionality before building other images. Alternate images are located in various meta layers at meta*/recipes*/images/*.bb. They can be found using the command bitbake-layers show-recipes "*-image*" in $YOCTO_DIR/build/.
The following will start a build from scratch including installation of the toolchain as well as the bootloader, Linux kernel, and root filesystem images.
Warning |
---|
See Release Notes for supported Yocto machine configurations, and replace <Yocto Machine> below with the appropriate machine for your hardware. |
Code Block |
---|
cd $YOCTO_DIR/build MACHINE=<Yocto Machine> bitbake fsl-image-guivalidation-imx |
Built Images
All images generated by bitbake are deployed to $YOCTO_DIR/build/tmp/deploy/images/<Yocto Machine>:
- SD Image: fsl-image-guivalidation-imx-<Yocto Machine>.sdcard
- Bootloader: u-boot.imx
- Kernel: zImage
- Kernel device tree file: zImage-<Yocto Machine>.dtb
- device tree used when FreeRTOS is running on M4: zImage-<Yocto Machine>-m4.dtb
- Root Filesystem: fsl-image-guivalidation-imx-<Yocto Machine>.ext4
Source Locations:
Note that v4.19.1511-phy<X> and v2016v2017.03-phy<X> within the paths pertain to the release tag for the linux and u-boot sources. This matches the value of RELEASE_VER for the corresponding recipes in meta-phytec-fsl. For example, for release PD18.1.0 1 the kernel tag is v4.19.1511-phy4phy1.
- Kernel : $YOCTO_DIR/build/tmp/work/<Yocto Machine>-poky-linux-gnueabi/linux-phytec-fsl/4.19.1511+git_v4.19.1511-phy<X>-r0/git/
- The device tree file to modify within the linux kernel source is: arch/arm/boot/dts/<Yocto Machine>.dts and its dependencies
U-Boot: $YOCTO_DIR/build/tmp/work//<Yocto Machine>-poky-linux-gnueabi/u-boot-phytec/20162017.03+git_v2016v2017.03-phy<X>-r0/ git/
Board file is located at: board/phytec/mx7d_phyboard_zeta/mx7d_phyboard_zeta.c
- Toolchain: $YOCTO_DIR/build/tmp/sysroots/x86_64-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
...
To rebuild u-boot:
Code Block |
---|
MACHINE=<Yocto Machine> bitbake u-boot-phytec -f -c compile && bitbake u-boot-phytec |
To rebuild the Linux kernel:
Code Block |
---|
MACHINE=<Yocto Machine> bitbake linux-phytec-fsl -f -c compile && bitbake linux-phytec-fsl |
The Yocto project's Bitbake User Manual provides useful information regarding build options: http://www.yoctoproject.org/docs/2.1.1/bitbake-user-manual/bitbake-user-manual.html
BSP Documentation
Content by Label | ||||||
---|---|---|---|---|---|---|
|
...