rsc's Diary: ELC-E 2017 - Day 1
This is my report from the first day of Embedded Linux Conference Europe (ELC-E) 2017 in Prague.
My plan for the first timeslot at 09:00 was to see my colleague Marc Kleine-Budde's talk about "OP-TEE - Using Trust Zone to Protect Our Own Secrets", but the room was so fully crowded that I didn't get a seat any more (embedded folks seem not to be too happy to join keynotes early in the morning and prefer tech talks...). So I started the day with a little bit longer coffee break... Obviously, more conference attendees were also not amused, so the talk will be repeated on wednesday.
Linux Powered Arctic Buoys
In the second talk, Satish Chetty reported about "Linux Powered Autonomous Arctic Buoys".
The speaker is operating some of those self built and low cost sensor carriers in Alaska as a part of research activities and talked about the experiences he made with operating an embedded linux / ARM based platform at temperatures as low as -40 °C. The devices are being used for research of arctic ice meltdown in summer (while "summer" is not what you think of, when it comes to arctic locations).
One of his most important topic was to save as much power as possible with the measurement device: it schedules one measurement cycle, then shuts down with the help of a microcontroller and then wakes up hours later to start the next cycle.
Surprisingly, it was found out that standard mobile phone battery packs are optimal for power supplies, as these can be easily replaced by untrained staff (such as bear hunters) under harsh environmental conditions, and even can be charged in the research station with standard equipment. However, some other problems such as cable bites by polar foxes or ice bears sitting on the sensor carriers could not be solved so far.
In the next talk, Walt Miner gave an insight into the Automotive Grade Linux project of the Linux Foundation. Unfortunately, the talk was very high level and didn't go into much technical details. The main message was to encourage the automotive community for more collaboration.
During the last slot before lunch, Anna-Maria Gleixner and Manuel Traut reported about their experiences with Jenkins and libvirt to automate their testlab for the Preempt RT testing. It turned out that many of their requirements are quite similar to our own (which motivated us to develop labgrid).
Unfortunately, it seems like test automation is currently a hot topic, and everyone looks around, doesn't find a project that fits his need and starts a new one.
This impression continued during Andrew Murray's BoF session "Farming Together": many of the attendees operate a test farm, but almost nobody uses the same technology. Agreement can be achieved in the upper parts of the stack: people use Jenkins and LAVA there (we do that as well, for automatic builds and for our kernelci.org testlab).
Tim Bird encouraged the crowd to create a mailing list and a wiki page, which was created during the BoF session on elinux.org. On that page, contact data of interested people will be collected.
The "Bash the Kernel Maintainers" BoF by Laurent Pinchart dealt with the well known problem to get kernel maintainers into accepting certain patches. One problem is that, even small contributions, sometimes fall into some kind of "black hole" and nobody answers any more. People only recognise after months that the path got lost. In many cases, it is especially a problem for small consulting companies, who might have moved on to other topics or even don't have the respective hardware any more when feedback finally arrives. Hans Verkuil proposed to talk about this kind of issues openly on the mailinglists; maintainers might be more responsive if they know those issues.
The conclusion of the session was: ping politely, and continue talking to the maintainers.
Another highlight for the Pengutronix team was Jan Lübbe's talk about "Automation beyond Testing and Embedded System Validation". The background of those activities is that Pengutronix quite often integrates many (constantly changing) Open Source components for customer projects. As updating and rollout of updates doesn't work without intensive testing, it seems to be time for more automation in that area. However, it was an important criterium to use the same remote control technology for automatic tests as well as for interactive work at the developer's desks, as many of the embedded targets are only available in small prototype quantities.
Other features which could not be fulfilled with the existing frameworks are testing of updates (including booting of devices during the test) or concurrently remote-controlling more than one device (i.e. video streaming box + receiver). Jan gave a shot overview about the currently existing test frameworks and explained why they didn't turn out to be a solution for our requirements.
labgrid provides a python based infrastructure. Remote control devices such as power switches or USB serial converters are abstracted as drivers. An important feature are the "strategies": they can be used to instruct the system to bring the device-under-test into a certain state (i.e. the Linux userspace commandline). If necessary, the system is automatically booted or provisioned with new firmware behind the scenes. The tests themselfs are written in pytest, the output is generated as JUnit XML files and can for example be visualized in Jenkins.
For labs which consist of more than one PC, the labgrid concentrator does the coordination of the available resources.
Besides the test functionality, labgrid can also be used in production lines, to put the firmware into the devices and do the production tests.
At the end of the talk, he showed a demo and automated the upgrading of a qemu based simulated hardware with the help of RAUC.