Skip to content
Snippets Groups Projects
user avatar
Zbigniew Bodek authored
ohos-thirdparty and ohos-common are now a part
of the current layer so this leftover will break the build.

Signed-off-by: default avatarZbigniew Bodek <zbigniew.bodek@huawei.com>
7366b9aa
History
Name Last commit Last update
LICENSES
docs/adr
meta-ohos-foundation
README.md

meta-ohos

meta-ohos is a set of bitbake layers for building OpenHarmony images using the bitbake infrastructure.

Getting started

Prerequisites

To start working with meta-ohos first install git repo:

$ sudo add-apt-repository ppa:zyga/oh-tools
$ sudo apt-get update
$ sudo apt-get install git-repo

Building OpenHarmony image

Once git repo has been installed we can use it to clone the necessary repositories:

$ mkdir ohos; cd ohos
$ repo init -u https://git.ostc-eu.org/incubate/meta-ohos/manifest.git
$ repo sync
$ cd poky
poky$ . oe-init-build-env

Working directory will automatically change to ./poky/build. Add layers for other kernels. Layers for poky were added automatically by sourcing oe-init-build-env.

build$ bitbake-layers add-layer ../meta-openembedded/meta-oe
build$ bitbake-layers add-layer ../meta-openembedded/meta-python
build$ bitbake-layers add-layer ../meta-zephyr
build$ bitbake-layers add-layer ../meta-freertos

Build distro of your choice:

For Poky-tiny you can choose any of the following machines: qemux86, qemux86-64, qemuarm, qemuarmv5

build$ DISTRO=poky-tiny MACHINE=qemux86 bitbake core-image-minimal

For Zephyr you can choose any of the following machines: acrn, arduino-101-ble, arduino-101, arduino-101-sss, qemu-cortex-m3, qemu-nios2, qemu-x86

build$ DISTRO=zephyr MACHINE=qemu-x86 bitbake zephyr-philosophers

For FreeRTOS you can choose any of the following machines: qemuarmv5.

build$ DISTRO=freertos MACHINE=qemuarmv5 bitbake freertos-demo

For Zephyr, zephyr-philosophers is the one of sample applications available in meta-zephyr layer by Yocto project. It's easy to build other samples using recipes available in meta-zephyr/recipes-kernel/zephyr-kernel/ directory.

Running OpenHarmony image

When the build is finished, you can run the image by issuing:

# For poky
build$ runqemu qemux86 ramfs qemuparams="-nographic"
# For Zephyr
build$ DEPLOY_DIR_IMAGE=tmp-newlib/deploy/images/qemu-x86 runqemu qemu-x86
# For FreeRTOS
build$ runqemu qemuarmv5

After successful bootup, you should see following:

# For Zephyr
Booting from ROM..*** Booting Zephyr OS build zephyr-v2.4.0  ***
Philosopher 0 [P: 3]  THINKING [  300 ms ]
Philosopher 1 [P: 2]   EATING  [  575 ms ]
Philosopher 2 [P: 1]        STARVING
Philosopher 3 [P: 0]   EATING  [  525 ms ]
Philosopher 4 [C: -1]  THINKING [  475 ms ]

# For poky
qemux86 login:
# Default login is _root_ without a password.
# After login you should see prompt:
root@qemux86:~#

# For FreeRTOS
###### - FreeRTOS sample application - ######

A text may be entered using a keyboard.
It will be displayed when 'Enter' is pressed.

Periodic task 10 secs
Waiting For Notification - Blocked...
Task1
Task1
You entered: "HelloFreeRTOS"
Unblocked
Notification Received
Waiting For Notification - Blocked...

To exit qemu, you can either shut down the system:

root@qemux86:~# poweroff -f

or close qemu using key combination:

Ctrl-a followed by 'x'

meta-ohos architecture

All decisions for architecturally significant requirements are documented using adr-tools and stored in docs/adr subdirectory. Decisions are discussed within MR of a given decision md file.

meta-ohos architecture is documented using c4 model.

meta-ohos overview

OpenHarmony is a distributed OS that is designed to run atop variety of OS kernels ranging from RTOSs to Linux.

meta-ohos is a umbrella meta layer containing all layers required to build OpenHarmony Image basing on existing kernel meta-layers.