...
Note |
---|
See release notes for supported SOM and carrier board versions. |
About the hardware
Connector Interfaces
...
Use the following as a reference for the connector interfaces on the phyBOARD-i.MX7 that will be used in this Quickstart.
...
Note | ||
---|---|---|
| ||
Not seeing output on the console?
|
Anchor | ||||
---|---|---|---|---|
|
...
Building Images from Source
...
This section explains how to build your BSP from sourcessource.
Development Host Setup
Host Debian Packages
Yocto development requires certain packages to be installed. Run the following commands to ensure you have the packages installed:
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)
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Building With Bitbake
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-PD17.2.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-PD17.2.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 |
Add the the new download directory to build/conf/local.conf:
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, write the following in build/conf/local.conf:
|
The setup is complete and you now have everything to complete a build. This BSP has been tested with the fsl-image-gui 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.
Code Block |
---|
cd $YOCTO_DIR/build MACHINE=<Yocto Machine> bitbake fsl-image-gui |
Built Images
All images generated by bitbake are deployed to $YOCTO_DIR/build/tmp/deploy/images/<Yocto Machine>:
- SD Image: fsl-image-gui-<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-gui-<Yocto Machine>.ext4
Source Locations:
- Kernel: $YOCTO_DIR/build/tmp/work/<Yocto Machine>-poky-linux-gnueabi/linux-phytec-fsl/4.1.15+git_v4.1.15-phy1-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/2016.03+git_v2016.03-phy1-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-
Build Time Optimizations
The build time will vary depending on the package selection and Host performance. Beyond the initial build, after making modifications to the BSP, a full build is not required. Use the following as a reference to take advantage of optimized build options and reduce the build time.
To rebuild Barebox:
Code Block |
---|
bitbake u-boot-phytec -f -c compile && bitbake u-boot-phytec |
To rebuild the Linux kernel:
Code Block |
---|
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 | ||||||
---|---|---|---|---|---|---|
|
...