Develop fascinating Linux-based projects using the groundbreaking Yocto Project toolsAbout This BookOptimize Yocto Project's capabilities to develop captivating embedded Linux projectsFacilitates efficient system development by helping you avoid known pitfallsDemonstrates concepts in a practical and easy-to-understand wayWho This Book Is ForIf you are an embedded systems enthusiast and willing to learn about compelling features offered by the Yocto Project, then this book is for you. With prior experience in the embedded Linux domain, you can make the most of this book to efficiently create custom Linux-based systems.
What You Will LearnDifferentiate between OpenEmbedded, Yocto Project, Poky, and BitBakeUnderstand the BitBake metadata syntaxCustomize an application development environmentDebug your application in a cross-compiled environmentAdd and remove features in the Linux kernel configurationMeet your project's license compliance requirements with less hassleMake embedded Linux systems using Yocto ProjectIn DetailStarting with the very basics of the Yocto Project tools, this book will provide you with all the knowledge you need to work on real Linux-based hardware.
With emphasis on practical implementation, this book starts by helping you set up and configure the Yocto Project tools. It then explains the Hob interface for BitBake in detail. You will explore different directory layouts and learn to maximize the use of the Poky build system.
Compliance is always a hassle, so you will learn the methods to share source code and modifications, and how to fulfill open source license compliance effectively and convincingly. You will then gain experience in the use and construction of layers.
This tutorial guide will teach you everything you need to know to get up and running with Yocto Project and develop amazing Linux-based projects.
This book describes the Yocto Project in detail. Yocto is an extensive set of tools for the development of custom Linux distributions. As readers of my blog likely know, I have created my own custom Linux for the BeagleBoard/BeagleBone family of boards as described in my book Hacking and Penetration Testing with Low Power Devices. Custom Linux distributions is a topic of interest for me.
What the book covers
The following topics are covered: what is Yocto, creating Poky-based systems, using Hob to make image building easier, grasping the BitBake tool, detailing the temporary build directory, assimilating package support, BitBake metadata, developing with Yocto, debugging with Yocto, external layers, custom layers, customizing recipes, GPL compliance, and booting a custom image.
What I learned
Despite my experience building a custom Linux distribution for penetration testing to run on the BeagleBone Black, I learned quite a bit from this book. It goes pretty deep into the inner workings of Yocto, BitBake, and related tools.
What I really wish was in the book
The book does a good job of introducing Yocto to the reader. What I really wish was in the book was a couple concrete examples throughout the book on how to use these tools. The final chapter does present an example. It is for a fairly obscure and somewhat expensive board (Wandboard), however. I would have much rather seen a more prominent board like the BeagleBone (or even, dare I say, the Raspberry Pi) used as an example throughout the book.
The Verdict
If you are considering building your own custom Linux you might pick up this book to help make the process a little less scary. If you are using something other than the Wandboard, some fear might remain, however.
Being new to Yocto I found this book to be a great starting point. There is a lot of information here and the authors did a nice job presenting it. I plan on getting back into embedded soon (ARM) and this book should come in real handy. I do have two rather minor points: I would have preferred more in-depth examples, and in these examples I want to see the current directory on the command line (PS1 var). I realize this may have been omitted to save space, however, it was often difficult to know what directory to be in and it would have prevented some of the mistakes I came across.
This book provides a comprehensive introduction to Yocto, and is written in a much more approachable way than the official documentation. I think this book will give easy access new Yocto users. It also provides some insight to features which have confused me, even though I have used Yocto for some time, which means the book is also useful for experienced users.