Embedded Linux Development with Yocto Project
上QQ阅读APP看书,第一时间看更新

Building an image using Hob

Our first step is to set up our build environment, as follows:

$: source poky/oe-init-build-env [build-directory]

We can choose an old build directory or create a new one.

Now, Hob is ready for use. To start it, we should run the following:

$: hob

At startup, Hob performs some parsing tasks, reading the local configuration and available metadata layers. After a short time, Hob proposes a list of available machines. We can select, for example, qemuarm.

Once the dependency tree is built, select the desired image, for example, core-image-full-cmdline.

The following screenshot shows the MACHINE variable content and the image to be built in the Hob interface:

With the target MACHINE and image selected, the next step is to choose some advanced configuration, such as image types (for example, cpio.gz, ext2.bz2, ext3.gz, jffs2, ubifs, and vmdk) or package formats (rpm, deb, IPK, or TAR). We can also exclude all packages under the GPLv3 licensing, as shown in Chapter 13, Achieving GPL Compliance.

From the upper-right hand corner of the window, we can access the two areas Images and Settings. Images offers access to the built images (from the past), and Settings performs changes to MACHINE, parallelization, distribution, shared folders, and BBLAYERS. Hob modifies the build/conf directory contents inside our build directory. We can use Hob on our already configured build folder, and all configurations are reflected on Hob. It may be very useful when working on a team.

If we are working to configure the shared environment for a team, we need to pay attention to the variables DL_DIR and SSTATE_DIR, which are detailed in Chapter 4, Grasping the BitBake Tool, and Chapter 6, Assimilating Packaging Support.

If we plan to build a standard image, we can click on Build Image and wait for BitBake to run the required tasks to build it. Otherwise, if we want to change the recipe set of an image, we can click on Edit image recipe.