• November 1, 2016 - Shuah Khan

    Beware of Ubuntu 16.10 Upgrade Woes

    I wanted to share a word of caution for anybody planning to update their development and test systems to Ubuntu 16.10: I can’t build kernels anymore. Ubuntu recommends a special patch to the kernel Makefile. This patch will work only on Ubuntu kernel sources and not the upstream Linux kernel trees. Linux kernel builds fail with the following message

    The message about CONFIG_CC_STACKPROTECTOR_STRONG is misleading because this Kernel config option is enabled in most distro kernels; disabling it won’t solve the kernel build failure problem. It fails because the position independent executable option is set as default in gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12). As a result, Linux Kernel Makefile needs to update to build the kernel with “-fno-pie” option. The Ubuntu 16.10 release notes say We have modified GCC to by-default compile programs with position independent executable support to improve the security benefits provided by Address Space Layout Randomization. This may cause […]

    Read More
  • October 28, 2016 - Mauro Carvalho Chehab

    Improving Linux Kernel Development Process Documentation

    This article will cover how the Linux kernel community handled the conversion of documentation related to the kernel development process; it’s part of a series on improvements being made to Linux kernel documentation. Introduction It’s not an easy task to properly describe the Linux development process. The kernel community moves at a very fast pace and produces about 6 versions per year. Thousands of people, distributed worldwide, contribute to this collective work; the development process is a live being that constantly adjusts to what best fits the people involved in the process. Additionally, since kernel development is managed per subsystems, each maintainer has their own criteria for what works best for the subsystem they take care of. To address this, the documentation provides a common ground for understanding the best practices all kernel developers should follow. The Documentation/Development-Process Book There are several files inside the kernel that describes the development […]

    Read More
  • October 27, 2016 - Bryce Harrington

    The Basics of Input Methods in Weston

    Wayland provides an optional protocol, zwp_input_method, for defining alternate ways of sending keystrokes and mouse activity to clients. This could be things such as an onscreen keyboard or a popup for building Korean characters. The design of the protocol allows for different kinds of input methods to be made available via modular plugins, allowing them to be coded as discrete client applications, separate from the compositor’s core. The Wayland project maintains a reference compositor named Weston that provides implementations of the various protocols for demonstrative purposes, including two implementations of the zwp_input_method protocol. One input method, weston-keyboard, manages an on-screen keyboard that pops up at the bottom of the screen, similar to on-screen keyboards typically seen on touch-based mobile devices. The other input method, weston-simple-im, enables a compose key functionality. The user can configure which input method to use via their weston.ini file. No more than one input method can […]

    Read More
  • October 26, 2016 - Chris Michael

    Ecore_Drm2: How to Use Atomic Modesetting

    In a previous article, I briefly discussed how the Ecore_Drm2 library came into being. This article will expand on that article and provide a brief introduction to the Atomic Modesetting and Nuclear Pageflip features inside the new Ecore_Drm2 library. What Makes Atomic Modesetting and Nuclear Pageflip so Great? For those that are unaware of what “modesetting” is, you may read more about it here. Atomic Modesetting is a feature that allows for output modes (resolutions, refresh rate, etc) to be tested in advance on a single screen or on multiple outputs. A benefit of this feature is that the given mode may be tested prior to being applied. If the test of a given output mode fails, the screen image doesn’t need to be changed to confirm a given mode works or not, thus reducing screen flickering. Atomic/Nuclear Pageflipping allows for a given scanout framebuffer object and/or one or more hardware […]

    Read More
  • October 25, 2016 - Reynaldo Verdejo

    The 2016 GStreamer Hackfest & Conference in Berlin

    A few days ago, while on my way back from the GStreamer hackfest and conference combo, I tried to come up with a list of pearls to share here and arrived at a pretty troubling conclusion: there was no easy way to do so. The Hackfest I met Luis (De Bethencourt) a kilometer away from my hotel on a cold Saturday morning on October 8th. By then, I had already figured the only exercise I’d be able to get during my short 4-day stay in Berlin was going to be related to my commute, so I decided to embrace walking. We headed for C-Base as soon as we meet at his hotel’s lobby and arrived 10 minutes later to meet the typical familiar faces from the GStreamer community. So did everything start. The GStreamer developer community, while quite compact, has a surprisingly large number of regulars; people tend to stay around. This is something you hardly […]

    Read More
  • The Light Display Manager doesn’t start on Odroid XU4 on the recent mainline kernels with exynos_defconfig. I first noticed this problem during the Linux 4.8 rc testing and this problem persists in 4.9-rc1. I want to share the root-cause, and a work-around in this post. I’m running kernel 4.9.0-rc1 with exynos_defconfig on Ubuntu 16.04 with HDMI. Light Display Manager (lightdm) fails with the following errors.

    This block repeats a few times until systemd gives up on starting lightdm. The system is operational with functioning serial console and networking, however the display doesn’t work. What Causes this problem? The following sequence of events is what leads to this problem The user space calls exynos_drm_gem_create_ioctl() with the EXYNOS_BO_NONCONTIG request to allocate GEM buffers. exynos_drm_gem_create() creates non-contiguous GEM buffers as requested. exynos_user_fb_create() comes along later and validates the GEM buffers to associate them to frame-buffer. The validation in check_fb_gem_memory_type() detects non-contiguous buffers […]

    Read More
  • October 20, 2016 - Mauro Carvalho Chehab

    Creating a Linux Kernel User’s Manual

    This article is part of a series on improvements being made to Linux kernel documentation. This article will discuss the efforts that are underway for kernel 4.10 to produce a Linux User’s Manual that groups the existing user-focused documents. What Defines a Linux Kernel User? It’s not an easy task to identify the documents that contain useful information for Linux kernel users because there are a large number of documentation files inside the kernel tree and these documents are mixed with development documents. Furthermore, who exactly are the Linux kernel tree users? Are they the end users who run various Linux distributions, the distribution packagers that package the kernel tree, or the advanced Linux users and system administrators that opt to compile the kernel themselves? In other words, depending on what definition of users we use, the contents of a Linux user’s manual varies. For the scope of this work, […]

    Read More
  • October 18, 2016 - Thibault Saunier

    Improving Debugging in GStreamer Validate

    Debugging GStreamer is often a hard and time-consuming task; because of this, the community has been working to enhance debugging tools and make it simpler in the gst-devtools official module and its gst-validate component (you can find more information about this in my previous post). Lately, we’ve decided to take a step forward and enhance the GStreamer validate reports for specific and very common GStreamer issues. We started with the classic Not Negotiated Error which basically happens when the elements in the pipeline are not able to agree on a data format (Caps) in which to do the processing. This can happen for many reasons, and until recently, the only way to figure out what went wrong was to read verbose and sometimes hard to read GStreamer debug logs; this is time consuming, particularly for people who are not very familiar with GStreamer. Starting from the next 1.10 release, GstValidate will attempt to explain the precise reason and place in the pipeline […]

    Read More
  • October 14, 2016 - Marcel Hollerbach

    Samsung OSG Internship Program: Marcel Hollerbach

    My name is Marcel Hollerbach, and I’m the second intern to join the Samsung OSG as a part of their Enlightenment internship program. I wanted to take a moment to introduce myself and provide some background about how I got started in EFL development, and I’ll also explain what I’ll be doing as a part of this internship. My Path Towards EFL Development Currently, I’m studying Computer Science at the University of Karlsruhe, but I learned programming a while back by starting with Java. My interest eventually brought me to C and C++, and in 2011 I was first introduced to Enlightenment and EFL. A year later I discovered terminology: a great EFL-based terminal emulator; this led to me making the decision to learn to code with EFL. I began by attempting to write the wallpaper settings for Terminology, which is essentially a screen that can be used to select […]

    Read More
  • October 13, 2016 - Mauro Carvalho Chehab

    Finishing the Conversion of Linux Media Documentation to ReST

    This article is part of a series on improvements to Linux Kernel documentation; this article will describe the effort to convert the remaining Linux Media subsystem documentation. The Linux Media Subsystem Documentation Before Kernel 4.8, the Linux Media documentation was splt into the Linux Media Infrastructure userspace API (uAPI), which described the system calls and sysfs devices the media subsystem uses. The conversion of this book was already explained in a previous article from this series, the Media subsystem kernel internal API (kAPI), which described the functions and data structures a media driver should use to implement drivers, some text files describing how to use the kAPI, these are spread inside the Documentation/ directory at the Kernel tree, a set of files that document some V4L drivers under Documentation/video4linux, and a set of files that document some DVB drivers, under Documentation/dvb. Converting the kAPI Book The kAPI book is actually […]

    Read More