Category: "Linux"

Pages: 1

New mainline-based i.mx6 BSPs

 03. May 2017, by emtrion
Categories: Software, Linux, i.MX6, Android

We recently released our new mainline-Kernel based Debian and Yocto BSPs for our i.mx6 based System on Modules. In this article we'll give you a short overview of the advantages of the new BSP era! Beside the recent Kernel Versions delivered, new userspace APIs have to be used to access peripherals.

Features

The most outstanding feature of the new BSPs is that they both are based on Linux 4.9 LTS with some additional drivers and emtrion's device trees. Beside that they are identical to the upstream Long-Term supported Kernel which allows easy maintenance of security patches and fixes to certain subsystems. Beside that the Kernel does also make use of the Open Source etnaviv GPU driver for OpenGL acceleration. Also included is the Open Source driver for the Video Processing Unit (VPU) contained in the i.mx6. On the other hand, we decided to develop our Yocto Morty (2.2) and Debian Stretch (9) based BSPs in a way that both share key components in the same version allowing developers to change between the BSPs without porting applications. To achieve that we use the same Kernel, mesa (12.04), gstreamer (1.10)  and Qt (5.7) versions on both BSPs.

Etnaviv Graphics Stack

One of the recent changes in the Mainline Kernel is its native support for the Vivante GPU contained in the i.mx6 and several other SoCs. As you might know from desktop Linux systems the nouveau driver is a reverse engineered driver for Nvidia cards, the etnaviv is the one for Vivante SoC's GPUs. As a complete graphics stack requires more than a working Kernel Driver, the userspace components providing OpenGL functionality are delivered by the mesa project like many other Open Source graphic drivers. One of the advantages of the Open Source graphics stack is that it is not only possible to use most Debian packages without recompilation, but it is also possible to upgrade and maintain your system without the lockdown to a specific Kernel or userspace version.

Video4Linux VPU Driver

For quite some time the VPU, which is in fact a CODA DSP included in the i.mx6, is supported by the video4linux subsystem in the Kernel. In contrast to the software delivered by NXP (formerly Freescale) it is only capable of decoding and encoding video streams. However there are outstanding advantages over the closed source drivers like the upstream gstreamer support. With current gstreamer versions, the device class the VPU belongs to, is automatically populated to the gstreamer elements as de-/encoder device and you're no longer restricted to a specific gstreamer release version. Also it's automatically used by many userspace media applications out of the box. In case of our Debian BSP that means, you can use almost every multimedia application, just as you can on your desktop, which uses gstreamer or video4linux without the need of a recompilation.

Limitations

Even if the current support for the i.mx6 is on the right path, there are limitations regarding the supported features. We decided not to include the Open Source camera driver on the i.mx6 in this release as it is under heavy development for now, just as the whole video4linux2 subsystem. However, our engineers are already testing the new drivers and software on our hardware platforms, allowing you to gain support as needed.

Also it is currently not possible to use OpenCL on the GPU due to missing support in the mesa implementation.

 

*NXP, Nvidia, Freescale, Vivante, Coda, OpenCL are registered trademarks of their respective owners.


Form is loading...

Beta Release of SBC-SAMA5D36 RootFS

 03. March 2017, by emtrion
Categories: Software, Linux, SAMA5D3

Today we released a beta version of a new root file system for the SBC-SAMA5D36. The main changes are a new Kernel Version and the use of systemd as init system. The Kernel version is 4.9 and is a longterm maintained kernel (see https://www.kernel.org/category/releases.html for more information). Systemd has some advantages over sysv like parallel start of services (if possible), delaying of the start until a service or device is really needed, and it is compatible to the old sysv init scripts. Systemd also has some other advantages like builtin monitoring of running services and restart of them if they crash or stop working and also better dependency handling of services.

Use this beta release at your own risk. There are some known issues and mabye also some unknown ones. We will stabilize this release during the next weeks and bring out a stable release. Please find the release under following link:

Link to Beta RootFS


Hint:

To get the debug-console of the SBC-SAMA5D36 you can use one of the cheap USB to serial converter that are offered on ebay, amazon, aliexpress and other sites. There are some modules that have exactly the same pinout as the SBC and can directly connect to it. So no extra wiring is needed, expect for an USB-cable, but they are much cheaper than the original FTDI USB-serial converters. But be careful to choose converters which are capable to handle 3.3V levels.

Cheap USB-serial converter example

 


Form is loading...

emtrion goes virtual

 12. April 2016, by emtrion
Categories: Software, Linux, embedded, Android

In the past few months emtrion has broaden its knowledge base towards the open source virtualization platform Jailhouse [1]. The eventual goal is to provide customers a virtualization solution that is real-time capable, lightweight, secure, certifiable and operable on emtrion hardware. The main advantage to customers will be the reduction of costs through the combination of multiple hardware units into one single unit that handles multiple tasks.

Full story »


Form is loading...

Introduction

In general most of emtrion’s hardware comes with interfaces like Ethernet, RS232, CAN, GPIOs, I2C, SPI. In addition, the used CPU modules are supported by a powerful microprocessor.

Such preconditions are predestinated in controlling industrial systems. In many cases, programming in this environment is based on the widely-known NORM IEC 61131-3.

If you consider these items, the question to ask is, are there any reason why you are not using emtrion's hardware as PLC. Not really. On the one hand it's dependent on the use case and its requirements such as real-time, certification etc. and the other hand on the effort needed to transform it to a PLC.

Full story »


Form is loading...

Introduction

Products for consumer market, industrial control systems and other embedded devices often require a touch screen display to offer both, visual feedback to the user, as well as an input method to interact with the system. In order to achieve a nicely designed and responsive user interface, developers can write their own graphical library providing widgets like drop-down menus, list-views, check-boxes or simple buttons. However, this can be a very tedious and error-prone task. It is best to use one of the available graphic libraries like Qt[1], Cairo[2], EFL[3] or also emWin[4], not to forget to mention nCurses for console-style block-oriented graphics.

Now which library should one select, especially in terms of limited hardware resources on embedded systems but also with a look forward to the look&feel as well as the usability on a touch screen? Besides, hardware restrictions, like the used CPU and its computing power, available RAM-size, free space in ROM, availability of a GPU with 2D/3D hardware accelerated graphics and the used operating system, should be taken into consideration. emWin for example, runs on bare-metal systems either with or without a RTOS whereas Qt or EFL need at least a running Linux (but not said that it is impossible to run them on bare-metal). Other decision affecting parameters are the availability of the library as open- or closed-source, as well as the costs for non-commercial and commercial products. In the following article we will take a brief look at the Enlightenment Foundation Libraries (EFL) of a small Cortex-A5 based single board computer from emtrion running a Debian Jessie based Linux: the SBC-SAMA5D36 [5].

Full story »


Form is loading...

Introduction

Linux is an operating system that is widely used in embedded systems such as consumer electronics, networking equipment, machine control, industrial, automation and so on and so forth. However, all systems do not have the same requirements in term of determinism and sometimes determinism, the ability to schedule the highest priority tasks in a consistent and predictable way, really matters. This is the case for Financial Services, Networking (QoS), Robots, Air Traffic Control Systems...

Compared to other real-time operating systems, Linux has the advantage to be open source with great hardware support. Yet it was not designed to be real-time. It was originally designed to be a time-sharing system where the goal is to give the best throughput from the hardware using all the resources at the maximum. This is the opposite requirement of the real-time constraints that needs determinism even at a low global throughput.

Throughout the years, different approaches have emerged to overcome this problem. The first approach is to modify the Linux Kernel itself in order to get the required latencies or the real-time APIs. This approach is covered by the project PREEMPT_RT led by the Linux kernel developers Ingo Molnar, Thomas Gleixner and Steven Rostedt. The second approach is to add a layer between the Hardware and the Linux kernel to handle the real-time requirements so that the Linux kernel behaviour can stay as it is. This approach has been taken into account by different project like RTLinux, RTAI and Xenomai. Since only the last one is maintained actively on ARM, we will only talk about it.

Full story »


Form is loading...

The emtrion SBC-SAMA5D36

 06. May 2015, by emtrion
Categories: Hardware, Linux, embedded, SAMA5D3

 I may be a microcontroller guy myself, but there are times where you need the power of a microprocessor. Having an operating system handle the memory, peripherals and events just saves time, and some applications really do need the power a microprocessor provides.

Atmel’s SAMA5D3 family has some impressive devices. Based on ARM’s A5 architecture, they has an impressive amount of peripherals and I/O lines. To name just a few, the SAMA5D36 has 3 I2C ports, 6 SPI ports, 12 12-bit ADC channels, and something you don’t see every day, 7 UART ports. This is impressive enough, but to add to that, the SAMA5D3 also has up to 160 I/O pins, each with its own interrupt. The SAMA5 series is geared towards industrial environments, automotive devices, and with Atmel’s implementation of capacitive touch peripherals, it can be used on just about any application where a user must input data.

With all that power, it isn’t surprising that the German manufacturer emtrion used this processor for one of their development boards, the SBC-SAMA5D36. They not only went with the SAMA5D36 device for its power and reliability, but also for Atmel’s reactivity when it comes to support. Atmel has worked hard on Linux implementation, and so the Linux kernel has everything you need to access every part of the processor, but I’ll get into that later on.

Full story »


Form is loading...

1

Search

Contact

emtrion GmbH
Kreativpark - Alter Schlachthof 45
D-76131 Karlsruhe
Germany

Tel: +49 (0)721-62725-0
Fax: +49 (0)721-62725-19
sales@emtrion.com