mirror of
https://git.yoctoproject.org/meta-zephyr
synced 2026-01-29 13:58:40 +01:00
meta-zephyr: Update README files
Update README files with following. - Build instructions - Maintainers lists and patch submission Signed-off-by: Sandeep Gundlupet Raju <sandeep.gundlupet-raju@amd.com> Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
This commit is contained in:
committed by
Lee Chee Yang
parent
f6552b7813
commit
3efff04359
@@ -1,71 +1,101 @@
|
|||||||
Building Zephyr Images via bitbake recipes
|
# meta-zephyr
|
||||||
==========================================
|
|
||||||
|
This layer enables building Zephyr using Yocto Project.
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
This layer depends on:
|
||||||
|
|
||||||
|
URI: https://git.yoctoproject.org/poky
|
||||||
|
layers: meta
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
URI: https://git.openembedded.org/meta-openembedded
|
||||||
|
layers: meta-oe, meta-python
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
## Building Zephyr Images via bitbake recipes
|
||||||
|
|
||||||
More detailed and up-to-date information can be found here:
|
More detailed and up-to-date information can be found here:
|
||||||
|
|
||||||
https://wiki.yoctoproject.org/wiki/TipsAndTricks/BuildingZephyrImages
|
https://wiki.yoctoproject.org/wiki/TipsAndTricks/BuildingZephyrImages
|
||||||
|
|
||||||
Prerequisites:
|
> **Pre-requisites:**
|
||||||
==============
|
1. Refer [Yocto Project Quick Build]( https://docs.yoctoproject.org/dev/singleindex.html#yocto-project-quick-build) documentation.
|
||||||
|
|
||||||
This layer depends on:
|
2. Clone and add following layers to BBLAYERS
|
||||||
Yocto distro (master)
|
* meta-openembedded/meta-oe
|
||||||
git://git.yoctoproject.org/poky
|
* meta-openembedded/meta-python
|
||||||
Python layer (meta-openembedded/meta-python)
|
* meta-zephyr-core
|
||||||
git://git.openembedded.org/meta-openembedded
|
* meta-zephyr-bsp
|
||||||
|
```
|
||||||
|
$ mkdir sources
|
||||||
|
$ git clone -b <release-branch> https://git.yoctoproject.org/poky
|
||||||
|
$ git clone -b <branch-name> https://git.openembedded.org/meta-openembedded
|
||||||
|
$ git clone -b <branch-name> https://git.yoctoproject.org/meta-zephyr
|
||||||
|
$ source poky/oe-init-build-env
|
||||||
|
$ bitbake-layers add-layer ../meta-openembedded/meta-oe
|
||||||
|
$ bitbake-layers add-layer ../meta-openembedded/meta-python
|
||||||
|
$ bitbake-layers add-layer ../meta-zephyr/meta-zephyr-core
|
||||||
|
$ bitbake-layers add-layer ../meta-zephyr/meta-zephyr-bsp
|
||||||
|
```
|
||||||
|
|
||||||
Add "meta-openembedded/meta-oe" to BBLAYERS
|
### Building and Running Zephyr Samples
|
||||||
Add "meta-openembedded/meta-python" to BBLAYERS
|
|
||||||
Add "meta-zephyr-core" and "meta-zephyr-bsp" to BBLAYERS
|
|
||||||
|
|
||||||
Building and Running Zephyr Samples
|
|
||||||
===================================
|
|
||||||
|
|
||||||
You can build Zephyr samples. There are several sample recipes.
|
You can build Zephyr samples. There are several sample recipes.
|
||||||
|
|
||||||
To use the Yocto toolchain, modify local conf by adding:
|
To use the Yocto toolchain, modify local conf by adding:
|
||||||
|
```
|
||||||
DISTRO = "zephyr"
|
DISTRO = "zephyr"
|
||||||
|
```
|
||||||
|
|
||||||
To use the Zephyr pre-built toolchain, modify local conf by adding:
|
To use the Zephyr pre-built toolchain, modify local conf by adding:
|
||||||
|
```
|
||||||
ZEPHYR_TOOLCHAIN_VARIANT = "zephyr"
|
ZEPHYR_TOOLCHAIN_VARIANT = "zephyr"
|
||||||
|
```
|
||||||
|
|
||||||
For example, to build the Zephyr "philosophers" sample:
|
For example, to build the Zephyr "philosophers" sample:
|
||||||
|
```
|
||||||
$ MACHINE=qemu-x86 bitbake zephyr-philosophers
|
$ MACHINE=qemu-x86 bitbake zephyr-philosophers
|
||||||
|
```
|
||||||
|
|
||||||
You can then run the created "philosophers" image in qemu:
|
You can then run the created "philosophers" image in qemu:
|
||||||
|
```
|
||||||
$ runqemu qemu-x86
|
$ runqemu qemu-x86
|
||||||
|
```
|
||||||
The same sample, for ARM image:
|
|
||||||
|
|
||||||
|
The same sample, for ARM image:
|
||||||
|
```
|
||||||
$ MACHINE=qemu-cortex-m3 bitbake zephyr-philosophers
|
$ MACHINE=qemu-cortex-m3 bitbake zephyr-philosophers
|
||||||
$ runqemu qemu-cortex-m3
|
$ runqemu qemu-cortex-m3
|
||||||
|
```
|
||||||
The same sample, for Nios2 image:
|
|
||||||
|
|
||||||
|
The same sample, for Nios2 image:
|
||||||
|
```
|
||||||
$ MACHINE=qemu-nios2 bitbake zephyr-philosophers
|
$ MACHINE=qemu-nios2 bitbake zephyr-philosophers
|
||||||
$ runqemu qemu-nios2
|
$ runqemu qemu-nios2
|
||||||
|
```
|
||||||
|
|
||||||
Flashing
|
### Flashing
|
||||||
=================================
|
|
||||||
|
|
||||||
You can flash Zephyr samples to boards. Currently, the following MACHINEs
|
You can flash Zephyr samples to boards. Currently, the following MACHINEs
|
||||||
are supported:
|
are supported:
|
||||||
* DFU:
|
* DFU:
|
||||||
- arduino-101-sss
|
* arduino-101-sss
|
||||||
- arduino-101
|
* arduino-101
|
||||||
- arduino-101-ble
|
* arduino-101-ble
|
||||||
* pyocd:
|
* pyocd:
|
||||||
- 96b-nitrogen
|
* 96b-nitrogen
|
||||||
|
|
||||||
To flash the example you built with command e.g.
|
To flash the example you built with command e.g.
|
||||||
|
```
|
||||||
$ MACHINE=96b-nitrogen bitbake zephyr-philosophers
|
$ MACHINE=96b-nitrogen bitbake zephyr-philosophers
|
||||||
|
```
|
||||||
|
|
||||||
call similar command with explicit flash_usb command:
|
call similar command with explicit flash_usb command:
|
||||||
|
```
|
||||||
$ MACHINE=96b-nitrogen bitbake zephyr-philosophers -c flash_usb
|
$ MACHINE=96b-nitrogen bitbake zephyr-philosophers -c flash_usb
|
||||||
|
```
|
||||||
|
|
||||||
dfu-util and/or pyocd need to be installed in your system. If you observe
|
dfu-util and/or pyocd need to be installed in your system. If you observe
|
||||||
permission errors or the flashing process seem to hang, follow those instructions:
|
permission errors or the flashing process seem to hang, follow those instructions:
|
||||||
@@ -77,28 +107,31 @@ of IDs. Once that is set, the tool will only try to program these IDs. You can
|
|||||||
query for the IDs by running `pyocd list` on your host while having the probes
|
query for the IDs by running `pyocd list` on your host while having the probes
|
||||||
attached. Besides setting this variable through the build's configuration or
|
attached. Besides setting this variable through the build's configuration or
|
||||||
metadata, you can also inject its value from command line with something like:
|
metadata, you can also inject its value from command line with something like:
|
||||||
|
```
|
||||||
$ PYOCD_FLASH_IDS='<ID1> <ID2> <ID3>' BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE PYOCD_FLASH_IDS" bitbake <TARGET> -c flash_usb
|
$ PYOCD_FLASH_IDS='<ID1> <ID2> <ID3>' BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE PYOCD_FLASH_IDS" bitbake <TARGET> -c flash_usb
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building and Running Zephyr Tests
|
||||||
|
|
||||||
Building and Running Zephyr Tests
|
|
||||||
=================================
|
|
||||||
Presently only toolchains for ARM, x86, IAMCU and Nios2 are supported.
|
Presently only toolchains for ARM, x86, IAMCU and Nios2 are supported.
|
||||||
(For ARM we use CortexM3 toolchain)
|
(For ARM we use CortexM3 toolchain)
|
||||||
|
|
||||||
To run Zephyr Test using Yocto Image Tests, ensure following in local.conf:
|
To run Zephyr Test using Yocto Image Tests, ensure following in local.conf:
|
||||||
|
```
|
||||||
INHERIT += "testimage"
|
INHERIT += "testimage"
|
||||||
|
```
|
||||||
|
|
||||||
You can build and test an individual existing Zephyr test.
|
You can build and test an individual existing Zephyr test.
|
||||||
This is done by appending the actual test name to the "zephyr-kernel-test",
|
This is done by appending the actual test name to the "zephyr-kernel-test",
|
||||||
for example:
|
for example:
|
||||||
|
```
|
||||||
$ MACHINE=qemu-x86 bitbake zephyr-kernel-test-sleep
|
$ MACHINE=qemu-x86 bitbake zephyr-kernel-test-sleep
|
||||||
$ MACHINE=qemu-x86 bitbake zephyr-kernel-test-sleep -c testimage
|
$ MACHINE=qemu-x86 bitbake zephyr-kernel-test-sleep -c testimage
|
||||||
|
```
|
||||||
|
|
||||||
You can also build and run all Zephyr existing tests (as listed in the file
|
You can also build and run all Zephyr existing tests (as listed in the file
|
||||||
zephyr-kernel-test.inc). For example:
|
zephyr-kernel-test.inc). For example:
|
||||||
|
```
|
||||||
$ MACHINE=qemu-x86 bitbake zephyr-kernel-test-all
|
$ MACHINE=qemu-x86 bitbake zephyr-kernel-test-all
|
||||||
$ MACHINE=qemu-x86 bitbake zephyr-kernel-test-all -c testimage
|
$ MACHINE=qemu-x86 bitbake zephyr-kernel-test-all -c testimage
|
||||||
or
|
or
|
||||||
@@ -107,16 +140,17 @@ or
|
|||||||
or
|
or
|
||||||
$ MACHINE=qemu-nios2 bitbake zephyr-kernel-test-all
|
$ MACHINE=qemu-nios2 bitbake zephyr-kernel-test-all
|
||||||
$ MACHINE=qemu-nios2 bitbake zephyr-kernel-test-all -c testimage
|
$ MACHINE=qemu-nios2 bitbake zephyr-kernel-test-all -c testimage
|
||||||
|
```
|
||||||
|
|
||||||
|
## Generating OE Machines based on Zephyr board definitions
|
||||||
|
|
||||||
Generating OE Machines based on Zephyr board definitions
|
|
||||||
========================================================
|
|
||||||
We currently have a recipe called generate-zephry-machines which will go through
|
We currently have a recipe called generate-zephry-machines which will go through
|
||||||
and attempt to create an OE machine conf file for every board in Zephyr.
|
and attempt to create an OE machine conf file for every board in Zephyr.
|
||||||
|
|
||||||
This is run via:
|
This is run via:
|
||||||
|
```
|
||||||
MACHINE=qemu-x86 bitbake generate-zephyr-machines
|
MACHINE=qemu-x86 bitbake generate-zephyr-machines
|
||||||
|
```
|
||||||
|
|
||||||
The output is then put in the normal deploy dir. This recipe is really only
|
The output is then put in the normal deploy dir. This recipe is really only
|
||||||
useful for maintainers. There is currently no way to use the Zephyr board
|
useful for maintainers. There is currently no way to use the Zephyr board
|
||||||
@@ -125,14 +159,15 @@ you will need to run the above, copy the conf files from the deploy dir to the
|
|||||||
machine conf directory and then run your build. This shouldn't need to happen
|
machine conf directory and then run your build. This shouldn't need to happen
|
||||||
often.
|
often.
|
||||||
|
|
||||||
Generating new Zephyr recipe versions
|
## Generating new Zephyr recipe versions
|
||||||
=====================================
|
|
||||||
The script meta-zephyr-core/scripts/generate-version.py is used to generate
|
The script meta-zephyr-core/scripts/generate-version.py is used to generate
|
||||||
Yocto configuration for a Zephyr version from the West configuration in the
|
Yocto configuration for a Zephyr version from the West configuration in the
|
||||||
Zephyr repository. It requires the west and jinja2 Python packages to be
|
Zephyr repository. It requires the west and jinja2 Python packages to be
|
||||||
installed on the host. Run it as follows:
|
installed on the host. Run it as follows:
|
||||||
|
```
|
||||||
$ ./meta-zephyr-core/scripts/generate-version.py x.x.x
|
$ ./meta-zephyr-core/scripts/generate-version.py x.x.x
|
||||||
|
```
|
||||||
|
|
||||||
where x.x.x is the Zephyr version.
|
where x.x.x is the Zephyr version.
|
||||||
|
|
||||||
@@ -140,17 +175,37 @@ The patch files added to SRC_URI in the generated file should be validated and
|
|||||||
modified if required.
|
modified if required.
|
||||||
|
|
||||||
The new version should be committed and submitted to the mailing list as
|
The new version should be committed and submitted to the mailing list as
|
||||||
described in "Contributing".
|
described in "Maintainers, Mailing list, Patches".
|
||||||
|
|
||||||
Contributing
|
## Maintainers, Mailing list, Patches
|
||||||
============
|
|
||||||
|
|
||||||
Patches for meta-zephyr should be sent to the yocto-patches@lists.yoctoproject.org
|
Please send any patches for this layer to the yocto-patches mailinglists
|
||||||
mailing list. See https://lists.yoctoproject.org/g/yocto-patches for subscription
|
with ['meta-zephyr'] in the subject:
|
||||||
details and the list archive. Please add [meta-zephyr] to the subject so
|
|
||||||
the patches are identifable.
|
|
||||||
|
|
||||||
Git can be configured to send mails appropriately when using git send-email:
|
yocto-patches@lists.yoctoproject.org
|
||||||
|
|
||||||
$ git config --local sendemail.to yocto-patches@lists.yoctoproject.org
|
When sending patches, please make sure the email subject line includes
|
||||||
$ git config --local format.subjectPrefix meta-zephyr][PATCH
|
`[meta-zephyr][<BRANCH_NAME>][PATCH]` and cc'ing the maintainers.
|
||||||
|
|
||||||
|
For more details follow the Yocto Project community patch submission guidelines,
|
||||||
|
as described in:
|
||||||
|
|
||||||
|
https://docs.yoctoproject.org/dev/contributor-guide/submit-changes.html#
|
||||||
|
|
||||||
|
`git send-email --to yocto-patches@lists.yoctoproject.org *.patch`
|
||||||
|
|
||||||
|
> **Note:** When creating patches, please use below format. To follow best practice,
|
||||||
|
> if you have more than one patch use `--cover-letter` option while generating the
|
||||||
|
> patches. Edit the 0000-cover-letter.patch and change the title and top of the
|
||||||
|
> body as appropriate.
|
||||||
|
|
||||||
|
**Syntax:**
|
||||||
|
`git format-patch -s --subject-prefix="meta-zephyr][<BRANCH_NAME>][PATCH" -1`
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
`git format-patch -s --subject-prefix="meta-zephyr][scarthgap][PATCH" -1`
|
||||||
|
|
||||||
|
**Maintainers:**
|
||||||
|
|
||||||
|
Lee Chee Yang <chee.yang.lee@intel.com>
|
||||||
|
Sandeep Gundlupet Raju <sandeep.gundlupet-raju@amd.com>
|
||||||
5
meta-zephyr-bsp/README.md
Normal file
5
meta-zephyr-bsp/README.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# meta-zephyr-bsp
|
||||||
|
|
||||||
|
This layer contains machine files for building Zephyr applications.
|
||||||
|
|
||||||
|
For more details see [Building Instructions](../README.md)
|
||||||
@@ -1 +0,0 @@
|
|||||||
See ../README.txt
|
|
||||||
6
meta-zephyr-core/README.md
Normal file
6
meta-zephyr-core/README.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# meta-zephyr-core
|
||||||
|
|
||||||
|
This layer enables Zephyr build metadata such as zephyr scripts, kernel include
|
||||||
|
files, zephyr applications recipes and bitbake class to support qemu boot.
|
||||||
|
|
||||||
|
For more details see [Building Instructions](../README.md)
|
||||||
@@ -1 +0,0 @@
|
|||||||
See ../README.txt
|
|
||||||
Reference in New Issue
Block a user