Annabooks, a long-time provider of Windows Embedded training and books, has just published a book on using UEFI, Yocto, and other open software to embed Linux on Atom-based devices. In this guest column, the book’s co-author introduces the book and explains why he and Annabooks decided to venture into the alien Land of Linux.
A journey into open software
by Sean Liming
It feels a little strange posting something on an Embedded Linux site, but the world is ever evolving and to stay current with its evolution, we need to evolve with it. Having spent 17 years working with almost every Microsoft operating system for the embedded market, doing something for Linux was a little out of my comfort zone.
When I was with Annasoft back in the late 1990s, I looked at a few of the early Linux distributions; but Linux didn’t quite match Microsoft had to offer at the time. What Linux did was to spark a paradigm change in the rest of the embedded market. Homegrown kernels and various embedded operating systems quickly disappeared in favor of Linux.
I didn’t give Linux a second thought until 2008. This is when Microsoft appeared to be throwing in the towel on embedded systems. They decided to focus the embedded effort on vertical markets and did major name changes that confused their embedded product offerings. They still haven’t been able to overcome this product confusion.
After a quick search, Ubuntu was recommended as a popular Linux distribution. I was blown away after installing Ubuntu. There were the basic open software office applications, Internet browser, and media player. If someone only needed these basic applications, they would never have to pay for software, again.
With my curiosity piqued, I started investigating how to build an embedded Linux distribution, and I quickly became lost. There were so many solutions and distributions; I didn’t know where to start. I wondered how someone new to Embedded Linux could get started. There appeared to be an opportunity, here, to expand our education services.
The need to learn more about Linux was becoming important, because I was starting to get Linux developers coming to my Windows Embedded classes. These developers were “kicking the can.” Some went back and started developing with Windows Embedded, but others felt Windows was too intrusive and lacked the operating system control they were accustomed to with Linux. I was at a loss to provide guidance when trying to decide between an embedded Windows approach or an embedded Linux approach to a system solution, since I didn’t have the experience to discuss the differences between the two OSes.
After talking to friends, colleagues, and partners, I started seeing that Intel was playing a big role in the open source community. Moblin and MeeGo were interesting; however they came and went too fast.
Then two things happened: a past colleague from Annasoft asked me to look at Intel’s canned UEFI solution, and someone else told me about the Yocto Project. I knew about UEFI, but the Yocto Project was particularly interesting because it aligned well with the development process for Windows Embedded Standard.
After a trip to an RTECC event to look at Intel’s Boot Loader Development Kit, and another trip to the Embedded Linux conference to look at the Yocto Project, I could see an interesting story developing. The Yocto Project supports the major processor architectures of ARM, MIPS, SH, and x86. UEFI initially supports x86, with support coming for ARM. So for this first effort, John and I decided to focus on open software for x86.
After much research and testing, we recently published “Open Software Stack for the Intel Atom Processor.” The book brings together an eight-chapter narrative that travels up the stack — from firmware with UEFI, to operating system using the Yocto Project, to application development.
The book is aimed at developers who are new to open software development, or who have been using closed solutions. Whether you’re building a custom board or using off-the-shelf hardware, the book discusses the different open software solutions available for the Intel Atom processor. For a dynamic learning experience, there are 23 hands-on exercises that help you set up a development machine to build the software for firmware, Linux distributions, and applications. The book provides a good introduction, and points to other resources to dig deeper into each subject.
Our journey from closed to open software has been interesting. The sense of community is amazing, as we have encountered many developers who’ve been more than willing to answer our questions. With Microsoft now requiring activation for Windows Embedded 8 Standard, it seems fortuitous that we started looking into Embedded Linux when we did, since some Windows Embedded developers might now have to look at using other embedded operating system solutions going forward.
With the current on-going level of activity in UEFI and the Yocto Project, it looks like our journey into open software will continue.
— Sean Liming
“Open Software Stack for the Intel Atom Processor,” by Sean D. Liming and John R. Malin, covers these topics:
- Introduction to Unified Extensible Framework Interface (UEFI)
- UEFI shell and applications development
- Building firmware with the Boot Loader Development Kit (BLDK)
- Build a custom Linux distribution using the Yocto Project
- Yocto Project SDK and Eclipse integration for developing applications
- Customizing video with the Embedded Media and Graphics Driver
- Introduction to optimization tools for the Intel Atom processor
Liming and Malin’s book is available in print and eBook (Kindle) formats:
- Printed Edition (221 pages) — $59 — ISBN-13: 978-0-9859461-2-8
- eBook for Kindle Readers — $50 — ISBN-13: 978-0-9859461-3-5
For purchasing information and other details, including the book’s complete table-of-contents, visit Annabooks’s website, here.