Book Image

Yocto for Raspberry Pi

By : TEXIER Pierre-Jean, Petter Mabäcker
Book Image

Yocto for Raspberry Pi

By: TEXIER Pierre-Jean, Petter Mabäcker

Overview of this book

The Yocto Project is a Linux Foundation workgroup, which produces tools (SDK) and processes (configuration, compilation, installation) that will enable the creation of Linux distributions for embedded software, independent of the architecture of embedded software (Raspberry Pi, i.MX6, and so on). It is a powerful build system that allows you to master your personal or professional development. This book presents you with the configuration of the Yocto Framework for the Raspberry Pi, allowing you to create amazing and innovative projects using the Yocto/ OpenEmbedded eco-system. It starts with the basic introduction of Yocto's build system, and takes you through the setup and deployment steps for Yocto. It then helps you to develop an understanding of Bitbake (the task scheduler), and learn how to create a basic recipe through a GPIO application example. You can then explore the different types of Yocto recipe elements (LICENSE, FILES, SRC_URI, and so on). Next, you will learn how to customize existing recipes in Yocto/OE layers and add layers to your custom environment (qt5 for example).
Table of Contents (18 chapters)
Yocto for Raspberry Pi
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
3
Mastering Baking with Hob and Toaster

Patching gpio-packt


Now that we've seen how to integrate our recipe (gpio-packt) to the previously created layer (meta-packt_rpi), we will see how to create a patch to the gpio-packt recipe.

Generating the patch

The first step is to create the .patch file. Use the following commands to create a backup of the original file:

$ cd meta-pack_rpi/recipe-custom/gpio_packt
$ cp gpio-packt/gpio-example.c gpio-packt/gpio-example.orig

Now, we can modify our main source code (gpio-example.c):

$ sed -i 's/Button Mode/Button Mode!/' gpio-packt/gpio-example.c

We have now changed our source file like we wanted to; the next step is to create our patch file with the diff command:

$ diff -u gpio-packt/gpio-example.orig gpio-packt/gpio-example.c >  gpio-packt/fix.patch

Now that we have our .patch file, we need to update our principal source file:

$ mv gpio-packt/gpio-example.orig gpio-packt/gpio-example.c

Adding the patch to the recipe file

Be careful, because even if we have generated our .patch...