Pyro Yocto Release
Published on June 27, 2017
A new Yocto 2.3 release, Pyro, is now available for the i.MX series platform from NXP.
For the Impatient
- For Nitrogen6x platform(nitrogen6x, sabrelite, MAX, SOM2, SOM2_QP, nitrogen6_vm, nitrogen6QP_MAX):
- For Nitrogen6x-lite platform:
- For Nitrogen6_SoloX platform:
- For Nitrogen7 platform:
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 https://github.com/boundarydevices/boundary-bsp-platform -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
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
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:
Wifi
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
Bluetooth
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
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/boundary-eval-image.bb
CORE_IMAGE_BASE_INSTALL += "kernel-module-qcacld linux-firmware-bdsdmac bluez5 "
You can also read our blog post about the Silex module.