Create custom Linux-based systems regardless of the hardware | Opensource.com
Create custom Linux-based systems regardless of the hardware
An interview with The Yocto Project community manager
Jeff Osier-Mixon is a community manager at Intel for The Yocto Project, an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture. Basically: The Yocto Project allows development to happen without the worries of what hardware the code will run on.
He will be ensuring the success of The Yocto Project Developer Day on October 23. There will be two tracks, so both new and experienced users are welcome. And then, Jefro will be speaking on Friday, October 25 at Embedded Linux Conference Europe in Edinburgh, Scotland. (Note: LinuxCon Europe is from October 21- 23.)
We learned more about Jeff and his job with Intel in this interview. His Twitter profile says he's an anatidaephilic and an enchiridionophile—so, of course, we asked: Which one is worse?
Some of his response: Given your own obvious gnosisophilia I think you must readily understand!
In this interview, find out more about The Yocto Project and their upcoming Developer Day, learn a few community management tips, and discover what Jeff would do with the Galileo, Intel-Powered Arduino board.
What does the The Yocto Project aim to accomplish? What impact does it have on the average person?
The Yocto Project's main goal is to provide and promote good tools and practices for developers to build embedded Linux distributions, regardless of hardware architecture. This sounds very general, but specifically it means that we spend a lot of time building and testing tools and processes in the real world.
The Yocto Project co-maintains (with the OpenEmbedded Project) a build tool called BitBake that works with a large set of metadata we also co-maintain called OpenEmbedded Core. These form the basis for creating a complete Linux system. BitBake takes "recipes" as input—these are instructions for building individual components. To get started, you'll download one instance of these tools, which we call the Poky reference system. To get the support for whatever piece of hardware you want to use, you'll also grab a board support package (BSP), a set of recipes that encapsulates the bits required to get a particular board or processor or whatever it is running. Add more recipes into the mix, often in the form of layers—groups of related recipes—and turn the crank.
At the end of the day, you have a flexible system that builds an entire Linux distro in a very repeatable, controllable way. We also provide a method for creating a software manifest that makes it very simple to comply with all of the license requirements in an entire release, which many find to be incredibly important. (I wish more companies found this important.)
What this means to the average person is sort of complex. The embedded Linux world has often been referred to as the "wild west" (and not just by me). For the average software developer, what this means is that this world is now becoming a vibrant, fertile place for new ideas, new products and devices, and very strong development tools, both in a freely available context like the Yocto Project and in a paid support scenario such as those offered by the major embedded Linux operating systems vendors (OSVs) like Wind River Systems, Mentor Graphics, Enea AB, MontaVista Software, Timesys, etc. Several of those organizations now use the Yocto Project as their upstream provider for embedded Linux build tools.
For the average person on the street, well, honestly most people, they don't know or care much about embedded software development. But it does affect their lives greatly whether they know it or not in terms of new technologies all over the world in dozens or hundreds of industries. From medical to military, green energy, automotive and aerospace, satellites and space vehicles, utilities like water systems and power grids, hard science (hello Higgs boson!)—even mundane stoplights and phone switching networks and high-tech DVD blu-ray washing machines... I could go on for a while... but, pretty much all of that is running embedded Linux, and a surprising amount is using the Yocto Project, or at least the tools and development technologies created by it.
I guess you could say our highest aim is to make the world a better place, but that's open to myriad interpretations. For day to day goals, though, we like to stick to the things we can get our hands around, and for us that's making embedded Linux easier for people to use.
What are some of the expected outcomes from The Yocto Project Developer Day?
This will be the fifth Developer Day we have hosted, and all of them have been very well received. The idea is to provide two tracks, one for those new to the project, and one for more experienced users. The new folks get a full 2+-hour presentation all about the project and its tools, how all the moving parts fit together, and then another few hours in the lab hands-on actually operating the tools with an instructor. Advanced users have already been through that or its equivalent, so we give them a chance to put their hands on newer technology—this time they'll play with the latest Eclipse plug-in as well as the latest YP-specific graphical user interface project we are calling WebHob, plus some unstructured time in the lab with YP maintainers so they can ask specific questions with the lab machines right there. In the afternoon, while the new users are in the lab, advanced users are treated to a series of in-depth presentations.
The lab systems themselves are worth talking about. In some previous DevDays, we outfitted entire rooms with up to 60 computers to do hands-on training, but this required renting machines and shipping and handling many pallets, not to mention tons of setup and personnel. Going forward, we have received the generous use of three large server-scale machines which have been configured as virtual private cloud servers, each able to serve 15 users over VNC or ssh, and we are bringing both a large wireless access point and a 24-port wired switch. This enables us to bring very complex hands-on labs to people with a minimum of hardware required—just a couple of (heavy) boxes, and attendees can connect directly to the labs with their laptops.
What we expect for new users is that they will come away from the day with a solid grounding in what the Yocto Project can offer them and their projects, with hands-on experience and an opportunity to ask questions of the very people who design and create the tools themselves. For advanced users there is an even greater chance to interact with the project's maintainers, an opportunity to work with the latest Eclipse plug-in and WebHob GUI, and some very intriguing presentations that we hope will get people's synapses moving. I expect that everyone will be well fed, adequately caffeined and sweetened, and we may even give away a little bit of silicon before the day is over. I think a good time will be had by all.
Do you have any tips for community management?
That is a very wide question! I'll try to sum up some words of what I use that passes for wisdom.
Community management is really a misnomer. It is very much a practice of influence and understanding rather than traditional management. It is really a practice of listening, much more than doing anything, and when it comes time to do something, do the thing that wins for the most people. Classic negotiation, in other words, and understanding what people need, even in really frustrating circumstances. This is really important in social media, on mailing lists or IRC, or any other place where you're talking. I try to spend most of my time listening. It's an important and wonderful skill to cultivate. (You'll notice in this interview that I spend a fair amount of time talking as well.)
Community management is a hugely complex subject, and I would really encourage anyone interested in the subject to do three things:
- Contact one of the many groups of community managers out there, all of them are friendly and all of them are willing to take on another hungry participant.
- Go read Jono Bacon's Art of Community. Then read it again, and read some of the many really good blogs on community management, like Dawn Foster's fastwonderblog.com.
- Attend one of the fantastic conferences on the subject, particularly the unconferences related to the Community Leadership Summit. The main summit is co-located with OSCON in July in Portland, but there are regional conferences at different times of the year.
A joke: How do you know when someone at your party is a community manager? Answer: They'll tell you.
What do you think about the latest Intel-powered Arduino board? What's one thing you would make with it?
The Galileo is a fantastic leap into the world of open hardware by a company that is not known for open hardware, but is known for taking positive risks. Earlier this year the open-hardware, Atom-powered MinnowBoard did make a huge splash (haha), though it was created by board manufacturer CircuitCo rather than Intel itself. Personally, I have long been a fan of open hardware, and I am happy to see this partnership with the very successful Arduino project that has been so significant in introducing people to technology, particularly young people, and so crucial to the growth of the Maker community. I am especially proud of the role the Yocto Project is playing in the success of Galileo.
As for ideas, I am somewhat famous for coming up with tons of projects for various dev boards and microcontrollers but never actually finishing them. The first thing that leaps to mind is night camera—IR sensor and camera controller to snap the critters who eat out of my compost at night, networked of course. What would you make?
How do you apply the open source way in everyday life?
For me, that is sort of a complex question, because I take the open source way pretty personally. It is useful to organize life around principles, and if I think about the principles of open source, they seem at first to be principles for groups rather than individuals. But if you think about them a while, there are some deeper meanings that make some sense in everyday life. I'll just cover the most obvious open source concepts of: inclusion, transparency, and meritocracy. (I think about this stuff a lot.)
Inclusion is an obvious one for a community manager, and goes back to what I said earlier about listening. Obviously this is just as relevant in personal life as it is in business life, in going to the grocery store, in volunteering somewhere. Inclusion is a daily part of human existence, and if you aren't tuned to it, you'll miss a lot of the unspoken communication going on. A big part of actually including people—not just acting the role—is really listening, and also in speaking clearly and being heard yourself, being included. Being a part of a bigger thing. These aren't difficult things conceptually, but they can be difficult emotionally for complex monkeys like us. We can make them simpler.
Most people think the concept of transparency is all about baring everything, letting it all out, but in life, as in code, that very often doesn't work very well. I think of transparency as letting out the parts that are supposed to be out—as an exercise in appropriateness. We've all had the experience of inappropriate sharing either from ourselves or from someone else, and we don't want to be that person. But transparency is most often a positive thing. It's like telling your friend about your fantastic night out on the town while in a crowded public place, without fear of being overheard, because you are clear on what is appropriate to say and what isn't. I think that's what transparency means. It respects the boundary between me and you in an open way, and that's fun. It is freeing.
Meritocracy. Anyone from a big family knows all about meritocracy in the sense of competition. I would really like to reclaim that term away from competition, though, because in my personal life it isn't about competition. I haven't had "best friends" since grade school, for example. I trust people in direct relation to the trustworthiness that they show, and on the level in which they show it, which is just what meritocracy is. In a personal life, there isn't an artificial limit at the top of the stack, or at least the limits are different or personally defined, and that gets reflected in my work life as well as my personal life. I find that being aware of this dynamic lowers my stress level, because it takes the element of judgment out of the equation.
Maybe this is deeper than you expected, but you did ask a community manager!