• 07/14/2017
  • Public Content
Contents

Programmers Guide

The guide is now based on Ref-OS-IoT, a new distribution of Linux operating system that replaces Ostro as the reference OS for the Intel Joule compute module. Ref-OS-IoT has many similarities with the Ostro distribution, as both are based on the Linux kernel and use Yocto Project tools. The OS version number naming convention is typically vYYMM with each version striving to continuously improve platform performance, stability and user experience while enabling top features requested by the community. The initial release was v1702 and was based on linux-yocto-4.4 kernel through to it's v1705 release. Now, with the latest v1706 release the kernel version has been updated to linux-intel-4.9.
This section focuses on advanced programming topics for the Reference Operating System for IoT.
OS Migration
Migrating to the Ref-OS-IoT distribution enables an accelerated update cadence and closer alignment between the OS image, the BIOS, support documentation and code samples.
We are very excited about this new model. Ref-OS-IoT enables these major features:
  • Linux kernel updated to linux-intel-4.9 in v1706; Linux kernel linux-yacto-4.4 in versions 1702-1705
  • Support for system standby in the S0i3 state when all devices are in a compatible state
  • MIPI CSI imaging and gstreamer vaapi support that enables the module ISP to simultaneously support a 5MP fixed focus and 13MP variable focus camera
  • Real-time H.264 encode for a 4K stream at 30fps, 4K HDMI output with audio, 1080p video streaming over Wi-Fi and UVC webcam up to 4K resolution
  • Audio support for HDA and raw I2S codecs, when devices are connected to module expansion board
  • XFCE graphical desktop shell provides a desktop-lite experience when using the micro HDMI connector
  • A bundled GNU build toolchain to enable rapid prototyping
  • CDC USB serial console, Ethernet, and mass storage support via USB type-C cable and serial communication via Bluetooth
  • Valgrind Tools for debugging
  • Supports Python, NodeJS, OpenJDK 1.8.0, and GCC as native application runtime environments (see section below)
  • Intel® Math Kernel Library for Deep Neural Networks , an open source performance library for Deep Learning applications
  • Supports Wi-Fi* Direct which allows two devices to establish a peer-to-peer connection using Wi-Fi* technology without the need for an intermediary access point such as a router
How to Determine the Version You Have
From the command line on your development platform, enter the command:
cat /etc/*-release
Information about the Reference Operating System for IoT build is displayed, as shown in the example output below.
ID="ref-os-iot" NAME="Ref-Os-Iot" VERSION="1.0+snapshot-20170216" VERSION_ID="1.0+snapshot-20170216" PRETTY_NAME="Ref-Os-Iot 1.0+snapshot-20170216" BUILD_ID="20170216004909"
In the version line, look for the year and month, in this case 201702. This example shows the v1702 release.
Best Known Configuration (BKC)
The table below shows the firmware and operating system versions which can be considered together to be best-known configurations (BKC). Where known, incompatibilities between non-BKC software ingredients (for example, an older OS version used with the latest firmware version) will be stated in their associated release notes, but it is highly recommended to always use a BKC combination.
Firmware (BIOS) Version
OS version (Ref-OS-IoT)
1J2
1706
1H3
1705
1F1
1704
1D1
1703
193
1702
Yocto Project
The Ref-OS-IoT is a Linux* distribution built with tools from the Yocto project. At some point in the process, the developer will want to create their own embedded images (OS + Applications) for testing on sample products.
See building a custom recipe for more information.
Applications
User space applications can be written in a number of programming languages as long as they are compatible with the final build process where the applications are bundled with the operating system to create a cohesive, embedded device software image.
A
pplication runtime environments which are natively supported in Ref-OS-IoT include:
Most pre-compiled C and C++ applications can be expected to function, depending on the specific libraries used by the application.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804