About POKY - JensenJiang/RISCV64-A-POKY GitHub Wiki

Overview

  1. Source Fetching
  2. Patching
  3. Configuration and Compilation
  4. Package Spliting
  5. Image Generation
  • do_rootfs
  • do_image

Source Fetching

Get packages source code and do unpacking. It supports many protocols, like git and local files.

Patching

Apply patches provided by the user to the source code.

Configuration and Compilation

Do user specified configuration and package configuration and build(e.g., make), at last, install the package to a specified path located in the working directory in host(e.g., make install or cp).

Pseudo

Pseudo | Yocto Project

In "install" stage, installation utility should specify information like uid, gid and ownership for all files. However, such operations require administrator permission, which is thought to be unsafe for host machine. Pseudo is a tool aimed to solve this problem. Pseudo gives program the illusion of running in administrator privilege, in which commands like chmod, chown and stat can run successfully. In fact, Pseudo "re-implements" such commands, and saves the metadata of files in other place.

Use sqlite3 utility to look into files.db(e.g., $(BUILD_ENV)/tmp/work/riscv64-poky-linux/curl/7.50.1-r0/pseudo/files.db) to get more information.

Package Spliting

After installation, installed files are made formatted packages like RPM via corresponding package manager. Some are divided into subpackages. For the sake of robustness, every package have to do QA check.

Image Generation

do_rootfs

Up to now, all packages have been built and located in feed area. In this step, it uses package manager to install packages one by one into the location where the image is derived. After the directory structure is formed, it is changed to a .cpio image file.

do_image

Finally, create filesystem using the generated image file.