• 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
  • January 24, 2017 - Cedric Bail

    Improving the Security of Your SSH Configuration

    Most developers make use of SSH servers on a regular basis and it’s quite common to be a bit lazy when it comes to the admin of some of them. However, this can create significant problems because SSH is usually served over a port that’s remotely accessible. I always spend time securing my own SSH servers according to some best practices, and you should review the steps in this article yourself.  This blog post will expand upon these best practices by offering some improvements. Setup SSH Server Configuration The first step is to make the SSH service accessible via only the local network and Tor. Tor brings a few benefits for an SSH server: Nobody knows where users are connecting to the SSH server from. Remote scans need to know the hidden service address Tor uses, which reduces the risk of automated scan attacks on known login/password and bugs in the ssh server. It’s always […]

    Read More
  • This article will explain how to use GStreamer to capture Digital Television (DTV) streams; it will focus on terrestrial DTV and ATSC broadcasts in the Silicon Valley area to provide examples, but the principles are the same for every other DTV standard or supported location. If you want to follow the examples, you will at the very least need a Linux machine with GStreamer and v4l-utils, and a DTV capture device. For my ATSC testing setup I use a WinTV-HVR 950Q USB stick (Hauppauge), connected to a Debian desktop computer that runs the latest code for GStreamer and dvbv5-scan from their respective git repositories, both uninstalled. This setup works well for me as a developer but if you simply want to play DTV streams on your machine, the version from your distribution’s binary packages should suffice. A Few Notes on Receiver Setup You’ll need to have your receiver setup properly to capture multi-media content from a radio […]

    Read More
  • While there are some developers who are familiar with using Ecore_Evas to create a canvas for applications, we often find that new EFL users face some confusion when first trying to create an application. This article aims to provide a simple example of how to create your first EFL Wayland application. For those not familiar with the Ecore_Evas library, it is a set of functions that make it easy to tie together Ecore’s main loop and input handling to Evas; as such, it’s a natural base for EFL applications. While this combination makes it easy to create the basic aspects all applications need, for normal applications (those that use buttons, checkboxes and layouts) one should consider using Elementary. Ecore_Evas is extremely well suited for applications that are not based on widgets. It has a main loop that delivers events, does basic window handling, and leaves all of the drawing up […]

    Read More
  • December 29, 2016 - Arun Raghavan

    Playback Synchronization & Video Walls with GStreamer

    Hello again, and I hope you’re having a pleasant end of the year (if you are, you might want to consider avoiding the news until next year). In a previous post, I wrote about synchronized playback with GStreamer, and work on this has continued apace. Since I last wrote about it, a bunch of work has been completed: Added support for sending a playlist to clients (instead of a single URI), Added the ability to start/stop playback, Cleaned up the API considerably to improve the potential for it to be included upstream, Turned the control protocol implementation into an interface to remove the necessity to use the built-in TCP server (different use-cases might want different transports), Improved overall robustness of code and documentation, Introduced an API for clients to send the server information about themselves, and finally Added an API for the server to send video transformations for each specific client to apply before rendering. […]

    Read More
  • If you’re reading this blog, you’re probably among the growing number of software professionals who understand how valuable open source development is to the production of modern technology. Many of us have seen how open source can reduce costs, increase development speed, increase overall product quality and more, but it can often be challenging to quantify the value of this using understandable metrics. Fortunately for us, open source development happens in public so a lot of information can be extracted from public resources such as git repository logs, email mailing lists, code review and bug tracking platforms, and more. One relatively new and useful tool to aide in this is GrimoireLab from Bitergia. We’ve spent the last few months exploring the capabilities of this tool to find out what kind of metrics we can use to track the success of the efforts of the Samsung Open Source Group. Doing so […]

    Read More
  • December 15, 2016 - Javier Martinez Canillas

    Samsung OSG Contributions to Linux Kernel 4.9

    Linux 4.9 was released on December 11, making this release the biggest to date in number of changes. In this development cycle, the Samsung Open Source Group (OSG) contributed 394 patches that modified 15,856 lines of code. Although 4 engineers contributed to different Kernel subsystems, most of the changes comes again from Mauro Carvalho Chehab’s work to improve the Linux kernel documentation. 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 238 60.4% Javier Martinez Canillas 108 27.4% Shuah Khan 24 6.1% Luis de Bethencourt 24 6.1% OSG developers by changed lines Mauro Carvalho Chehab 14,747 93.0% Javier Martinez Canillas 518 3.3% Shuah Khan 314 2.0% Luis de Bethencourt 277 1.7% OSG Contributions to This Release On this release, […]

    Read More