Emutex was involved in the whole development process of the UP Board, providing its expertise and knowledge at all project levels.
Our client, an international manufacturer of embedded systems, contracted Emutex to contribute to the development of a brand new board for both professional and domestic use cases: The UP Board.
WHAT IS AN UP BOARD
UP is a credit card-sized single-board computer designed as a professional development platform for a wide variety of domains including IoT, Industrial Automation, Digital Signage, Entertainment, and much more. It features an Intel Quad Core Atom X5-8350 CPU, providing powerful compute and I/O capabilities in a Raspberry Pi inspired form factor, running Linux, Windows 10, and Android:
Emutex has been a key contributor involved in to the development of several exciting IoT boards, such as Intel® Galileo, Edison and Arduino 101. That experience and insight, combined with our knowledge of enabling embedded systems and developing IoT solutions, led us naturally to becoming a key player in the development of UP.
As part of the UP board team, Emutex was involved throughout the whole development process from product definition and development to support, maintenance and beyond. In addition to our primary role of enabling Linux on the UP platform, and creating and supporting the UP users community, Emutex also assisted hardware development through layout and schematic reviews, validation and debug of early hardware samples and interoperability with peripherals.
ENABLING LINUX ON UP
To enable Linux on UP, a number of key challenges needed to be met. For example:
- Linux was not officially-supported as an OS for the Atom X5-8350 SoC. Although many of the required kernel drivers did exist they required additional features and fixes to make them work properly on this SoC.
- The UP board includes some unique I/O features at board level, such as an Altera CPLD as a pin controller, which required some custom drivers to be developed for the kernel.
- Achieving a high-level of compatibility with peripherals available in the Raspberry Pi ecosystem, including HATs, and corresponding application software, was a key design goal but not a trivial one given the many differences at SoC hardware level
Emutex developed a set of kernel drivers for the UP board, and patches for the existing SoC I/O drivers which were submitted and some already merged to the upstream kernel. Linux kernels, complete with the necessary drivers and configuration for UP, were packaged and made available for 3 supported flavours of Linux distributions and build systems:
- ubilinux™ 3.0
- Ubuntu 14.04 and 16.04
- Yocto 2.1
Each Linux flavour imposes a different, and non-trivial, packaging and distribution process.
UBILINUX FOR UP
ubilinux™ is an embedded Linux distribution from Emutex, based on Debian Jessie. It is targeted at embedded devices that have limited memory and storage capabilities. The 3.0 release has been tailored specifically for the new UP board, providing drivers, libraries and applications to support the features of the UP board, such as the 40-pin I/O header or HDMI audio.
Here are some of the reasons why we developed this tailored Linux distribution for UP, and the advantages that it provides:
- ubilinux is based on Debian Linux (“Jessie”), widely respected for its focus on stability and security, and for its impressive list of popular Linux applications and utilities available from its package repositories. However, in its pure form, Debian lacks some of support (e.g. drivers) required for cutting-edge hardware such as the UP board. Ubilinux builds on top of Debian, adding the support for UP with the right mix of kernel drivers, configuration and application software.
- We streamlined the installation procedure, and developed a number of flavours to meet the needs of different users (e.g. graphical desktop, headless.)
- By hosting our own OS package server, we have the ability to roll out fixes and enhancements to support our UP community.
- Flexibility to selectively integrate and package an optimal set of applications, (including some not distributed with any other OS) to get users up and running quickly on UP.
This is just one example of the work that Emutex has done to enable customers to bring new hardware designs to life with software. For other examples, and to learn more about the services and solutions that Emutex can provide, please visit our website at www.emutex.com.