Emutex contributed to the design of the UP Board, and its family of UP Core and UP Squared boards. Emutex enabled, and continues to enable, popular Linux distributions to run on these boards.
Our client, an international manufacturer of embedded systems, contracted Emutex to contribute to the development of a 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 the development of several forms of IoT boards including Intel® Galileo, Intel Edison and Intel Arduino 101. The experience and insight gained from this work, 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 development team, Emutex was involved through the whole development process, from product design and development through to validation, support and maintenance. In addition to our primary role of enabling Linux distributions on the UP platform, we created and continue to support the UP Community, a world-wide community of UP users. We contributed to hardware layout and schematic reviews, led board bring-up activities and completed the validation and debug of hardware samples and their interoperability with many 3rd party peripheral devices.
ENABLING LINUX ON UP
To enable Linux on UP, a number of key challenges had to be overcome. 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.