From 37e62ef4ea8eb68d1d589ce616f1dcfb3176570c Mon Sep 17 00:00:00 2001 From: Gururaj Shetty <gururaj.shetty@huawei.com> Date: Tue, 23 Feb 2021 16:22:26 +0000 Subject: [PATCH] Add supported image, boards, and repository structure description --- .../source/quick-start/build-open-harmony.rst | 162 ++++++++++++++---- 1 file changed, 124 insertions(+), 38 deletions(-) diff --git a/documentation/source/quick-start/build-open-harmony.rst b/documentation/source/quick-start/build-open-harmony.rst index 1f315ad..ead5a5d 100644 --- a/documentation/source/quick-start/build-open-harmony.rst +++ b/documentation/source/quick-start/build-open-harmony.rst @@ -10,9 +10,8 @@ Getting Started This topic provides an overview of meta-ohos architecture, tools, and source code required to build your |main_project_name| image. The meta-ohos is an umbrella meta-layer containing all layers required to build |main_project_name| Image on existing kernel meta-layers. -.. toctree:: - :depth: 2 - +.. contents:: + :depth: 3 **Figure 1 meta-ohos overview** @@ -38,16 +37,28 @@ To start with, you need to install git-repo by executing the following command. Downloading Source Code ******************************** -Once git-repo has been installed, clone the necessary repositories by executing the following commands: +Once git-repo has been installed, you can clone the necessary repositories. + +**For OHOS User** +If you are a user and wants to build your product on top of OHOS, then clone the ‘stable’ branch by executing the following commands: .. code-block:: console $ mkdir ohos; cd ohos - $ repo init -u https://git.ostc-eu.org/OSTC/manifest.git -b develop + $ repo init -u https://git.ostc-eu.org/OSTC/manifest.git -b stable $ repo sync - Above commands creates the following directory structure: +**For OHOS Developer** +If you are a developer and wants to contribute to OHOS, then clone the ‘develop’ branch by executing the following commands: + + .. code-block:: console + $ mkdir ohos; cd ohos + $ repo init -u https://git.ostc-eu.org/OSTC/manifest.git -b develop + $ repo sync + +The preceding commands creates the following directory structure (layers): + .. code-block:: console ./ohos/ @@ -59,21 +70,41 @@ Once git-repo has been installed, clone the necessary repositories by executing ├── <various yocto layers> └── poky +.. list-table:: meta-ohos + :widths: auto + :header-rows: 1 + + * - Placeholder Name + - Description + * - meta-freertos + - FreeRTOS distro layer compatible with OpenEmbedded. + * - meta-ohos + - A set of meta-layers for building Open Harmony OS. + * - meta-openembedded + - Layers, recipes, packages, and source material for developing a image. + * - meta-zephyr + - Layers required for building Zephyr images. + * - <various yocto layers> + - Layers required to build yacto images. + * - poky + - Layers required to build customised embedded device images. + .. _building-image: Building and Running |main_project_name| image ************************************************ -|main_project_name| can be hosted on top of variety of kernels. Currently supported kernels (a.k.a. OHOS flavours) are Linux, Zephyr, and FreeRTOS (experimental). +|main_project_name| can be hosted on top of a variety of kernels. Currently supported kernels (a.k.a. OHOS flavours) are Linux, Zephyr, and FreeRTOS (experimental). -To build OHOS flavour, use the following command syntax: +You can use the following syntax to build the OHOS flavour of your choice. .. code-block:: console $ TEMPLATECONF=../sources/meta-ohos/flavours/<lower_case_flavour> . ./sources/poky/oe-init-build-env build-<flavour>-<target_machine> $ bitbake <image-name> -MACHINE variable can be set up in *conf/local.conf* file under build directory or via command line: +.. Note:: + MACHINE variable can be set up in *conf/local.conf* file under build directory or via command line: **Example:** @@ -84,41 +115,68 @@ MACHINE variable can be set up in *conf/local.conf* file under build directory o OHOS Linux flavour ==================== -OHOS Linux flavour is based on poky distribution and supports following images or machines: +OHOS Linux flavour is based on `poky` distribution. Current version supports the following images and machines: **Supported images:** -* core-image-minimal -* core-image-full-cmdline +.. list-table:: Supported images + :widths: auto + :header-rows: 1 + + * - Image Name + - Size + - Description + * - openharmony-image-base + - Approximate 100-200 MB + - OpenHarmony image including the base OS software stack + * - openharmony-image-extra + - Approximate 100-200 MB + - OpenHarmony Wayland image including the base OS software stack **Supported machines:** -* qemux86-64 (default) -* qemux86 -* qemuarm -* qemuarm64 - -**Example:** +.. list-table:: Supported machines + :widths: auto + :header-rows: 1 + + * - Machine Name + - Details + * - qemux86-64 (default) + - Emulator + * - qemux86 + - Emulator + * - qemuarm + - Emulator + * - qemuarm64 + - Emulator + * - seco-intel-b68 (SECO SBC-B68) + - `Details <https://www.seco.com/en/products/sbc-b68-enuc>`_ + * - stm32mp1-av96 (96Boards Avenger96) + - `Details <https://www.96boards.org/product/avenger96/>`_ + * - seco-imx8mm-c61 (SECO SBC-C61) + - `Details <https://www.seco.com/en/products/sbc-c61>`_ + + +**Step1:** You can select the preferred image and machine to build your image. For example, for **qemux86-64** machine and **openharmony-image-base** image, execute: .. code-block:: console $ TEMPLATECONF=../sources/meta-ohos/flavours/linux . ./sources/poky/oe-init-build-env build-ohos-linux-qemux86-64 - $ bitbake core-image-minimal + $ bitbake openharmony-image-base -You can test the image built for the qemux86-64 target by issuing: +**Step2:** Test the image built by executing the following test command considering **qemux86-64** machine as an example: .. code-block:: console $ runqemu qemux86-64 qemuparams="-nographic" -After successful bootup, you should see following: +**Result:** After successful bootup, you should see the following: .. code-block:: console - Poky (Yocto Project Reference Distro) 3.1.4 qemux86-64 /dev/ttyS0 - qemux86-64 login: + qemux86-64 login: -Default login is root without a password. After login you should see following prompt: +The default login as root without a password. After login you should see the following prompt: .. code-block:: console @@ -137,31 +195,44 @@ or close qemu using key combination: OHOS Zephyr flavour ==================== -OHOS Zephyr flavour is based on zephyr distribution and supports following images or machines: +OHOS Zephyr flavour is based on zephyr distribution and supports the following images or machines: **Supported images:** -* zephyr-philosophers +* Zephyr comes with multiple sample applications, for more details on available recipes, see `sources/meta-zephyr/recipes-kernel/zephyr-kernel/`. You can add your own recipes to use sample applications provided with Zephyr. For more details, `Click <https://github.com/zephyrproject-rtos/zephyr/tree/master/samples>`_. **Supported machines:** -* qemu-cortex-m3 -* qemu-x86 (default) +.. list-table:: Supported machines + :widths: auto + :header-rows: 1 + + * - Machine Name + - Details + * - qemux86 (default) + - Emulator + * - qemu-cortex-m3 + - Emulator + * - 96b-nitrogen (96Boards Nitrogen) + - `Details <https://www.96boards.org/product/nitrogen/>`_ + * - 96b-avenger96 (96Boards Avenger96) + - `Details <https://www.96boards.org/product/avenger96/>`_ + -**Example:** +**Step1:** You can select the preferred image and machine to build your image. For example, for **qemux86* machine and **zephyr-philosophers** image, execute: .. code-block:: console $ TEMPLATECONF=../sources/meta-ohos/flavours/zephyr . ./sources/poky/oe-init-build-env build-ohos-zephyr-qemu-x86 $ bitbake zephyr-philosophers -You can test the image built for the qemu-x86 target by issuing: +**Step2:** Test the image built by executing the following test command considering **qemux86** machine as an example: .. code-block:: console - $ DEPLOY_DIR_IMAGE=tmp-newlib/deploy/images/qemu-x86 runqemu qemu-x86 + $ runqemu qemu-x86 -After successful bootup, you should see following: +**Result:** After successful bootup, you should see the following: .. code-block:: console @@ -179,30 +250,45 @@ To exit qemu, use key combination: OHOS FreeRTOS flavour ====================== -OHOS FreeRTOS flavour is based on freertos distribution and supports following images or machines: +OHOS FreeRTOS flavour is based on `freertos` distribution and supports the following images and smachines: **Supported images:** -* freertos-demo +.. list-table:: Supported machines + :widths: auto + :header-rows: 1 + + * - Machine Name + - Details + * - freertos-demo + - Emulator **Supported machines:** -* qemuarmv5 +.. list-table:: Supported machines + :widths: auto + :header-rows: 1 + + * - Machine Name + - Details + * - qemuarmv5 + - Emulator + -**Example:** +**Step1:** You can select the preferred image and machine to build your image. For example, for **qemuarmv5** machine and **freertos-demo** image, execute: .. code-block:: console $ TEMPLATECONF=../sources/meta-ohos/flavours/freertos . ./sources/poky/oe-init-build-env build-ohos-freertos-qemuarmv5 $ bitbake freertos-demo -You can test the image built for the qemuarmv5 target by issuing: +**Step2:** Test the image built by executing the following test command considering qemuarmv5 machine as an example: .. code-block:: console $ runqemu qemuarmv5 -After successful bootup, you should see following: +**Result:** After successful bootup, you should see the following: .. code-block:: console -- GitLab