Software Release – Yocto 2.3 BSP

yoctoproject_logo_cmyk

Gateworks would like to announcethe release & support of Yocto 2.3 on the Ventana Family of Single Board Computers that feature the NXPi.MX6 processor. Yocto 2.3is under the code name Pyro. Yocto is a Linux operating system that Gateworks uses for video input and output, networking, GUI, IoT and more. Gateworks has added enhancementsto Yocto 2.3 thus creating the Gateworks Yocto 2.3 BSP.

Gateworks Yocto 2.3 BSP Highlights:

  • Using the gateworks_fslc_3.14_1.0.x_ga kernel
  • gstreamer-1.12 with many optional plugins enabled
  • gstreamer-imx-0.12.0 – provides access to hardware accelerated codecs, scaling colorspace conversions and compositing
  • 34 additional gstreamer plugins providing more codec/source/sink options
  • Updated gcc 4.9.2 -> 6.3.0
  • Updated bluez4 -> bluez5 (changed in Yocto 2.0)
  • Changed uClibc 0.9.3 -> musl 1.1.16 (changed in Yocto 2.2)
  • Changed midori browser -> ephiphany browser (changed in Yocto 2.0)
  • Changed libmad -> libmpg123 (MP3 audio decoder lib changed as the mad project is no longer maintained) (changed in Yocto 2.2)
  • Changed udev -> eudev (for compatibility when using sysvinit with newer kernels) (changed in Yocto 2.1)
  • Vivante GPU kernel driver (galcore) built as loadable kernel module (allowing flexibility to use an older kernel with a newer graphics release)
  • Changedfsl-alsa-plugins -> imx-alsa-plugins
  • and more changes listed here

To get started, Gateworks has posted Pre-Built images on the Yocto Wiki page. This includes tarballs and ubis for multimedia and gui images. The wiki page also documents building Yocto 2.3from source.

Yocto Software Wiki Page

Please update to the GateworksYocto 2.3 BSP and contact Gateworks with any questions. The support team is happy and available to work with you!

Android Lollipop Embedded Software Release

lollipop

Gateworks has just released Android Lollipop support for the Ventana family of Single Board Computers!

Notable updates include:

  • Update to the Android Open Source Projects 5.1.1 code base
  • Freescale i.MX6 performance and stability improvements
  • New3.14 based Linux kernel with many improvements
  • Vivante graphics libraries v5.0.11 p7
Gateworks recommends Lollipopfor all future Android support.

To get started with Android Lollipop, Click the Link Below:

 

Customizing Android & Yocto Splash Screens

lcd_gateworks_logo

Customizing Android & Yocto Splash Screens

Have you ever wanted to replace that ugly default logo or animation that is shown when your system boots up? Now you can with custom splash screens!

What is a Splash Screen?

  • The logo or image displayed on screen during the boot process of an embedded system

3 Splash Screens can be Customized:

  • Bootloader
  • Linux Kernel
  • Operating System

Why are Splash Screens Important?

  • Splash screen are displayed immediately conveying proper operation and responsiveness to the user
  • Replacing the splash screen logo with a company logo will effectively brand a product for customer deployment

Readmore on the Gateworks Software Wiki:
Customizing the Splash Screen

New Software Release: OpenWrt 16.02

openwrt_logo

Gateworks would like to announcethe release & support of OpenWrt 16.02 on the Ventana and Laguna family of Single Board Computers. This OpenWrt release falls under the Designated Driverrelease of OpenWrt. OpenWrt isa Linux operating system that Gateworks uses for networking centric tasks, wireless access points, router functions, IoT and more. Please review the below updates and highlights and update to OpenWrt 16.02.

OpenWrt 16.02Updates and Highlights:

  • General:
    • Moved to git for SCM of choice
    • Gateworks System Controller drivers
    • Feeds bumped to 2016-02-17
    • Updated to latest wireless drivers (backports-20151218)
    • IEEE802.11 adhoc throughput increased for HT rates (iw 4.3)
    • Bump to Linux 4.4.0 Kernel
    • busybox-1.24.1
    • gcc-5.2.0
    • binutils-2.25.1
    • Moved from uclibc to musl-1.1.12
  • Ventana:
    • Bump to Linux 4.4.0 Kernel from 3.14.16
    • ~50% increased FEC driver performance
    • l2cache enabled
    • Hardware crypto support
    • squashfs+ubifs overlay for recovery
    • dsa/swconfig support for GW16083
    • HDMI out, no VPU/GPU
    • LVDS out, no VPU/GPU
    • Low-Latency RS485 support
  • Laguna:
    • Bump to Linux 4.4.0 Kernel from 3.10.49
    • GW2393 Support

To get started, Gateworks has posted Pre-Built images on the Wiki page. The wiki page also documents building from source.

Please try OpenWrt 16.02 and contact Gateworks with any questions. Their support team is happy and available to work with you!

Gateworks Product Change Notification

TagCloudHighlightTEMPLATE

Gateworks has world classcustomer support. Part of this supportincludes keeping customers up to date with any changes to the single board computers that Gateworks designs and manufactures. Customers expect to be notified of any changes so they can be prepared properly.

Gateworks provides it’s Product Change Notification (PCN) service to notify the customer of any of the following:

  • A new revision of anystandard product single board computer.
  • GSC Firmware Updates
  • Pre-Built Firmware that is shipped on standard product single board computers.
  • Hardware Errata

Gateworks has a page on their Wiki site dedicated to PCN notices as well as a mailing list that will automatically email any updates.

For more information and to join the mailing list, please view the PCN Wiki Site.

For customers who require revision locking, Gateworks offers a Specials program. More information can be found on the Specials Program Wiki Site.

There are many ways to stay connected to Gateworks. Gateworks recommends viewing our wiki section that describes all of the ways here.

Embedded Android App & OS Development

Android is growing fast inembedded applications. TheGateworks Android Development kitis a great starting point for customers that need to get going quickly with both the hardware and software.

To aid in Android software development, Gateworks has developed an example Android application showcasing the interaction of the software with the Gateworks Android hardware. The application features support for the user GPIO, LEDs and more. An easy to useAndroidlibrary is also provided which can be utilized for any customapplication development.

Gateworks has documented Android Software onthe following wiki pages:

  • OS Development –This wiki page coversitems dealing with the lower level operating system. This includes items on the serial console command line such as init scripts, ADB, partitions, command line networking, LED control, GPIO control and other hardware integration.
  • App Development – This wiki pagedetails the building of anAndroid App(APK file) independent of building the entire Android OS. Topics covered include setting up the Android Studio IDE, writing sample code for a Hello World App, as well as using an external Gateworks code library for accessing low level items through the app such as GPIOs, LEDs and more.
    • Gateworks Android Library – This is a library that allows easy integration to low level system items such as LEDs, GPIO, PWM and voltage and temperature.

Gateworks Android Demo App

Gateworks has used the information above to create a Gateworks Demo App that is publicly available on GitHub here. The app features auser friendly front end for controlling some hardware features on the board utilizing the GateworksUtil library. Screenshots of the app can be seen below:

gateworks-demo

Figure 1. (Above) LED control of the trigger and the on / off state. GPIO as input or output and state.

gateworks-demo_hwmon

Figure 2. (Above)Hardware system statistics

gateworks-demo_pwm

Figure 3. (Above)PWM enable, period and duty cycle.

References:

GStreamer Compositing for Streaming H.264 Video

Gateworks recently featured a blog in which 8 video cameras were connected to a Gateworks Ventana SBC and then displayed on a HDMI monitor. This is useful for localized applications. For remote applications there is another solution.

Remote applications require streaming the multiple video streams over the network (Ethernet or WiFi). For bandwidth efficiency, all camera inputs can be joined together into a single frame and then transmitted across the network.

streamingdiagram3

To join all the streams into a single frame, a software element of GStreamercalled a compositor is used. Older versions of the compositor relied on the CPU and caused choppy video. Gateworks recently started using gstreamer-imx which contains a hardware accelerated compositor which is far superior. With this compositor, each stream can be positioned on the frame and then linked to a RTSP stream in the H.264 format.

An example is shown with two Gateworks Ventana SBCs that are on the same network.

Start the following pipeline on the SBC with the cameras connected:

gst-variable-rtsp-server -u \ "imxv4l2videosrc device=/dev/video2 queue-size=55 ! queue2 ! c.sink_0 \ imxv4l2videosrc device=/dev/video3 queue-size=55 ! queue2 ! c.sink_1 \ imxv4l2videosrc device=/dev/video4 queue-size=55 ! queue2 ! c.sink_2 \ imxv4l2videosrc device=/dev/video5 queue-size=55 ! queue2 ! c.sink_3 \ imxv4l2videosrc device=/dev/video6 queue-size=55 ! queue2 ! c.sink_4 \ imxv4l2videosrc device=/dev/video7 queue-size=55 ! queue2 ! c.sink_5 \ imxv4l2videosrc device=/dev/video8 queue-size=55 ! queue2 ! c.sink_6 \ imxv4l2videosrc device=/dev/video9 queue-size=55 ! queue2 ! c.sink_7 \ imxg2dcompositor name=c background-color=0xffffff \ sink_0::xpos=0 sink_0::ypos=0 sink_0::width=320 sink_0::height=360 sink_0::fill_color=0x00000000 \ sink_1::xpos=320 sink_1::ypos=0 sink_1::width=320 sink_1::height=360 sink_1::fill_color=0x00000000 \ sink_2::xpos=640 sink_2::ypos=0 sink_2::width=320 sink_2::height=360 sink_2::fill_color=0x00000000 \ sink_3::xpos=960 sink_3::ypos=0 sink_3::width=320 sink_3::height=360 sink_3::fill_color=0x00000000 \ sink_4::xpos=0 sink_4::ypos=360 sink_4::width=320 sink_4::height=360 sink_4::fill_color=0x00000000 \ sink_5::xpos=320 sink_5::ypos=360 sink_5::width=320 sink_5::height=360 sink_5::fill_color=0x00000000 \ sink_6::xpos=640 sink_6::ypos=360 sink_6::width=320 sink_6::height=360 sink_6::fill_color=0x00000000 \ sink_7::xpos=960 sink_7::ypos=360 sink_7::width=320 sink_7::height=360 sink_7::fill_color=0x00000000 \ ! queue2 ! video/x-raw, width=1280, height=720 ! imxipuvideotransform \ ! imxvpuenc_h264 bitrate=20000 ! rtph264pay name=pay0 pt=96"

Then, on the receiving board that is connected to an HDMI display, start the following pipeline with the actual IP address (example IP below) of the board with the cameras:

gst-launch-1.0 rtspsrc location=rtsp://172.24.10.210:9099/stream latency=100 ! \queue2 ! decodebin ! autovideosink

For more information andcode examples, please visit the related Gateworks Software Wiki links below:

 

i.MX6 GStreamer-imx Plugins – Tutorial & Example Pipelines

Gateworks would like to announce the support of the GStreamer-imx plugins starting with Yocto 1.8on the Ventana family of Single Board Computers.

gstreamerpipeline

Gateworks, the leading supplier of Powerful ARM based Single Board Computer solutions using the Freescale i.MX6, has invested countless engineering hours researching and mastering GStreamer for the i.MX series of processors. Gateworks would like to share this GStreamer research with the rest of the i.MX community of developers!

There are two main versions of GStreamer used on the i.MX6 processor:0.10 and 1.0. Version 1.0 is now the latest standard.

The i.MX6 processor has hardware blocks such as the IPU (image processing unit), VPU (video processing unit), and GPU (graphical processing unit). The main advantage of using these hardware blocks is that there is no CPU cost for decoding/encoding a stream because another hardware block in the i.MX6 takes care of it. This leavestheCPU free to deal with other programs etc.

The GStreamer app works with ‘plugins’. A plugin comprises of elements that can do work on a media stream. For example, the imxvpudec is a VPU based decoder plugin.

This post is specifically about the plugins. There are different versions and sets of plugins available.

Gateworks has chosen to use the GStreamer-imx plugins for the following reasons:

  • Open Source Development model: The project is on github and is very active
  • The main developer has been a GStreamer contributer for some time now and is very active in the GStreamer community
  • The source is very well documented and easy to follow
  • Things are done in a very standard GStreamer way

Plugin List

For a thorough description of each plugin, why and how to use it, please visit the Gateworks Software Wiki GStreamer Page

The following is a list of plugins provided by the latest version of gstreamer-imx (0.11.0)

Type Plugin(s) Element(s) Comments
Audio Decoder imxaudio imxuniaudiodec Uses i.MX uniaudio codecs for decoding
Audio Encoder imxaudio imxmp3audioenc Uses i.MX for MP3 audio encoding
Device Sources imxv4l2video imxv4l2videosrc Get camera source via v4l2
Video Decoder imxvpu imxvpudec VPU Based decoder
Video Encoder imxvpu imxvpuenc_mjpeg; imxvpuenc_mpeg4; imxvpuenc_h264; imxvpuenc_h263 VPU Based encoders
Video Render (sink) imxg2d; imxpxp; imxeglvivsink; imxipu imxg2dvideosink; imxpxpvideosink; imxeglvivsink; imxipuvideosink g2d1, ipu1, pxp2, and egl (overlay) video sinks
Video Converter imxg2d; imxpxp; imxipu imxg2dvideotransform; imxpxpvideotransform; imxipuvideotransform g2d, pxp, egl and ipu video filter/converter/scalars3
Video Compositing imxg2d; imxipu imxg2dcompositor, imxipucompositor gpu/ipu accelerated compositing

1. The g2d sink is very flexible in the types of input video it can take, but doesn’t have the ability to convert to as many formats as the IPU can. On the other hand, the IPU is very picky with it’s input (e.g. requiring a 1px offset) and the kernel driver is very undocumented, but as stated before, it can convert between many colorspace formats.
2. Note that the PXP sinks are only applicable to the i.mx6solo and i.mx6dl processors.
3. Please see note 1 above.

Plugin Example Pipeline

For example, to encode a video from a camera on /dev/video2 into h.264 and save it to a file:

#Take camera input /dev/video2, encode it to h264 at a bitrate of 10mbit/s (CBR) and save to a file.
gst-launch-1.0 imxv4l2videosrc device=/dev/video2 ! imxvpuenc_h264 bitrate=10000 ! filesink location=/tmp/file.mp4

Many more pipeline examples are described and listed on the Gateworks Software Wiki GStreamer Pipelines page

Summary

Using GStreamer 1.0 with the GStreamer-imx plugins is a powerful way to access and apply the multimedia capabilities of the Freescale i.MX6 processors on the Gateworks SBCs.

For more information, visit theGateworks Software Wiki GStreamer Pipelines page

If there are other examples you would like to see, please add to the discussion!

Yocto 1.8 Linux BSP – Gateworks i.MX6 SBCs

yoctoproject_logo_cmyk

Gateworks would like to announcethe release & support of Yocto 1.8 on the Ventana Family of Single Board Computers that feature the Freescale i.MX6 processor. Yocto 1.8 is under the code name Fido. Yocto is a Linux operating system that Gateworks uses for video input and output, networking, GUI, IoT and more. Gateworks recommends all customers and engineers update from Yocto 1.7 to Yocto 1.8.

Yocto 1.8 Updates and Highlights:

  • Updated Linux Kernel. The kernel has been updated to the Gateworks downstream 3.14 vendor kernel.
  • Updated the gstreamer video framework to gstreamer-imx and gstreamer-1.0
    • Updated to the gstreamer-imx community based plugins for utilizing i.MX6 hardwareacceleration to provide increased flexibility over what is provided fromFreescale in gst-fsl-plugins
    • Included RTSP server application, gst-variable-rtsp-server
    • More gstreamer-imx information is available here
  • AVC8000nano Video Capture Mini-PCIe card for up to 8x D1 inputs
    • The driver is now loaded by default in Yocto 1.8 and tested with gstreamer-imx
    • This is very useful for surveillance and compositing many video sources into one screen
    • Find more information here
  • Updated uboot-envtools
  • Updated gsc-update tool
  • Support for the GW16113 IO Expansion module via the gwsoc software tool. More information available here.

To get started, Gateworks has posted Pre-Built images on the Yocto Wiki page. This includes tarballs and ubis for multimedia and gui images. The wiki page also documents building Yocto 1.8 from source.

Yocto Software Wiki Page

Please update to Yocto 1.8 and contact Gateworks with any questions. Their support team is happy and available to work with you!

Android KitKat Software Release for Ventana SBCs

androidkitkat

Gateworks is proud to announce the release of Android KitKat for it’s family of Ventana SBCs. The source and pre-built images for Android 4.4.3 (KitKat) have been released.

To find out what is new in KitKat 4.4 compared to the prior Android JellyBean release, please see the Android documentation: http://www.android.com/versions/kit-kat-4-4/

Notable changes include:

  • Update to the Android Open Source Project’s 4.4.3 code base
  • Added NAND flash support (for Ventana boards that have 2GB NAND)
  • Added support for new products such as the GW551x and GW552x
  • Freescale has added manyIMX6 performance and stability improvements.
  • Newer 3.10.53 based Linux kernel which has many improvements.

Freescale has verified that their Kitkat 4.4.3 BSP (which Gateworks BSP is sourced from), passes Android Compatibility Test Suite (CTS 4.4_r3).

We recommend everyone switch to this new branch for all future Android support.

To get started, followthebuilding instructions on GateworksSoftware Wiki site here: http://trac.gateworks.com/wiki/Android/Building#BuildingAndroidforVentanafromsource