Cross-posted from my blog on the Yocto* Project website. Check out the complete site for more information.
Back in my college days, I sang in the University Chorus, one of those big choirs who sang a variety of pieces, mostly classical and rarely a more contemporary song. One time we had a young music director who was rehearsing us on a newer piece with just a piano player. When we had most of the vocal parts worked out, he announced that at the next rehearsal, the piano would be joined by guitars and percussion. "Then," he said to us with a twinkle in his eye, "the piece will really begin to cook."
And it was amazing! The addition of those impact players really added a lot to the experience of the music, more than just adding individual singers. The whole song cooked and sizzled and sprang to life.
This is the kind of experience I have seen with the Yocto Project over the past six months. In addition to the growing chorus of individual developers, we are seeing key impact players like TI, FreeScale, Intel, Mentor Graphics, Wind River and MontaVista join the ensemble and make critical contributions.
And it seems to show by the number of downloads we are seeing - our build and release engineer Beth Flanagan tells me that in the first two days after the bits came online, we already had like one fifth of the downloads we had through the entire lifetime of the 1.0 release.
The complete release notes for "edison" are a good read, since you see everything from the complete list of 21 features, the 76 unique contributors and the number of yocto-seconds it took to do the official build. Here are a few key highlights that I picked out, see the release notes for the complete list.
- Hob - Using the Yocto Project to build Linux* images, you usually need to learn which configuration file is located where so you can change it with a text editor. We wanted an easier and quicker way for someone to build an image by bringing all of these options together in a single place. The Hob is our answer to this. We have plans to enhance it further, making it a place to solve other usability issues as we discover them.
- System builder support in Eclipse* - similar to our work on the Hob, we have added automation for the system developer in Eclipse in addition to the application developer support. What this means is that with 1.1 you can use Eclipse as the center of your embedded development world. Now you can load up the recipes for a Linux system into an Eclipse project, edit the recipes right in Eclipse, then kick off the Hob to do the build. You can still use Eclipse to create an application, deploy it to the embedded device, poke at it with analysis tools (like the newly added systemtap) and debug it remotely. We have a little video which shows these features working.
- OE Core branding - With the Open Embedded Core as the common upstream project between the Yocto Project and the Open Embedded Project, we have renamed some things derived from that core. For example, to build small footprint images in Yocto 1.0, you would build "poky-image-minimal" which raised questions about why "poky" was used in this context. This is now the less confusing "core-image-minimal".
- Layer Tooling - A very powerful part of the Yocto Project architecture is "layers." This feature allows customizations to be added to the system at every step in the value chain from sand to finished device. Some of the clear feedback we received from folks was that we needed an enhanced set of tools to work with layers. These perform a variety of functions, like complaining when a .bbappend file refers to a .bb file which doesn't exist to combining layers together into a single one.
- Multi-lib and x32 - Common processors in embedded systems are coming with some not-so-common features these days. 64 bit support and multi-core used to be features you would find only in big iron servers. But these features come with a price. For example, to take advantage of 64 bit data types, you would normally be forced to compile the entire system to run in 64 bits. But if there are only a few parts of the software which need this large data support, then you have wasted a considerable amount of the system's resources by compiling everything to use 64 bit support. And frankly, some common applications have not been ported to work with 64 bits and might never be. Multi-lib support is an excellent solution, allowing the developer to select 32 or 64 bits as appropriate. X32 is another option, which allows an x86-64 system to run with 64 bit registers but 32 bit data types. x32 is still being developed in the Linux ecosystem, but we have the first steps of this support in the Yocto 1.1 release.
- Developer Guide and Videos - We're constantly trying to make embedded Linux development more accessible to more users, whether they are experience Linux geeks or not. To enable a broader community of developers, we have a new Developer's Manual and instructional videos for using Hob and the Eclipse tools.
And as usual, we have updated the kernel (v3.0.4) and toolchain (gcc 4.6.1) to the most recent stable community releases, as well as upgrading numerous other Linux user-land versions.
We hope you enjoy this release, that it enables you to create the next insanely great device. Thanks to everyone who contributed and to the community at large who make this song really cook.
If you are at the Embedded Linux Conference - Europe, I hope I get a chance to see you. We will have a number of Yocto Project talks and demos and contributors on hand in Prague.