Diary: Chemnitzer Linux Tage 2019

In this article we are writing our diary about the two fascinating days at the Chemnitzer Linux Tage 2019. We invite you to visit us at our booth. This year the OSADL is our guest.

Managementtool from the Open-Source Development

Saturday begins early at 10:00 with a talk from Marie. Marie reports about how we at Pengutronix replaced our Wiki-based processmanual with a hacker-friendly solution.

Marie points out that our requirements have been:

  • usability for all users
  • participation
  • approval from our management
  • optional later ISO 9001 certification

As a company providing services around Linux-development hacker tools are established with our employees. Thus we want to use these very same tools for our process manual. That means:

  • Processes are documented as Restructured Text.
  • Metadata are part of the plain text document.
  • We use git to manage all the files.
  • We use Sphinx to translate the processes into a website. This makes it possible for our non-hacker employees to read the processes.

Marie's talk continued with the git workflow we use to edit the processmanual:

  • We have a protected master branch that can only be written by the management.
  • Employees can create their own topic branches in the same repository in which they improve old or design new processes.
  • The management reviews the new processes before merging them into the master branch.

The next part of Marie's talk is about how we use continuous integration to translate the plaintext into a website using git, Sphinx and Jenkins.

Marie wants to motivate all decision-makers to take a closer look at their employee's workflows. And to have the courage to select the tools making to those workflows for process manuals.

Container Stuff

My next talk was at 12:00 with Martin Neitzel. The schedule announced his talk as Linux container basics; but his first (and only) slide was titled Container Stuff. After he threw the first packs of gummy bears into the audience it was clear: this is going to be a fun talk.

Martin's solution is not to use an off-the-shelf solution like Docker or LXC. Instead he took a look at the low-level APIs for container. And thus the first half of Martin's talk is about unshare, setns and alike.

In the second part of his presentation he showed us how to use the systemd-nspawn as a thin wrapper around these low-level functions.

Recordings at the CLT with AI

My last talk for today is done by Daniel Schreiber. He talks about how videos are recorded at the CLT and how AI is used in that process.

Before this year the slides were grabbed using a HDMI-grabber and the sound was recorded from the amplifier in the room. But there was no recording of the speaker. This is mainly caused by the fact that the CLT do not have enough helping hands to have a camera-helper in every room.

Last year Daniel recorded the speaker in one lecture room using a 4K-camera to create a data basis for further software development.

He uses OpenCV to process the video files. First he tries to track the faces of the speakers. The results were moderate at best. In the next step he tries to track the movements of the speaker during his talk. Again with moderate results. The tracker got distracted too easily.

Daniel therefore gave in to the hype of neuronal networks. Naturally he got a bunch of new problems: different sorting of the color channels, differing range of values, lack of computing power, reasonable prepossessing and more...

But in the end he is able to track the speaker using a lot of computing power and interpolation. That makes it possible to crop out the part of the video that contains the speaker - just as a helping hand at the camera would.

Daniel has already deployed the new technique for this year's CLT: There are new racks with video-equipment and he is using multiple HDMI-grabbers with audio input. It looks like we can look forward to recordings containing videos of the slides and the speaker from this years CLT.

Writing Ansible Modules

Sunday begins late at 11:00. Martin Schütte gives an introduction in writing Ansible Modules. His poll at the beginning shows: half of the audience identify themselves as sysadmins, the other half identifies as software developers.

Martin begins his talk with the hint, that one should take a good look at the Ansible Module index before writing any code. A lot can be achieved using stuff what is already there. He uses code examples to give an overview how Ansible Modules work. Martin continues with design patterns as well as dos and don'ts for the development of Ansible Modules.

Bringing Light into the Dark

At 12:00 Alexander Schreiber started with his talk about Prometheus and Grafana. He begins this talk with a lot of things that monitoring should be able to do. That includes the metrics that should be monitored and useful alerting.

He continues to present the history and architecture of Prometheus.

Scripting GDB with Python

Michael Olbrich, developer in the Pengutronix graphics team, shows in his talk at 12:00 how to manage the challenges that arise when debugging complex GStreamer video pipelines. Unfortunately, those pipelines are both highly dynamic and complex and involve many threads. In case of a bug, looking into the code with GDB often shows highly complex and convoluted data structures. In the past, this often led to a lot of debug effort.

Meanwhile GDB got a debug interface which can be scripted with Python. Michael shows in his talk how to write pretty printers - little python scripts that make it possible to output well structured information that can be gained from the internal structures using the full power of Python. With the toolbox, complex interdependencies between structured data can be visualized in a well arranged way. Further on, it is possible to write selfmade GDB commands and functions.

Kernel-Panel

Like in the last years, Wolfram Sang moderates the kernel panel, and our colleague Lucas Stach, graphics developer and Etnaviv maintainer, was one of the participants on stage. The panel asked for questions from the audience. A topic that comes up almost every year is quality, and surprisingly it turned out that today it is often easier for embedded companies to use modern mainline kernels in production systems than for enterprise distributors. While embedded devices have a restricted set of functionality and can be well tested for their use cases, enterprise distros must take any use into account, and thus sometimes collect up to 40.000 patches, bringing up new quality challenges. Other discussed topics involved the trend towards more proprietary firmware in modern CPUs and the recent discussions about Spectre and Meltdown.

The Rest of Sunday

We spent the rest of the day with exiting discussions at our and other booths and enjoyed the Chemnitz Catering Days (as the catering-team calls themselves).

We want to thank all organizers, supporters, speakers, exhibitors and visitors. From our own experience we know how much hard work it takes to make such a event possible. All the more we are amazed how smooth and trouble-free everything went. It was fun to be at the CLT, meet friends and make new ones.

Some More Impressions from Today

These are some more impressions from today that did not fit under any other headline, but are still worth sharing: