Create custom images ==================== Step 1 - Create folders for recipes ----------------------------------- Creating custom images fore us to make our firsts recipes. This recipes are the most important for meta layer so they are stored inside ``recipes-core`` folder. .. code-block:: mkdir -p ../meta-golemos/recipes-core/images Step 2 - Create recipe for base image ------------------------------------- Our first recipe will be made for datalogger device. Create file called ``datalogger-image.bb`` inside previously created folder. This recipe will be the most basic image for datalogger device. It contain basic utilities for proper behaviour. .. code-block:: touch ../meta-golemos/recipes-core/images/datalogger-image.bb Inside this recipe you had to place this content. .. code-block:: SUMMARY = "Datalogger production image" LICENSE = "CLOSED" IMAGE_INSTALL += " packagegroup-core-boot" IMAGE_FEATURES += " debug-tweaks" inherit core-image CORE_IMAGE_EXTRA_INSTALL += " \ datalogger-core-packagegroup \ datalogger-base-packagegroup \ " .. warning:: Here you can find things called package groups. Do not worry in next section you can find how to create such a groups which help to mantain more modularity and better image typing. They key takeaway from above output is the following line: .. code-block:: inherit core-image Which tells us that the definition of what actually gets installed is defined in the ``core-image.bbclass``. Step 3 - Create recipe for extended version of image ---------------------------------------------------- The extended image will contain every thing what is in base image but also some packages that are not necessary for basic functionality of datalogger. To create such a image create recipe called ``datalogger-extended-image.bb``. .. code-block:: touch ../meta-golemos/recipes-core/images/datalogger-extended-image.bb Next place this output inside created recipe. .. code-block:: SUMMARY = "Datalogger extended version of image" LICENSE = "CLOSED" inherit core-image require datalogger-image.bb CORE_IMAGE_EXTRA_INSTALL += " \ datalogger-extended-packagegroup \ " .. note:: This recipe contain ``require datalogger-image.bb`` which tell to add all instruction contained inside base image recipe. Step 4 - Create development image --------------------------------- Some packages are under development and sometimes it is not appropriate to place them along side base packages. For that situations development image arose. Create development image by pasting this command. .. code-block:: touch ../meta-golemos/recipes-core/images/datalogger-dev-image.bb Inside this file place this instructions. .. code-block:: SUMMARY = "Datalogger development image" LICENSE = "CLOSED" inherit core-image require datalogger-image.bb CORE_IMAGE_EXTRA_INSTALL += " \ datalogger-dev-packagegroup \ " Summary ------- This steps allow you to create custom images. You can build them by typing .. code-block:: bitbake datalogger-image After all of this steps your layer structure should look like this. .. code-block:: ../meta-golemos ├── conf │   ├── bblayer.conf.sample │   ├── conf-notes.txt │   ├── distro │   │   └── golemos.conf │   ├── layer.conf │ └── local.conf.sample ├── COPYING.MIT ├── README ├── recipes-core │ └── images │ ├── datalogger-dev-image.bb │ ├── datalogger-extended-image.bb │ └── datalogger-image.bb └── recipes-example └── example └── example_0.1.bb