I got home from ELC on Wednesday night. I’m not doing embedded work on a day to day basis as much anymore but I gave a talk on Ion which was my primary reason for attending. IoT was unsurprisingly a big theme of the conference. I was amused to hear other people referring to IoT as “embedded Linux plus the cloud” which is what my mental model has always been. I didn’t go to many (any?) of the sessions about various IoT solutions mostly because there are too many to choose from. I’m not in a position right now where I’m directing IoT strategy and if that ever were to change my information would be out of date anyway. The useful sessions were mostly covering specific aspects of IoT or general Linux. Highlights:

  • Linus and Dirk keynote chat on Monday. This is a pretty standard event at many Linux Foundation events. Linus Torvalds and Dirk Hohndel sit in chairs and talk about stuff related to Linux, sometimes git or scuba diving projects. I’ve seen this chat at other events before so there wasn’t much that was new to me. If you ever go to a Linux Foundation event and this is on the schedule you should make sure to go at least one time.

  • How to Port Linux to a New Processor Architecture: exactly what the title says. It covered how to go from deciding whether or not to actually do a new port to adding everything in between. Most of the content was what I expected: there are lots of individual files and directories and configs to add to match your specific hardware. The hardware used as the case study was NUMA based as well so there was some discussion on how to best model that. The chances of ever needing to add a brand new architecture are pretty slim. The content is still very useful for existing architectures (How does your architecture boot and init itself?).

  • Swapping and Embedded: A technical overview of compressed swap. Few embedded devices have storage suitable for swapping. Instead of saving them to storage, a portion of ram can be set aside to store compressed pages. The talk focused on the basics and talked about new work to improve speed and compressibility. I wish it had gone into a bit more detail but still a solid talk.

  • Devicetree BoF: I’ve never been deeply involved with devicetree but I have an interest in the technology. I was mostly interested in the discussion about the specification update which is finally happening. The existing devicetree specification is based on ePAPR and doesn’t include anything ARM specific. Grant Likely (devicetree maintainer emeritus) is heading up a committee to update and maintain the specification. This has been sorely needed for a long time. It’s hard to make a technical case without a proper specification. A compiler and text documents are not the same thing. One of my biggest pet peeves about devicetree is the line “Devicetree is supposed to describe the hardware”. While true, this is remarkably limiting and there are plenty times where it is useful to put not-exactly-hardware in the devicetree. It sounds like there is going to be some discussion about finally encoding this in a reasonable way. They way it’s described it really starts to sound like ACPI though which is not too surprising.

  • V4L2 talk: Mostly discussing some upcoming V4L2 API changes. Laurent Pinchart did a very good job of going from the basics to the complex API topics. Probably not relevant to most of my work but fun nonetheless.

  • USB in Linux: A basic overview of how USB works in Linux. I don’t know very much about USB so it was a great talk for me. The speaker talked about the fundamentals (interfaces, descriptors) and then got into a little bit of security and using configfs. Spoiler: don’t plug random USB devices you find into a computer you care about. I really liked this talk and recommend watching when the videos come out.

  • IoT Security that is Boring: I was expecting a bit more to this talk but it was mostly about an IoT distribution and how they improve security: you get a premade distribution and can’t change anything at runtime. I really wasn’t the target audience for this talk.

  • Handling Top Security Threats in IoT: Some security fundamentals. “Don’t share keys between devices” was repeated many times. A little bit basic but the speaker was good.

  • Tales of GPL Compliance: Karen Sandler is the director of the Software Freedom Conservancy and gave a talk about GPL enforcement actually works. The goal of compliance work is to get companies to comply with the GPL. This sounds tautological but the point is that the SFC wants companies to comply without needing to file a lawsuit. The line was “Today’s violator could be tomorrow’s contributor” and that’s what the SFC is striving for: keeping the GPL strong and encouraging companies to contribute back not burning them to the ground with lawyers. I enjoy listening to Karen Sandler talk because she helps remind me why free as in freedom is important in software (my views on free software have become remarkably cynical over the years so I need a little optimism every now and then)

  • Cryptography for Embedded Developers: Crypto 101. I knew I was going to enjoy the talk when it started out with a discussion of the differences between encryption, integrity, and authenticity. Went over the basics of symmetric keys, asymmetric keys, PKI, various algorithms etc. I knew most of the content but it was well presented and a solid introduction to the topic.

  • Lessons From Ion: This was my talk. Overall I was pleased with how it went. It was the very last slot of the conference and it was scheduled against two other interesting to me talks so I was expecting the attendance to be low. More people showed up than I expected for what is a fairly specialized talk. I wish I had practiced giving the talk a little bit more so my delivery was more fluid. Lesson for next time. The actual content of the talk was expanding on what to learn from the design of Ion. I didn’t just want to give a status report talk because I find those somewhat boring to go to. The goal was to explain what Ion did well and not so well so those writing new drivers can try to get it right. I expect IoT that uses Linux will run into many of the same issue as Android. Maybe they can do it better. I got a lot of good questions and some discussion about the future of Ion. I’m feeling a bit more optimistic about trying to put in some of the hard work on Ion. We’ll see what comes out of it.

Every session was recorded, the videos should be available within the next few weeks. Slides are available for those presenters who followed the guidelines and uploaded them.