EMAC OE Linux


At EMAC, we use Linux for off-the-shelf products, custom applications, and major projects. EMAC has been offering our Linux distribution for the embedded systems market since 1998, and has been thoroughly tested and tuned in various customer and internal applications. The EMAC OE Linux distribution with the Linux kernel is fully supported, and for use with virtually all of EMAC's Single Board Computers (SBCs).


Linux is an open source operating system kernel. The project was originally started by Linus Torvalds and now has a very large community of developers and users all around the world. Linux is used in an extremely wide variety of devices such as industrial embedded systems, appliances, cell phones, desktop systems, and mainframe servers. Unix-like operating systems utilizing the Linux kernel are loosely referred to as Linux systems. Most Linux systems are a combination of the Linux kernel, GNU Utilities (http://www.gnu.org) , and other software libraries and Open Source projects. These systems are also referred to as GNU/Linux.

When you purchase an EMAC SBC with EMAC OE Linux, the board comes ready to boot, and all of the drivers have been setup for any standard peripherals that you may have purchased from EMAC. This allows you to focus on your application, instead of on time consuming configuration and testing. And if you do encounter problems, you can talk to someone experienced with Linux, and familiar with our distribution.

When Optional Linux Packages are required, we assess a build fee for these optional packages once per build configuration per order. Multiple identical SBCs with the same build on a single order are only charged one time. If the customer intends on purchasing the build on a ongoing basis, an image of the build can be archived under a unique part number (see Customized Builds) and ordered again and again with no additional build charges. Please contact us at info@emacinc.com for information on available packages.

EMAC provides free installation and one-year of basic operating system technical support for EMAC OE with the purchase of single board computers with suitable media. No operating system support will be given for EMAC OE without verification of purchase of SBC, media, and installation at the time of purchase.

If you are new to Linux or just want to hit the ground running EMAC can provide you with a Linux Development Computer (LDC). This high performance, small footprint, desktop PC is loaded with Linux, the IDE/SDK and distribution sources so you can start developing right out of the box. 

Standard Operating System Builds

EMAC provides free of charge Standard Operating System Builds for our many of our products. However, there are times when a customer may need functionality that is not provided or changes to the Standard Build. In these cases the customer can add Packages for a One-Time Fee to the Standard Build in order to create a product specific Custom Build. EMAC has many Standard Packages available. If a Standard Package is not available EMAC can provide Custom Packages and Build Changes as well.

The One-Time Standard Package Fee includes the following:

    • The Creation of the Custom Build with the specified Standard Package(s) 
    • Tech Support for the Package(s)
    • First Year Build Archive Fee

EMAC Standard Builds are dynamic and change over time. Many customers want to make sure that they can purchase the same build over and over again without the risk of the Build being Revised. EMAC provides an Archiving Service that allows for this. EMAC can archive a Standard build for a Build Archive Fee of $50 per year. This Archive Provids the same features listed in The Build Archive Service for a Custom build

Customized Builds

EMAC can configure all manner of custom Linux software packages. We are constantly adding additional support for new and different devices, including custom hardware. Our Linux packages are tested and pre-configured to provide functionality and utilities, quickly and easily. If you require any additional software packages, custom kernel or application development support, contact sales for a quote.

As we update our Linux builds and packages, there may be compatibility issues with older projects and newer kernel drivers or module versions. In order to provide for the most complete compatibility between equipment and software, we offer a Custom Build Subscription Service.

Once a custom software build has been created for you, EMAC can archive this custom build for a Build Archive Fee of $50 per year. 

The Build Archive Service

The Build Archive service includes the following:

    • Unique Custom Part# for the Build (allows easy reordering of the Same Build)
    • Build is archived on our server allowing the customer to purchase the same build for the life of the product
    • Customer FTP Account for Customer Access to their Build(s) {login information is provided upon request}

EMAC Custom Solutions

Besides Single Board Computers, EMAC can provide custom Linux solutions with:

    • Custom Linux Kernel development
    • Real-Time Linux Extensions
    • Data Acquisition Modules
    • Custom Application Programming
    • Custom Hardware Modification and Design

From small device drivers to fully custom turnkey systems, EMAC is your Linux SBC Partner. Let us help you get your application/project off the ground!

EMAC products can use EMAC's standard Linux Modules including the Xenomai Real Time, Php, SQLite and Lighttpd web server modules.

Standard linux builds are aviliable for all products EMAC sells. Custom Linux builds, Customized Linux builds, and specialized drivers are also available upon request. 

EMAC OE is EMAC's standard Linux distribution, based on the OpenEmbedded build framework for embedded Linux systems. OpenEmbedded (OE) aims to reduce the number of dependencies on the development platform as much as possible and can be used to cross-compile thousands of packages for many different architectures. EMAC utilizes a customized version of OpenEmbedded to create the EMAC OE distribution. EMAC customizes OpenEmbedded by adding support for EMAC hardware, patching software, and controlling the configuration of the operating system. While EMAC OE is designed for embedded systems, it is designed to be a full-featured yet specialized Linux system, including common GNU utilities provided by Busybox and other projects, servers, networking, filesystem support, hotplugging support, and other features. The newest release of EMAC OE also harnesses the Yocto Project to add additional tools, support, and structure to the build system.

The Yocto Project is an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture. It was founded in 2010 as a collaboration among many hardware manufacturers, open-source operating systems vendors, and electronics companies to bring some order to the chaos of embedded Linux development.

As an open source project, the Yocto Project operates with a hierarchical governance structure based on meritocracy and managed by its chief architect, Richard Purdie, a Linux Foundation fellow. This enables the project to remain independent of any one of its member organizations, who participate in various ways and provide resources to the project.

Why use the Yocto Project? It's a complete embedded Linux development environment with tools, metadata, and documentation - everything you need. The free tools are easy to get started with, powerful to work with (including emulation environments, debuggers, an Application Toolkit Generator, etc.) and they allow projects to be carried forward over time without causing you to lose optimizations and investments made during the project’s prototype phase. The Yocto Project fosters community adoption of this open source technology allowing its users to focus on their specific product features and development.

The Yocto Project provides resources and information catering to both new and experienced users, and includes core system component recipes provided by the OpenEmbedded project. The Yocto Project also provides pointers to example code built demonstrating its capabilities. These community-tested images include the Yocto Project kernel and cover several build profiles across multiple architectures including ARM, PPC, MIPS, x86, and x86-64. Specific platform support takes the form of Board Support Package (BSP) layers for which a standard format has been developed. The project also provides an Eclipse IDE plug-in and a graphical user interface to the build system called Hob.

https://www.yoctoproject.org/

EMAC offers Qt as an optional User Interface application framework on many of our Linux systems. With Qt, developers get a polished and efficient user interface with IDE support, C++ APIs, example applications, and cross-platform capabilities. EMAC can provide Qt libraries configured for Qt/embedded, which utilizes the Linux framebuffer directly, or Qt/X11, which makes use of an X11 server for rendering.

Android is a Linux-based operating system for mobile devices such as smartphones and tablet computers. It is developed by the Open Handset Alliance led by Google. Google purchased the initial developer of the software, Android Inc., in 2005. According to the Android project "The goal of the Android Open Source Project is to create a successful real-world product that improves the mobile experience for end users".

Android consists of a kernel based on the Linux kernel, with middleware, libraries and APIs written in C and application software running on an application framework which includes Java-compatible libraries based on Apache Harmony. Android uses a virtual machine with just-in-time compilation to run dex-code (Dalvik Executable), which is usually translated from Java bytecode. The main hardware platform for Android is the ARM architecture, however recently there has been support added for x86 from the Android x86project.

Anyone considering using Android should realize that using Android in Embedded Applications adds a layer of complexity and inefficiency that may not make sense for many User Interfaces in the Embedded arena. However, if the unit is an battery backed Industrial Tablet or similar mobile device Android may be a good fit. Application programming is typically done in Java although C can be used with some difficulty.

EMAC can provide Android (Gingerbread, Ice Cream Sandwich or Jellybean) for several of our products. Call for further details.

EMAC has been offering Xenomi Real-time operating system "RTOS" extensions as an option to our EMAC OE Embedded Linux distribution.  Xenomai is offered as one of many optional off-the-shelf Linux modules available for our distribution. EMAC, can also provide custom Real Time Drivers and Application assistance if required. Additionally, EMAC provides a Xenomai SDK plug-in to our IDE for program development.

Xenomai is a Free Software project in which engineers from a wide background collaborate to build a versatile real-time framework for the Linux© platform. While Xenomai is a real-time development framework cooperating with the Linux kernel, in order to provide a pervasive, interface-agnostic, hard real-time support to user-space applications, seamlessly integrated into the GNU/Linux environment.

The main project goal is to help migrating industrial applications from proprietary real-time systems to Linux.

Xenomai is about making various real-time operating system APIs available to Linux-based platforms. When the target Linux kernel cannot meet the requirements with respect to response time constraints, Xenomai can also supplement it for delivering stringent real-time guarantees based on an original co-kernel technology.

Originally named Xenodaptor, the project that would soon become Xenomai was announced on August 2001 by Philippe Gerum. The Xenomai 1.0 milestone was reached in March 2002.

In its early days, Xenomai used to be an add-on component to real-time Linux variants for emulating traditional RTOS, originally based on a dual kernel approach. Over the years, it has become a full-fledged real-time Linux framework on its own terms, also available on single/native kernel systems.

Adeos/I-pipe are companion projects to Xenomai, which implements a key component of a dual kernel configuration: the interrupt virtualization mechanism delivering high priority events to the Xenomai co-kernel with short and predictable latencies. Xenomai was the first real-time extension to be ported over the I-pipe, followed a year after by RTAI.

In the 2003-2005 period, the original core team members – namely Gilles Chanteperdrix and Philippe Gerum – contributed significantly to the RTAI project, before focusing back on Xenomai’s own goals, which led to the release of Xenomai 2.0 in October 2005.

Since then, Xenomai 2 has been actively maintained and ported to various CPU architectures, for a user base mainly involved in the industrial automation industry.

The Xenomai 3 architecture introduces a paradigm shift, as users are no more tied to the dual kernel configuration enabled by the I-pipe, but may run the real-time APIs and their applications transparently over a single kernel configuration as well.

EMAC provides a Free Eclipse IDE that is pre-integrated to provide everything the user needs for developing applications. All the compiling, converting, and downloading inherent to development can be done from one easy to use high level interface. The distribution provides an SDK which contains source examples for the LCD with Touchscreen, Digital I/O ports, SPI, SD/MMC, and Audio.

The EMAC Eclipse IDE is a powerful, yet flexible Integrated Development Environment and even features SVN version control support. For a screen shot of EMAC's Linux Eclipse based Development Environment click here.

EMAC products can use EMAC's standard Linux Modules including the Xenomai Real Time, Php, SQLite and Lighttpd web server modules. For a listing of optional modules see our Embedded Linux Operating Systems Page.

Xenomai is a real-time development framework cooperating with the Linux kernel, in order to provide a pervasive, interface-agnostic, hard real-time support to user-space applications, seamlessly integrated into the GNU/Linux environment.

EMAC will be incorporating Xenomai into it's mainstream distribution in the near future to create accurate periodic user space tasks with sub-ms periods. Linux users are provided with several examples of an easy to use interface, which communicates with the boards I/O through generalized hardware classes.

For more info on Xenomai go to:
http://www.xenomai.org/index.php/Main_Page.

For more information on our EMAC OE 5.0 Features.

For more information on our EMAC OE 4.0 Features.

Custom Linux builds with addtional packages, customized packages or custom software installed are available upon request.