Category: Embedded Technology

  • Multi core, heterogeneous embedded devices have been available for some time, but we are still learning a lot about how to use them to their full potential. My colleague and I have been trying to understand how the kernel scheduler affects the responsiveness of the user interface and how to maximize and stabilize the frame rate without consuming excessive energy. We want to improve the usage of that little battery so many people complain about! This article will focus on how CPU and Kernel interact from the user space point of view. Later, in another blog post, we will look at how to design libraries and applications to be as energy efficient as possible. There is still a lot that could be covered on other subsystems like the GPU or network, but these are big topics that are beyond the scope of this article. CPU Management in Today’s Linux Kernel […]

    Read More
  • The Linux Kernel Summit Media Workshop was held on October 26, 2015 in Seoul, South Korea. We had 21 attendees from various companies and places in the world gather to discuss the current state of Linux Media and the challenges that need to be overcome to push these technologies into the future. This article will cover the major topics that were discussed during this workshop and the decisions that were made about the direction of this community.   Codec API Improvements Currently, Video4Linux version 2 (V4L2) memory to memory devices uses the Stream API to handle coders/decoders (codecs), but it might be time for us to develop a Frame API to handle newer devices. Stream API The original V4L2 codec API was developed along with the Exynos codec driver. Since the device implements high-level operations in hardware, the resulting API was high-level as well with drivers accepting unprocessed raw streams. […]

    Read More
  • Tizen+RPI2

    September 14, 2015 - Mauro Carvalho Chehab

    Setup WiFi on Your Raspberry Pi 2 with Tizen

    Once you have your RPi2 up and running with Tizen, it is helpful to get network connectivity setup. This article is part of our series about Tizen on the Raspberry Pi 2, and this guide will describe how to enable WiFi on your RPi2. Doing this will make it much easier to work on the device because it will allow you to connect using ssh through your wireless network and access remote resources on the Internet. Get Familiar With the Hardware The procedure to enable WiFi on Tizen for Raspberry PI2 (Rpi2) is simple. You will first want to make sure Tizen detects your WiFi adapter. You can find it by running lsusb which will display all connected usb devices, including . My own RPi2  is using a Realtek device based on the RTL 8188CUS chipset:

    Once connected, it produces the following messages:

    You can use view this […]

    Read More
  • Media pipelines are important to virtually any modern device that displays video or audio. It’s important these pipelines are optimized in order to provide responsive video and audio playback on devices that might have tightly constrained hardware resources like smartphones, smartwatches, and IoT devices. During the GStreamer summer hackfest in Montpellier, France one of our areas of focus was on improving how GStreamer performs caps negotiation. Brief review of caps negotiation Before data can flow on a GStreamer pipeline, elements must agree on the data format they will use. The process of selecting those formats is called Caps Negotiation and it uses three different types of interactions: caps queries, accept-caps queries and caps events. The Caps Query is used to ask elements what formats they can receive or produce, and it is recursive in that one element also queries others to avoid exposing formats that wouldn’t be accepted further ahead in the […]

    Read More
  • Tizen+RPI2 got smart

    July 28, 2015 - Mauro Carvalho Chehab

    RPi2: Getting Smart on Tizen

    Once you’ve got Tizen running on your Raspberry PI 2 (RPi2) using the procedures described in Tizen on RPi2: Now Supporting 3D Acceleration, you will probably want to be able to dynamically add/remove packages. It’s a pain to be required to rebuild and flash your OS every time you want to change the included software, so following this tutorial will help make this much easier. This small tutorial shows how to install the smart tool that is shipped on Tizen, but is not installed by default. 1) Add Smart to the RPi2 Image The first step is to add the Smart Package Manager (python-smartpm) to the RPi2 Tizen image. This is the same package manager used on Yocto, and Tizen has its own patches for it. In order to install it, you should apply the following simple patch on your Tizen repository:

    If you are unfamiliar with the patching […]

    Read More
  • Tizen+RPI2

    July 14, 2015 - Mauro Carvalho Chehab

    Tizen on RPi2: Now Supporting 3D Acceleration

    In Bringing Tizen to a Raspberry PI 2 Near You… I described the work we completed to port Tizen to Raspberry Pi 2 (RPi2). Since then, the Samsung Open Source Group has worked hard to add support for 3D acceleration. UPDATES: Added the -dev images, as they’re now supported. Added bitbake command for building the crosswalk-dev image Added command line for ddrescue The Kernel was updated to Vanilla Tizen Kernel 4.4 This is an update to our original guide that describes how to build a custom Tizen image for the RPi2, and it now includes instructions to enable 3D acceleration. This is based mostly on work completed by our own Derek Foreman. Please note that this uses a driver that is still under development (VC4), written by Eric Anholt from Broadcom, so we don’t recommend its use in production situations. If you don’t want to wait through the build process […]

    Read More
  • There are many companies shipping products based on ARMv8 today, including AMD, Samsung, NVIDIA, Cavium, Apple, Broadcom, Qualcomm, Huawei, and others.  What makes ARM unique is the differentiation between vendors; while a majority of features are based on the ARM reference processor and bus architectures, additional custom features may be introduced or reference features may be omitted at the vendor’s discretion. This results in various profiles that are tailored to specific products, making it extremely difficult for another architecture to compete against such a wide selection of choices. As ARMv8 matures, it’s moving out of mobile and embedded devices into Industrial IoT (Internet of Things), network routers, wireless infrastructure, and eventually, the cloud. For those of you not familiar with KVM, it stands for Kernel Virtual Machine. It’s a Linux Kernel hypervisor module. KVM is the primary open-source-based hypervisor, and is the default for Openstack, a popular cloud computing software […]

    Read More
  • Part 1 of this series can be read here. Supporting embedded Digital TV (DTV) hardware is complex, considering that such hardware generally has multiple components that can each be rewired during runtime to dynamically change the stream pipelines and provide flexibility for activities like recording a video stream while tuning into another channel to watch a different program. The first article of this series described how the Digital Video Broadcasting (DVB) pipelines are setup and the needs that should be addressed by the Linux Kernel. In this article, I’ll  discuss the needs of the DVB API with a focus on the network interfaces that are part of any DTV device. An Introduction to Digital TV Network Interfaces Typical DTV devices have dedicated hardware that provides the network interfaces. If you would like to learn more about such hardware, check out the first post in this series, specifically Figure 6 and […]

    Read More
  • May 13, 2015 - Mike Blumenkrantz and Lars Bergstrom

    Servo: The Embeddable Browser Engine

    Embedding, in the context of this article, is the process of hosting a web rendering engine inside another application. This engine displays content exactly as a regular web browser would, but allows the application author to customize the user’s experience further than what is possible in the typical display of a normal website. Development time can be reduced by keeping part of the content of an application in web-related languages due to the relative ease of writing web content and the widespread knowledge of HTML5. The technique of embedding web content is used in many places by many companies, including: Popular Linux applications such as Rhythmbox, Kate, Eclipse, and Evolution have support for embedding web content. Microsoft Entourage and Apple Mail for Mac OS both utilize embedding for displaying web content and parts of the UI. Adobe products, including their constantly-running updater, embed full web runtimes. Valve’s Steam client also […]

    Read More
  • Open Source Weekly Wrap Up: May 2 – 8, 2015 Enlightenment Foundation Libraries 1.14 Released After three months of development, Enlightenment Foundation Libaries (EFL) 1.14 has been released. EFL is a set of free and open source graphics libraries that are used to construct user interfaces for a variety of products, including TV’s, mobile devices, wearable electronics, and desktop systems. In 12 weeks the project had over 1200 commits from 77 authors – nearly double the number from the previous release. This release includes numerous bug fixes, code optimization for better speed with a smaller memory footprint, as well as new features for many of the components including Elementary, Evas, and Emotion. We’ll feature a more detailed post on this development next week. Read More at the EFL Official Announcement Open Source Helps Rebuild Nepal’s Historic Sites The 7.9 magnitude earthquake last week in Nepal has put many of the […]

    Read More