|
|
Subscribe / Log in / New account

NLUUG/ELCE: Embedded devices and free software

By Jake Edge
November 12, 2008

On successive days, Harald Welte and David Woodhouse gave different views of the relationship between embedded companies and the free software communities whose code the companies are increasingly using. Their outlooks were not contradictory, but instead complementary; each came at the topic from a different direction. Welte looked mostly at what companies, particularly chip vendors could do better, while Woodhouse looked at what things the community could do to improve.

Welte and Woodhouse spoke at the co-located NLUUG autumn Mobility conference and Embedded Linux Conference Europe in Ede, the Netherlands, November 6 and 7. The Congrescentrum De Reehorst facility was excellent, well-suited to an event of this type which is not surprising as NLUUG has been holding two events there each year for the last ten years or so. In addition, the conference was well-organized and run; clearly displaying the experience that comes from the 26 years that NLUUG has been in existence.

[ The following covers Welte's presentation, Woodhouse's talk will be covered in a subsequent article. ]

[De Reehorst]

Welte kicked things off on Thursday with a talk entitled "How chipmakers should (not) support free software". As the conference got a bit of a late start and was already 15 minutes behind at that point, Welte said that he would make the time up because "everyone can understand gzip compressed speech". More seriously, he outlined his experience as a member of the Linux community, embedded developer, chip manufacturer from his recent work with Via, as well as a customer of consumer-grade embedded devices for gpl-violations.org; all of which result in multiple relevant points of view.

Linux is being found in more and more devices today—some less than obvious. Welte listed fairly well-known things like mobile phones and in-flight entertainment systems, but then noted that there are DSL Access Multiplexers (e.g. DSLAMs), payphones, ATMs, as well as vending and exercise machines that also run Linux.

Vendors of those devices are using free and open source software (FOSS) because of its strengths, which he outlined. There is a great deal of innovative and creative development done in FOSS because the barriers to entry are fairly low: the codebase is easy to read—at least in comparison to closed source—and there are standard development tools that are freely available. Because development is done in the open, developers will be embarrassed if their software architecture or code is bad. This also results in better security because of the code review that takes place.

[Auditorium]

The outcome of using FOSS this way is that "we should have a perfect world" with tons of embedded products, all secure and maintainable, that allow for additional or alternate functionality via third parties. The first of those, many embedded products, has been achieved, but we are still waiting for the other two, Welte said.

He contrasted a user's experience with Linux on PCs today with the experience provided by most embedded devices. For PCs, you can download the kernel, build it and it will run, with most hardware supported. You can choose from multiple distributions, any of which will have a kernel close to that of a mainline kernel and provide regular security updates. These are "things we are used to for many years", but things are not that way in the embedded space.

In the embedded world, every CPU or system-on-a-chip (SoC) has its own kernel tree, typically based on some ancient version of the kernel, that never gets cleaned up or submitted for mainline inclusion. So, they get no benefit from new features or security fixes in the kernel. There are no distributions to choose from, either for users or board makers and, even if updates are generated, there is generally no packaging system to use to update the code; re-flashing the entire device is required.

In Welte's words, "this sucks!" The embedded vendors get unstable and unmaintainable software with "security nightmares" and no innovation from elsewhere. The vendors have kernels that have diverged so far from the mainline that new features or fixes can't be backported, nor can their kernels get merged upstream. This is because the vendors tend to be very short-sighted, only focusing on getting one particular device out the door.

From Welte's perspective, embedded vendors do not understand the real potential of FOSS. They do not think in terms of creating platforms that others can build atop. In general, "they would rather sell a new [device] rather than improve the existing one". So, the vendors compete on the basis of the features their proprietary competitors implement rather than figuring out how to take advantage of the true strengths of FOSS. If, instead, they used FOSS to its fullest, they could outcompete the proprietary vendors in ways that could not be matched—except by using FOSS.

Turning to the chip vendors, Welte points out that there are two types of customers: Linux-aware and Linux-unaware. The Linux-aware customers—whose numbers are growing—will seek out vendors whose Linux support is better. It is already relatively late in the game: "if you don't have proper FOSS support, you will lose the 'openness competition'".

Chip manufacturers should be engaging in "sustainable development" by releasing kernels developed against the mainline in cooperation with the community. One large mistake these vendors make is to think their customers are only the tier-one companies that buy chips directly. There are many more downstream users of a chip once it has been integrated into other hardware; the buyers of those devices are also important as they will determine the success or failure of the product.

Unsurprisingly, Welte recommends that the development be done in the open, with a public development tree. Releases should not just be stable snapshots or big code drops; "post early, post often" should be the governing principle. FOSS is not just a technology, as chip vendors tend to think, it is a research and development philosophy that needs to be integrated into both the internal and external processes of the chip vendor.

On the external side, making documentation available, without a non-disclosure agreement (NDA)—or at worst a FOSS-friendly NDA—is essential. Internally, there is normally quite a bit of learning required to understand the FOSS philosophy. This will require training for engineers as well as product management folks. Having a clear FOSS support strategy, with clear goals, is important for making it work.

Product management needs to understand that supporting Linux is mostly a process of understanding the development model. The Linux APIs are not a particularly big hurdle, but understanding the community and how to work within it can be. Supporting Linux should mean supporting the mainline, not just N distributions, as N will grow over time, which leads to more problems. It is important to recognize that Linux-aware customers care as much about the quality of the code as they do about price and performance.

Engineering management needs to encourage engineers to communicate with the community, which requires real internet access. When faced with adding functionality to some FOSS code, they should be looking at ways to cooperate with others who have similar needs, rather than reinventing the wheel. Engineers need to figure out how and where to ask the right kinds of questions. They also need to learn that code is written to be read, not just executed; "this is something new to many people".

The community also has responsibilities to help the chip makers by providing "non-partisan" documentation because these manufacturers often have "no clue where to start or who to talk to" when they start considering supporting Linux. Commercial embedded distributors have a different perspective from the community so documentation from the community viewpoint is required. Welte says that various Linux Foundation sponsored efforts are helping in this area, but more needs to be done. A mentoring program of some sort might help by having FOSS developers willing to work with engineers to walk them through the process of getting their code upstream. The community must also work to keep from scaring chip vendor engineers away by being overly rude or terse; it is important that valid criticism be fully explained.

Welte sees a number of current or looming problems for chip vendors in supporting Linux, mostly involving patents or technology licensing issues. Various licensing regimes (like those for MPEG or Sony's memory stick) impose requirements that essentially preclude the development of free software drivers to talk to devices that implement those technologies. Everyone in the industry has these problems, though, so Welte suggests that they band together to present a case to the license holders; with enough smaller players working together, their voice can be heard.

On the whole, Welte is somewhat pessimistic about where embedded devices are headed. He certainly sees more FOSS being used in devices in the future, but expects to see them still be restricted so that they cannot leverage the full potential of FOSS. He does see "some very dim light at the end of a very far tunnel" with projects like Openmoko, but also efforts by some chip vendors, notably Intel, to fully support Linux.

It was not that many years ago when the desktop Linux situation looked as bleak as the embedded space does today, so there is hope. Presentations like Welte's can only help to bring that about. The audience contained many embedded developers, hopefully they can help their company's management see the benefits that Welte outlines so that his perfect world comes about sooner, but if the desktop is any guide, it will come about eventually.


Index entries for this article
ConferenceEmbedded Linux Conference Europe/2008


to post comments

NLUUG/ELCE: Embedded devices and free software

Posted Nov 12, 2008 19:12 UTC (Wed) by lmb (subscriber, #39048) [Link] (4 responses)

As a formatting wish: can we have italics instead of red for citations please?

Thanks for the excellent coverage.

Site feature

Posted Nov 12, 2008 19:19 UTC (Wed) by corbet (editor, #1) [Link] (3 responses)

You can change the presentation of quoted text in the account customization area if you want.

Site feature

Posted Nov 12, 2008 21:34 UTC (Wed) by dberkholz (guest, #23346) [Link] (1 responses)

Sweet! I missed that memo. The only weird part is that I can't seem to change the color around the comment boxes to entirely eradicate that #ffcc99.

Site feature

Posted Nov 12, 2008 21:35 UTC (Wed) by dberkholz (guest, #23346) [Link]

Nevermind, my stupidity -- forgot about that Greasemonkey script.

Site feature

Posted Nov 12, 2008 22:04 UTC (Wed) by lmb (subscriber, #39048) [Link]

Perfect; I had missed that. Thank you so much.

Spring NLUUG conference: Filesystems and Storage

Posted Nov 13, 2008 7:31 UTC (Thu) by aschwinm (guest, #33817) [Link]

I also liked the conference, it was difficult to decide which session to attend. The next NLUUG conference is about Filesystems and Storage on May 7 2009. More information can be found at:
http://www.nluug.nl/events/vj09/index-en.html

On January 22 there is an NLUUG event in Enschede. Both the conference and the event are in the Netherlands.

NLUUG/ELCE: Embedded devices and free software

Posted Nov 13, 2008 10:23 UTC (Thu) by NAR (subscriber, #1313) [Link] (7 responses)

So, the vendors compete on the basis of the features their proprietary competitors implement

Wow, what an evil thing to do...

If, instead, they used FOSS to its fullest, they could outcompete the proprietary vendors in ways that could not be matched—except by using FOSS.

In ways like...?

NLUUG/ELCE: Embedded devices and free software

Posted Nov 13, 2008 12:14 UTC (Thu) by njh (subscriber, #4425) [Link] (6 responses)

Software development is a cost center for a hardware company. Employ a couple of good coders to work on and publicly integrate support for your hardware in the mainline kernel and you get a best-of-breed operating system for your platform, with no per-copy royalties to pay, and with thousands of volunteer coders around the world constantly improving it and adding features.

NLUUG/ELCE: Embedded devices and free software

Posted Nov 13, 2008 14:01 UTC (Thu) by NAR (subscriber, #1313) [Link] (5 responses)

Currently this "best-of-breed" operating system drains my battiers twice as fast Windows - I'm not sure that thousands of volunteer coders around the world constantly improving it and adding features would offset this little problem. Maybe the lack of royalties might help, but employing a couple of good coders isn't exactly cheap either.

NLUUG/ELCE: Embedded devices and free software

Posted Nov 13, 2008 14:50 UTC (Thu) by tzafrir (subscriber, #11501) [Link] (2 responses)

Great example.

This issue has received attention. Then Intel provided powertop. Which exposed issues all over the place that people started fixing. I think that this eventually amounted to thousands coders helping to reduce the drain of batteries.

NLUUG/ELCE: Embedded devices and free software

Posted Nov 13, 2008 20:35 UTC (Thu) by NAR (subscriber, #1313) [Link] (1 responses)

Yeah, they are working on it. Maybe some day it will have some results as well. I mean it's just enough to read LWN: there was an article about "sound in Linux - it's a mess" a couple of weeks ago. There are problems with graphics support (either no free software driver or the performance of the hardware is "modest"). Pretty much problems everywhere the user looks at. And these problems are not too recent either. So I can understand the companies in the embedded business if they fail to see the advantages of the free software model (except the price tag, which with the support costs might not be that good).

NLUUG/ELCE: Embedded devices and free software

Posted Nov 15, 2008 11:26 UTC (Sat) by jospoortvliet (guest, #33164) [Link]

That's exactly the point of working with the community. We DO have results
in the latest kernel & userspace tools, but because vendors don't work with
the community and use outdated kernels, they won't profit from it for the
foreseeable future. The benefit of working with the community would be
gaining new features faster. More innovation, shorter time to market.
Exactly what they could need to outperform the proprietary competition!

NLUUG/ELCE: Embedded devices and free software

Posted Nov 14, 2008 0:24 UTC (Fri) by tao (subscriber, #17563) [Link]

Yes, but the makers of the hardware you're running the best of breed software on probably hasn't done what the article suggest either (that is, hired a couple of developers to fix the support for their own hardware).

How many kernel developers does Lenovo employ that submits patches to reduce power consumption for their laptops? How many Apple-employees actively submit fixes to the Linux-kernel? ... You get my drift.

NLUUG/ELCE: Embedded devices and free software

Posted Nov 14, 2008 0:32 UTC (Fri) by jschrod (subscriber, #1646) [Link]

Well, and on my Thinkpad T41 Linux has a 25% longer battery life than Windows XP (5 hours vs. 4 hours).

What do we learn from your and my observation? Not much, they are just isolated data points. Maybe that some devices are better supported than others. But that's actually the same in Windows, too.

very, very, VERY long tunnel...

Posted Nov 14, 2008 21:52 UTC (Fri) by roelofs (guest, #2599) [Link] (3 responses)

He does see "some very dim light at the end of a very far tunnel" ...

Sadly, I think that's the most realistic statement he made. While we all know about the benefits of the fully open-source model, the value proposition for hardware vendors will have to be demonstrated in a very visible way before they'll switch from their current business model--which involves relatively rapid, relatively minor iterations on the hardware, both to track the cheapest components and also to make secondary manufacturers and end users feel like they have to keep buying new hardware. Without a very public, very popular trailblazer kicking sand in their faces and showing real benefits of the same-hardware, software-centric FLOSS approach, they'll continue to focus on the costs, which Harald sort of glossed over. (Specifically, the time and engineering costs of working with the community; the IT costs of poking holes in their firewalls and setting up external servers; the legal costs of covering their horribly conservative asses; the competitive costs of telegraphing their plans to competitors; etc.)

I'd also point out that, if it didn't happen in the relatively golden period we just experienced, there's no way in hell it's going to happen in the current/coming economic environment. "Experimental" projects like a move to open source are always the first to get whacked, but it won't stop with a mere shutdown of the projects; there will be round after round of layoffs and all manner of associated ugliness to come.

Not that I'm pessimistic or anything. ;-)

Greg

very, very, VERY long tunnel...

Posted Nov 14, 2008 23:28 UTC (Fri) by dlang (guest, #313) [Link]

that's one way of looking at it, the otherwayis that since the budgets are so tight thecompanies that do work well with the community and lower their long-term costs will gain more of an advantage.

a lot of this is short-term vs long-term efficiancies.

if an embedded company uses up-to-date versions fthe software, it's easier for them to switch components as those other components are more likely to be supported already.

many companies have trouble taking the long view, but not all

very, very, VERY long tunnel...

Posted Nov 16, 2008 13:54 UTC (Sun) by Tet (guest, #5433) [Link] (1 responses)

the IT costs of poking holes in their firewalls and setting up external servers

Agreed, but that's something we can fix. There's no reason why we couldn't have a community operated public development infrastructure that embedded vendors can use. Something like sourceforge/savannah might work, if they started offering public git trees, but they've been around for ages, and haven't so far persuaded many vendors to head down that route. I suspect something tailored to the needs of the embedded world might prove more enticing.

very, very, VERY long tunnel...

Posted Nov 17, 2008 2:14 UTC (Mon) by dlang (guest, #313) [Link]

there are several places available for hosting git trees, github is the one that comes to mind, but I know that there are a few others.

the only holes that would need to be poked are the ones nessasary to sync to the external repository.


Copyright © 2008, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds