mirror of
https://git.yoctoproject.org/meta-raspberrypi
synced 2026-10-21 17:48:11 +00:00
kas: split into unique files and add testimage
Refactor the existing kas configuration by splitting it into a shared base.yml and a set of per-machine include files. This allows for easier usage and potential CI use cases. Also, change the readme to reflect the new changes. Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
1 parent
e8e1692de4
commit
dbb7f7e91e
11 files changed
+163
-23
No files matched your search
@@ -76,14 +76,31 @@ This layer depends on:
|
|||||||
|
|
||||||
## Quick Start with kas
|
## Quick Start with kas
|
||||||
|
|
||||||
1. Install kas build tool from PyPi (sudo pip3 install kas)
|
1. Install the kas build tool from PyPI:
|
||||||
2. Set the `machine: ` in kas-poky-rpi.yml to one of the supported boards (see conf/machine/*.conf)
|
|
||||||
3. kas build meta-raspberrypi/kas-poky-rpi.yml
|
|
||||||
4. Use bmaptool to copy the generated .wic.bz2 file to the SD card
|
|
||||||
5. Boot your RPI
|
|
||||||
|
|
||||||
To adjust the build configuration with specific options (I2C, SPI, ...), simply add
|
```
|
||||||
a section as follows:
|
pip3 install kas
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Select the appropriate machine configuration file from `kas/`
|
||||||
|
(for example `raspberrypi4.yml`, `raspberrypi3-64.yml`, etc.)
|
||||||
|
|
||||||
|
3. Run the build:
|
||||||
|
|
||||||
|
```
|
||||||
|
kas build meta-raspberrypi/kas/<machine>.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Use `bmaptool` to copy the generated `.wic.bz2` image to the SD card
|
||||||
|
|
||||||
|
5. Boot your Raspberry Pi
|
||||||
|
|
||||||
|
The kas configuration is split into a shared `base.yml` and per-machine
|
||||||
|
configuration files. Machine selection is done by choosing the appropriate
|
||||||
|
kas file rather than editing a `machine` variable.
|
||||||
|
|
||||||
|
To adjust the build configuration with specific options (I2C, SPI, etc.),
|
||||||
|
extend the configuration by adding a `local_conf_header` section, for example:
|
||||||
|
|
||||||
```
|
```
|
||||||
local_conf_header:
|
local_conf_header:
|
||||||
@@ -92,10 +109,16 @@ local_conf_header:
|
|||||||
RPI_EXTRA_CONFIG = "dtoverlay=disable-bt"
|
RPI_EXTRA_CONFIG = "dtoverlay=disable-bt"
|
||||||
```
|
```
|
||||||
|
|
||||||
To configure the machine, you have to update the `machine` variable.
|
Additional configurations can be layered by including extra kas files. For example,
|
||||||
And the same for the `distro`.
|
to enable runtime testing with `testimage`:
|
||||||
|
|
||||||
|
```
|
||||||
|
kas build meta-raspberrypi/kas/raspberrypi4.yml:meta-raspberrypi/kas/testimage.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
For further details, see the kas documentation:
|
||||||
|
https://kas.readthedocs.io/en/latest/index.html
|
||||||
|
|
||||||
For further information, you can read more at <https://kas.readthedocs.io/en/latest/index.html>
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
|||||||
@@ -1,40 +1,41 @@
|
|||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
|
||||||
|
#
|
||||||
header:
|
header:
|
||||||
version: 8
|
version: 14
|
||||||
|
|
||||||
machine: raspberrypi4
|
machine: unset
|
||||||
distro: poky
|
distro: poky
|
||||||
target:
|
target:
|
||||||
- core-image-base
|
- core-image-base
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
repos:
|
||||||
|
branch: master
|
||||||
|
|
||||||
repos:
|
repos:
|
||||||
meta-raspberry:
|
meta-raspberry:
|
||||||
|
|
||||||
bitbake:
|
bitbake:
|
||||||
url: https://git.openembedded.org/bitbake
|
url: https://git.openembedded.org/bitbake
|
||||||
path: layers/bitbake
|
path: layers/bitbake
|
||||||
branch: master
|
|
||||||
layers:
|
layers:
|
||||||
bitbake: disabled
|
bitbake: disabled
|
||||||
|
|
||||||
openembedded-core:
|
openembedded-core:
|
||||||
url: https://git.openembedded.org/openembedded-core
|
url: https://git.openembedded.org/openembedded-core
|
||||||
path: layers/openembedded-core
|
path: layers/openembedded-core
|
||||||
branch: master
|
|
||||||
layers:
|
layers:
|
||||||
meta:
|
meta:
|
||||||
|
|
||||||
meta-yocto:
|
meta-yocto:
|
||||||
url: https://git.yoctoproject.org/meta-yocto
|
url: https://git.yoctoproject.org/meta-yocto
|
||||||
path: layers/meta-yocto
|
path: layers/meta-yocto
|
||||||
branch: master
|
|
||||||
layers:
|
layers:
|
||||||
meta-poky:
|
meta-poky:
|
||||||
meta-yocto-bsp:
|
|
||||||
|
|
||||||
meta-openembedded:
|
meta-openembedded:
|
||||||
url: http://git.openembedded.org/meta-openembedded
|
url: http://git.openembedded.org/meta-openembedded
|
||||||
path: layers/meta-openembedded
|
path: layers/meta-openembedded
|
||||||
branch: master
|
|
||||||
layers:
|
layers:
|
||||||
meta-oe:
|
meta-oe:
|
||||||
meta-python:
|
meta-python:
|
||||||
@@ -44,16 +45,20 @@ repos:
|
|||||||
meta-qt5:
|
meta-qt5:
|
||||||
url: https://github.com/meta-qt5/meta-qt5/
|
url: https://github.com/meta-qt5/meta-qt5/
|
||||||
path: layers/meta-qt5
|
path: layers/meta-qt5
|
||||||
branch: master
|
|
||||||
|
env:
|
||||||
|
BB_LOGCONFIG: ""
|
||||||
|
BB_HASHSERVE: "auto"
|
||||||
|
|
||||||
bblayers_conf_header:
|
bblayers_conf_header:
|
||||||
standard: |
|
standard: |
|
||||||
POKY_BBLAYERS_CONF_VERSION = "2"
|
POKY_BBLAYERS_CONF_VERSION = "2"
|
||||||
BBPATH = "${TOPDIR}"
|
BBPATH = "${TOPDIR}"
|
||||||
BBFILES ?= ""
|
BBFILES ?= ""
|
||||||
|
|
||||||
local_conf_header:
|
local_conf_header:
|
||||||
reduce_diskspace: |
|
reduce_diskspace: |
|
||||||
INHERIT += "rm_work_and_downloads"
|
INHERIT += "rm_work"
|
||||||
standard: |
|
standard: |
|
||||||
CONF_VERSION = "2"
|
CONF_VERSION = "2"
|
||||||
PACKAGE_CLASSES = "package_rpm"
|
PACKAGE_CLASSES = "package_rpm"
|
||||||
@@ -72,7 +77,3 @@ local_conf_header:
|
|||||||
HALT,${DL_DIR},100M,1K \
|
HALT,${DL_DIR},100M,1K \
|
||||||
HALT,${SSTATE_DIR},100M,1K \
|
HALT,${SSTATE_DIR},100M,1K \
|
||||||
HALT,/tmp,10M,1K"
|
HALT,/tmp,10M,1K"
|
||||||
license: |
|
|
||||||
# Uncomment next line to allow the license
|
|
||||||
# See: linux-firmware-rpidistro in docs/ipcompliance.md
|
|
||||||
#LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
|
||||||
|
|
||||||
|
header:
|
||||||
|
version: 14
|
||||||
|
includes:
|
||||||
|
- kas/base.yml
|
||||||
|
|
||||||
|
machine: raspberrypi
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
|
||||||
|
|
||||||
|
header:
|
||||||
|
version: 14
|
||||||
|
includes:
|
||||||
|
- kas/base.yml
|
||||||
|
|
||||||
|
machine: raspberrypi0
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
|
||||||
|
|
||||||
|
header:
|
||||||
|
version: 14
|
||||||
|
includes:
|
||||||
|
- kas/base.yml
|
||||||
|
|
||||||
|
machine: raspberrypi2-64
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
|
||||||
|
|
||||||
|
header:
|
||||||
|
version: 14
|
||||||
|
includes:
|
||||||
|
- kas/base.yml
|
||||||
|
|
||||||
|
machine: raspberrypi2
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
|
||||||
|
|
||||||
|
header:
|
||||||
|
version: 14
|
||||||
|
includes:
|
||||||
|
- kas/base.yml
|
||||||
|
|
||||||
|
local_conf_header:
|
||||||
|
license: |
|
||||||
|
# Uncomment next line to allow the license
|
||||||
|
# See: linux-firmware-rpidistro in docs/ipcompliance.md
|
||||||
|
LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
|
||||||
|
|
||||||
|
machine: raspberrypi3-64
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
|
||||||
|
|
||||||
|
header:
|
||||||
|
version: 14
|
||||||
|
includes:
|
||||||
|
- kas/base.yml
|
||||||
|
|
||||||
|
local_conf_header:
|
||||||
|
license: |
|
||||||
|
# Uncomment next line to allow the license
|
||||||
|
# See: linux-firmware-rpidistro in docs/ipcompliance.md
|
||||||
|
LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
|
||||||
|
|
||||||
|
machine: raspberrypi3
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
|
||||||
|
|
||||||
|
header:
|
||||||
|
version: 14
|
||||||
|
includes:
|
||||||
|
- kas/base.yml
|
||||||
|
|
||||||
|
local_conf_header:
|
||||||
|
license: |
|
||||||
|
# Uncomment next line to allow the license
|
||||||
|
# See: linux-firmware-rpidistro in docs/ipcompliance.md
|
||||||
|
LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
|
||||||
|
|
||||||
|
machine: raspberrypi4-64
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
|
||||||
|
|
||||||
|
header:
|
||||||
|
version: 14
|
||||||
|
includes:
|
||||||
|
- kas/base.yml
|
||||||
|
|
||||||
|
local_conf_header:
|
||||||
|
license: |
|
||||||
|
# Uncomment next line to allow the license
|
||||||
|
# See: linux-firmware-rpidistro in docs/ipcompliance.md
|
||||||
|
LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
|
||||||
|
|
||||||
|
machine: raspberrypi4
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
|
||||||
|
|
||||||
|
header:
|
||||||
|
version: 14
|
||||||
|
|
||||||
|
local_conf_header:
|
||||||
|
testimage: |
|
||||||
|
IMAGE_CLASSES += "testimage"
|
||||||
|
TESTIMAGE_AUTO = "1"
|
||||||
|
# Don't testimage initramfs
|
||||||
|
TESTIMAGE_AUTO:pn-core-image-initramfs-boot = "0"
|
||||||
|
kvm: |
|
||||||
|
QEMU_USE_KVM = ""
|
||||||
|
slirp: |
|
||||||
|
TEST_RUNQEMUPARAMS = "slirp"
|
||||||
|
sshd: |
|
||||||
|
IMAGE_FEATURES += "ssh-server-dropbear"
|
||||||
|
sshkeys: |
|
||||||
|
CORE_IMAGE_EXTRA_INSTALL += "ssh-pregen-hostkeys"
|
||||||
|
sshpregen: |
|
||||||
|
# Allow the use of the pregen keys as this is CI so safe
|
||||||
|
COMPATIBLE_MACHINE:pn-ssh-pregen-hostkeys:raspberrypi = "raspberrypi"
|
||||||
|
COMPATIBLE_MACHINE:pn-ssh-pregen-hostkeys:raspberrypi0 = "raspberrypi0"
|
||||||
|
COMPATIBLE_MACHINE:pn-ssh-pregen-hostkeys:raspberrypi2 = "raspberrypi2"
|
||||||
|
COMPATIBLE_MACHINE:pn-ssh-pregen-hostkeys:raspberrypi3-64 = "raspberrypi3-64"
|
||||||
|
COMPATIBLE_MACHINE:pn-ssh-pregen-hostkeys:raspberrypi4-64 = "raspberrypi4-64"
|
||||||
|
failing_tests: |
|
||||||
|
TEST_SUITES:remove = "parselogs"
|
||||||
Reference in new issue
Block a user