What you need for this book
You need the following prerequisites to get the most from this book.
Software prerequisites
Regarding the software, the reader should have a little knowledge of a non-graphical text editor such as vi, emacs, or nano. Even if the reader can connect an LCD display, a keyboard, and a mouse directly to the BeagleBone Black and can use the graphical interface, we assume in this book that the reader is able to do little modifications to text files by using a text-only editor.
The host computer, that is, the computer the reader will use to cross-compile the code and/or manage the BeagleBone Black, is assumed to be running a GNU/Linux-based distribution. My host PC is running an Ubuntu 14.04 LTS, but the reader can also use a Debian-based system with a little modification, or they may use another GNU/Linux distribution, but with a little effort mainly for the installation of the cross-compiling tool. Systems such as Windows, Mac OS, or similar are not covered in this book due to the fact that we should not use low technology systems to develop code for a high technology system!
Knowing how a C compiler works and how to manage a Makefile
could help, but don't worry, all examples start from the very beginning so that even a non-skilled developer should be able to do the job.
This book will present some kernel programming techniques, but it must not be taken as a kernel programming course. You need a proper book for such a topic! However, each example is well documented, and the reader will find several suggested resources.
Regarding the kernel, I'd like to state that by default I used the onboard kernel, that is, version 3.8.13. However, in some chapters, I used a self-compiled kernel, version 3.13.11; in that case, I gave a little tutorial about how to do the job.
If you're using a newer kernel release you may get minor issues, but you should be able to port whatever I did without problems. In the case that you are using a very recent kernel, please consider that the cape manager file /sys/devices/bone_capemgr.9/slots
has been relocated to /sys/devices/platform/bone_capemgr/slots
, so you have to change all related commands accordingly.
As a final note, I assume that the reader knows how to connect a BeagleBone Black board to the Internet in order to download a package or a generic file.
Hardware prerequisites
In this book, all code is developed for the BeagleBone Black board revision C, but the reader can use an older revision without any issues; in fact, the code is portable and it should work on other systems too!
Regarding the computer peripherals used in this book, I reported in each chapter where I got the hardware and where the reader can buy it, but, of course, they can decide to surf the Internet in order to find a better and cheaper offer. A note on where to find the datasheet is also present.
The reader should not have any difficulty in connecting the hardware presented in this book with the BeagleBone Black since the connections are very few and well documented. Readers don't require any particular hardware skills (apart from knowing how to use a soldering iron); however, a small amount of knowledge of electronics may help.
During the reading, I'm going to refer to BeagleBone Black's pins, especially the ones on the expansion connectors. All the pins used are explained, but, if needed, you can find a complete description of BeagleBone Black's connectors at http://elinux.org/Beagleboard:Cape_Expansion_Headers.