• Memory usage is often overlooked as Moore’s law brings us larger amounts of memory year after year; still, it matters significantly for multiple reasons. First, even if the total memory available to an application has been increasing, speed and cache size haven’t. This means that the more memory an application has to walk, the more likely it is to step out of the cache and slow down the application, a problem for performance-critical tasks. There is a difference in latency access of two orders of magnitude to use cache vs. the main memory; for reference, you can use 1ns for a cache hit and 100ns for a memory access. Something else you might not realize is that fetching data from the memory subsystem consumes more energy than not doing so. Stating it like this seems obvious, but it’s true, consuming less memory also means consuming less energy. Some hardware can […]

    Read More
  • Recent development in Enlightenment’s Wayland compositor has focused on implementing cross-desktop protocols and improving stability. One of the recently handled protocol series has been relative and constrained pointers. Relative pointer motion is a method for providing pointer movement deltas directly to applications. This is useful for a number of cases, though the easiest to imagine might be first person shooter games. In this case, the application receives movement deltas, allowing the player to endlessly scroll the screen in one direction without hitting the boundaries of the screen. Under Enlightenment, this is handled in different ways depending on the output backend being used. For backends using libinput, e.g., DRM, it’s possible to get relative motion deltas directly from the events and then emit them for compositor use. Other backends, however, such as nested Wayland compositors, have no access to libinput’s hardware events. In this case, Enlightenment must manually calculate the deltas […]

    Read More
  • After my previous blog post, you should now be using SSH and Tor all the more often, but things are probably slow when you are trying to setup a secure connection with this method. This may well be due to your computer lacking a proper source of entropy to create secure cryptographic keys. You can check the entropy of your system with the following command.

    This will return a number, hopefully it’s above 3,000 because that’s what is likely needed to keep up with your needs. So what do you do if it’s not high enough? This article will cover two tips to improve your computer’s entropy. All examples in this guide are for Linux distributions that use systemd. rngd rngd is a tool designed to feed the system with more entropy from various sources. It is part of the rng-tools package. After installing it, the rngd service needs to […]

    Read More
  • I want to use this short article to point out a big problem in code that uses libdrm. This, or a variant of this, is lurking in a shocking amount of software:

    Stop doing this, it has always been a crash waiting to happen. drmEventContext is part of libdrm’s ABI and there are strict promises that the structure won’t be randomly re-ordered. However, it may grow as the need arises when new versions of libdrm offer functionality which didn’t exist before. libdrm 2.4.78 introduces another page flip handler, adding a new function pointer harmlessly at the end of the structure page_flip_handler2. It also bumps DRM_EVENT_CONTEXT_VERSION from 2 to 3, as that’s the current version of the structure in the header file. As a result, the code above crashes… sometimes. What went wrong? The Proper Way to Use drmEventContext DrmEventContext.version is intended to tell the library what version of the […]

    Read More
  • April 10, 2017 - Ben Lloyd Pearson

    What Does the Samsung OSG Do?

    In case you haven’t heard the news, we’re currently on a quest to hire a new Linux Kernel engineer, so we thought this would be a good time to explain what our team does for Samsung. Samsung relies on open source software for the vast majority of products and services the company produces and as a result, it has become an imperative for the company to have a team dedicated to improving and leveraging open source software. Essentially, the OSG has two primary purposes. The first is to provide open source leadership within Samsung by helping other divisions in the company understand how to participate in and benefit from open source development. The second is to serve as Samsung’s representatives in the wider open source community. The mandate of this team is to focus on enhancing key open source projects and technologies via active contributions to them, and to be […]

    Read More
  • April 7, 2017 - Phil Coval and Sanjeev BA

    How OCF is Creating the Connected Car

    The Connected Car & Fragmentation Traditional car manufacturers have begun including early iterations of touchscreen technology with access to media and apps that can also provide basic HVAC (Heating, Ventilation and A/C) controls for the vehicle. These features can often be accessed through mobile devices with tailor-made apps from each car maker. However, this has led to OEMs building their own ecosystem silos, similar to the trends observed in the smartphone industry. The lack of an open, standardized framework has resulted in a fragmented market, where experiences from one OEM won’t work with another in any streamlined way; consequently, developers aren’t thinking about how to provide a rich user experience that allows cars and drivers to work in unison; this is a huge missed opportunity. Samsung OSG, OCF, and IoTivity The Open Connectivity Foundation (OCF) is creating a specification and sponsoring the IoTivity open source project to deliver an open and secure connectivity and […]

    Read More
  • March 27, 2017 - Ben Lloyd Pearson

    The Technical Value of Open Source Software

    This article is part of The Comprehensive Guide to Open Source for Business. Technical value is one of the most important traits of software development and engineering. A mature open source community will often have multiple companies, organizations, and individuals who contribute to and depend on the code base. Any groups that depend on the code are invested in the future of the code, making it much less likely for the code to disappear while simultaneously encouraging participants to play an active role in ensuring proper bug and security fixing processes. This article will explore the ways open source software can benefit a business from a technical perspective by offering improved code stability and greater control over the software stack. Open Source Improves Code Stability Software built by a proprietary component provider can typically only be fixed by employees of the vendor company. In an open source community, anyone can test or fix […]

    Read More
  • A V4L2 staging driver for the Raspberry Pi (RPi) was recently merged into the Linux kernel 4.11. While this driver is currently under development, I wanted to test it and to provide help with V4L2-related issues. So, I took some time to build an upstream kernel for the Raspberry Pi 3 with V4L2 enabled. This isn’t a complex process, but it requires some tricks for it to work; this article describes the process. Prepare an Upstream Kernel The first step is to prepare an upstream kernel by cloning a git tree from the kernel repositories. Since the Broadcom 2835 camera driver (bcm2835-v4l2) is currently under staging, it’s best to clone the staging tree because it contains the staging/vc04_services directory with both ALSA and V4L2 drivers:

    There’s an extra patch that it is required for DT to work with the bcm2835-v4l2 driver:

    You need to apply this to the git tree, in order for the vciq […]

    Read More
  • February 22, 2017 - Javier Martinez Canillas

    Samsung OSG Contributions to Linux Kernel 4.10

    Linux 4.10 was released on February 17; for this release, 6 engineers from the US and UK branches of the Samsung Open Source Group (OSG) contributed 341 patches that modified 44,709 lines of code. Again, most of the changes comes from Mauro Carvalho Chehab’s work to improve the Linux kernel documentation and fixing bugs all over the media tree. The following is a list of the OSG engineers that contributed to this release and the number of changesets and lines of code, as reported by Jonathan Corbet and Greg Kroah-Hartman’s gitdm tool. OSG developers by changesets Mauro Carvalho Chehab 231 67.7% Javier Martinez Canillas 77 22.6% Stefan Schmidt 11 3.2% Shuah Khan 11 3.2% Luis de Bethencourt 10 2.9% Derek Foreman 1 0.3% OSG developers by changed lines Mauro Carvalho Chehab 44,120 98.7% Luis de Bethencourt 162 0.4% Javier Martinez Canillas 156 0.3% Stefan Schmidt 145 0.3% Shuah Khan 92 0.2% Derek […]

    Read More
  • February 2, 2017 - Derek Foreman

    A Curious Wayland Bug

    Enlightenment has a slightly unconventional architecture. For many of its internal dialogues (settings, the file manager, etc.) it uses what we call “internal windows.” These are simply regular toolkit windows that use regular rendering back-ends; in the good ol’ days, this meant a connection to the X server which resulted in a render to a standard X window. In this scenario, the compositor gets the result back the same way as all X client windows, and it composites all internal and external windows together. Under Wayland, things get a bit scarier because now the compositor is the display server. Enlightenment makes a Wayland connection to itself; this gives us all manner of game winning capabilities we never had before. For example, let’s say the internal window wants to sleep and wait for a reply from the compositor (such as a released buffer to render the next frame into). We deadlock and fall down […]

    Read More
1 2 3 21