Pyro Yocto Release

Published on June 27, 2017

Archived Notice

This article has been archived and may contain broken links, photos and out-of-date information. If you have any questions, please Contact Us.

A new Yocto 2.3 release, Pyro, is now available for the i.MX series platform from NXP.

For the Impatient

How to Burn

To burn the image file to a sdcard, run this command assuming your sdcard is mounted on /dev/sdc

~$ sudo umount /dev/sdc* ~$ zcat boundary-eval-image-nitrogen6x-pyro.sdcard.gz | sudo dd of=/dev/sdc bs=1M

How to Replicate

This image uses a new "pyro" boundary-bsp-platform that can be used to build images for our boards. Lots of this is identical to what was present in our previous images, although a lot has been improved. This is mostly a clone of fsl-community-bsp-platform with meta-browser, meta-qt5, and meta-boundary added in. There is also a Boundary-Devices-centric setup-environment script with a central download area and cache and some extras to the default local.conf.

Firstly, you’ll need to create the download/cache folders and give r/w access.

~$ sudo mkdir -p /opt/freescale/yocto/imx ~$ sudo mkdir -p /opt/freescale/yocto/sstate-cache ~$ sudo chmod -R 777 /opt/freescale

To build the image, you’ll need these packages installed as well as this repo tool that can be installed like this:

~$ sudo apt-get install repo

Now create your build directory and initialize everything.

~$ mkdir ~/pyro ~$ cd ~/pyro ~/pyro$ repo init -u -b pyro ~/pyro$ repo sync

Now setup the environment for building. In this example I’m targeting the nitrogen6x, however nitrogen6x-lite, nitrogen6sx, and nitrogen7 are all also valid MACHINE targets here. Use whatever your platform is. Take a look through those MACHINE configuration files linked, you'll notice the nitrogen6x MACHINE configuration covers many different boards. The other three configurations cover only one board.

There is a new DISTRO variable which controls what sort of image you're building. You can see all the fslc-DISTROs here. This variable controls what sort of graphics the image is based on. If the image is X11 based, then you'd select DISTRO=fslc-x11, for wayland you'd select fslc-wayland, xwayland fslc-xwayland and so on.

Our boundary-eval-image is X11 based, so you'll need to select DISTRO=fslc-x11. Then choose whichever MACHINE is relevant for you.

~/pyro$ MACHINE=nitrogen6x DISTRO=fslc-x11 . setup-environment boundary-eval-image

Now bitbake boundary-eval-image

~/pyro/boundary-eval-image$ bitbake boundary-eval-image

Now after some time this should build the same image as above. The image file will deploy to ~/pyro/boundary-eval-image/tmp/deploy/images/{MACHINE}/boundary-eval-image-{MACHINE}.sdcard.gz. Feel free to tweak and add things as you see fit.


Chromium 52.0.2743.76 is available in this image, same version as the previous Yocto release. Even though chrome://gpu states video is hardware accelerated, embedded video such as Youtube is a bit choppy for unknown reasons. Video is much better in Firefox.



Firefox is also available. It's version is 45.5.1esr.


Video Input Tests

If you have our ov5640-mipi camera, ov5642 camera, or our HDMI input daughterboard the image includes easy desktop icons to launch tests for the respective hardware.


Launching the respective video input test will show up on the screen and look like this:



The builds include a wifi auto-start script which will connect to any open wireless network, or any secured network that you have configured. To add a wifi network with security, run this command and reboot and your board should automatically connect to the network.

root@nitrogen6x:~# wpa_passphrase <network> <passphrase> >> /etc/wpa_suplicant.conf root@nitrogen6x:~# reboot


For products with Bluetooth, you'll be able to connect using these commands:

root@nitrogen6x:~# echo 0 > /sys/class/rfkill/rfkill0/state root@nitrogen6x:~# echo 1 > /sys/class/rfkill/rfkill0/state root@nitrogen6x:~# hciattach -t 30 -s 115200 /dev/ttymxc2 texas 3000000 flow Found a Texas Instruments' chip! Firmware file : /lib/firmware/ti-connectivity/TIInit_7.6.15.bts Loaded BTS script version 1 texas: changing baud rate to 3000000, flow control to 1 Bluetooth: HCI UART driver ver 2.3 Bluetooth: HCI UART protocol H4 registered Bluetooth: HCI UART protocol LL registered Device setup complete root@nitrogen6x:~# hciconfig hci0 up root@nitrogen6x:~# hcitool scan Scanning ... 11:22:DE:AD:BE:EF    Some Device
For Silex: Use this hciattach command instead: hciattach /dev/ttymxc2 qca 1000000 -t30 flow

Silex Module Support

If you have a silex wifi/bluetooth module on your board these images come with that supported. Now that this firmware is publicly available, it is now included in the build. To remove, comment out this line in recipes-sato/images/

CORE_IMAGE_BASE_INSTALL += "kernel-module-qcacld linux-firmware-bdsdmac bluez5 "

You can also read our blog post about the Silex module.