From wiki.emacinc.com
Jump to: navigation, search
TODO: {{#todo:(1-12-15-12:30->MG+)(1.12.15-18:05->MD+)(11.10.15-16:05->KY+)|Michael Gloff|oe 5,mg,Complete}}

The OE 5.X releases represent the next generation of EMAC's embedded Linux distribution. The new crop of embedded machines on the market have become powerful enough to justify bringing some of the best parts of Linux distributions that are targeted towards servers and desktops into the embedded realm. OE 5.X is designed to make developing software for embedded Linux easier than ever before.

New Features

Quite a few new features are being introduced with OE 5.X to support the goal of streamlining the development process and improving the embedded Linux software development experience. These features can be broken down into the following categories.

Operating System

The underlying operating system, Linux, has seen a refresh to the much more modern 4.9 kernel on ARM and x86 systems. This updated kernel provides improved support for the ARM architecture, new drivers for new hardware, and the Device Tree File System for ARM hardware. Device Tree is a new way of specifying hardware parameters which pulls memory offset specifications (and similar) out of the kernel binary and puts them into a separate file which can be maintained independently of the kernel.


OE 5.X uses more modern filesystems to enable faster access to files, larger maximum filesystem sizes, and improved wear leveling on the underlying flash devices. The following filesystems are now a part of OE 5.X:

  • ext4 - for eMMC/mSATA/SD/CF devices
  • JFFS2 - for NAND flash devices

The filesystem is now generated using the Yocto build system, which enables a more streamlined and simpler process for generating custom filesystems based on our available base images. The Yocto Project is hosted by engineers at Intel, and is built upon the time tested OpenEmbedded project.


EMAC OE 5.X includes a new SDK with an updated GNU gcc compiler which brings enhanced optimization capabilities, advanced code generation, and improved support for C++11 features. The gcc cross compilers come bundled with support for the CMake build system which greatly eases the work involved in creating a build system for today's complex software. EMAC OE 5.X provides tools for generating the base CMake files from the commandline or from the IDE, allowing you to get started quickly whether you choose to use the commandline or an IDE for your development work.


EMAC OE 5.X now includes the Qt Creator IDE as the standard development environment. This IDE provides a polished, sophisticated development environment which can be used for developing any type of application in C or C++. For Qt, it provides a sophisticated GUI editor and code generation wizards to enable RAD. The integrated help system is of use whether the issue with the application under development is related to Qt, Linux, or just standard C/C++.


EMAC OE 5.X now includes tools to enable development to ease common tasks.

Some of the development work in a typical project requires performing complex tasks which are done so infrequently that most developers need to look them up each time they're performed. These tasks typically have eaten into a project's time by taking much longer than anticipated to perform. EMAC OE 5.X includes tools to make these tasks quick, simple, and intuitive. These tasks include:

  • Timezone Configuration.
  • Splashscreen Configuration.
  • Touchscreen Calibration.
  • Configuring software to automatically start on boot.
  • Configuring a system to log messages to a remote syslog server.

Easy SDK Installation

The EMAC OE 5.X SDK, IDE, tools and examples can be installed on most common Linux distributions, though only Ubuntu 16.04 is currently tested and therefore recommended.

See Installing EMAC OE 5.0 SDK

Release Testing

EMAC has completely revamped its release testing for the EMAC OE 5.X release series. The new testing process provides a far more comprehensive and exhaustive method of testing our software and hardware together to ensure the highest quality experience possible. Throughout the 5.X release series, we will continue to improve and refine this testing process to ensure that each release is even better than the previous.

Provided Software

EMAC OE 5.X provides a number of software packages which weren't provided with previous versions of EMAC OE. These new packages provide additional capabilities and extend existing capabilities. These packages were carefully chosen to ensure that the best available tools are provided across the full range of tasks which need to be performed on EMAC OE machines.

The following list shows the new tools which have been added or updated, and what you will gain from each one.

  • ethtool - This tool will allow you to inspect the network interfaces at the hardware level, allowing you to see if the physical link is good and, if so, what speed it's running at. No more guessing as to whether your networking issue is a hardware or software issue. If this shows your hardware is working correctly, you know it's a software configuration issue.
  • lighttpd - This is a much more sophisticated web server than the one provided by Busybox. It was a very popular custom package for the 4.0 series, so it is now included by default in 5.X.
  • vim - The real vim, not the Busybox version of vi. This provides syntax highlighting, undo, redo, macros, last position memory, and all of the other powerful features of vim that are missing from Busybox vi.
  • wget and ftpput - These provide a simple way to retrieve files from a webserver and to push them to a webserver. This can make retrieving updated files much simpler.
  • strace - Shows the system calls made by any executable which is run through it. This is a very powerful tool for debugging.
  • ntp and ntpdate - These tools provide a method to update the system clock to the time provided by the atomic clocks which share their time over the Internet.  These full versions are more reliable and more sophisticated than the Busybox version.
  • minicom - Much more sophisticated than microcom, this tool provides the same powerful terminal client you use on your desktop.
  • htop - This tool provides a sophisticated view into what's running on your system.
  • sudo - This tool allows for execution of a program with the elevated privileges of the superuser.
  • rsync - This tool allows for easy remote file synchronization between two computers.
  • file - This tool lets you inspect files to determine what type they are and various properties of them.
  • evtest - This tool provides a way to diagnose issues with input events.
  • bash - The real bash shell. Much more powerful than the Busybox shell, and much better for scripting.
  • procps - The full suite of process utilities, such as ps, kill, watch, uptime, free, pgrep, sysctl, and top, the full versions of these tools provide the useful functionality which was missing from the Busybox versions.
  • inotify-tools - These tools provide filesystem notifications which enable scripts and programs to only perform events after a file or directory has been modified/created/deleted/etc. No polling required.
  • tftp client - Easily download files from a tftp server with the integrated tftp client.
  • iptables - The standard tool for configuring firewalls on Linux.
  • tcpdump - An invaluable tool for debugging firewalls and TCP/UDP/IP connections of any kind.

This partial list shows just the highlights of the new software that's part of EMAC OE 5.X.  All of the software previously provided in OE4 is available in 5.X as well.

Other software provided by OE 5.X includes:

  • nano - Basic text editor.
  • amidi/aplaymidi/arecordmidi - Simple MIDI music player/recorder/controller.
  • candump/canecho/cansend/cansequence - Tools for working with a CAN bus (included only on systems which have CAN support).
  • Tools for working with flash memory.
  • opkg - Package management tools.
  • mpg123 - MPEG Audio Decoder/Player
  • Memory testing tools.
  • Busybox - The embedded "Swiss Army Knife"
  • Openssh sshd - SSH server (and client).
  • OpenSSL - standard ssl security libraries.

See Also