Building Embebbed Linux Systems
By Karim Yaghmour, Jon Masters, Gilad Ben-Yossef and Philippe Gerum
Translated by P. Scott Horne
O'Reilly's page for the book.
Amazon UK's page for the book.
Embedded systems are so cool! But it's also difficult to accumulate all the understanding one needs to actually decide on a device platform and the tools to develop the device into something useful and, most importantly, fun. Working daily on Linux, building GNU/Linux software, my choice is of course to build an embedded GNU/Linux system. At our LUG (PLUG.fi), we have a gadget club for playing with devices. Fortunately we have some members who also know about hardware. However, it is still frustrating to not personnally understand what is actually needed to construct a fully functioning embedded device.
I will still have to rely on the hardware guys to tinker with the power supplies. However, after reading this book I have a much better understanding of everything I need to know in terms of the software, and what are my hardware component options.
The first thing I checked out was the hardware section. That's what is giving me the most headaches when it comes to Linux devices. I am happy to say, my confusion abated after reading the explanations on ARM, AVR32 etc. architectures. Having all the info on the various buses, storage options, CAN etc. in one place was a relief. Somehow seeing them all in one place makes understanding this whole topic a lot easier.
Much of the info on the kernel, root file system, and development tools are the same as when building your own linux system/distro on a PC. Of course there are many differences too, but the differences aren't as daunting as I had thought.
The book is well written and an easy read. I found it very useful especially for someone who comes from the software side, but I would imagine a hardware person would equally well learn from the software related topics.
I was very pleased to find information on the minimum requirements for running embedded linux. In other words, when I should skip using linux and use some other environment instead.
I wasn't interested in real-time linux myself, but for those who are, there are three chapters covering that aspect of linux, including one on Xenomai.