OpenEmbedded/Yocto Project layer which forms the final product layer for creating the Elk Audio OS Image for the ElkPi Development Kits based on the RaspberryPi 3B+ or 3B.
Contains the necessary packages, services, firmware binaries and image recipes specific to the ElkPi Development Kit.
This acts as the product layer whose role is to add further customization of recipes in meta-elk and meta-raspberry-elk to provide the necessary image for the ElkPi Development Kit.
The specific contributions of this layer are:
- Selects the specific versions of SUSHI, SENSEI, RASPA and TWINE and describes their build options.
- Installs system and user files for ElkPi Development Kit.
- Contains the recipes for the images.
The images provided by this layer are :
elkpi-audio-os-image
: A full development Elk Audio OS image for the ElkPi Kit containing numerous packages and tools. Use this image to generate the cross-compiling Yocto SDK.elkpi-audio-os-image-basic
: A basic development Elk Audio OS image for the ElkPi Kit which contains a reduced subset of packages and tools compared toelkpi-audio-os-image
.
The layer can build the same image for both RaspberryPi 3 and RaspberryPi 4. By default, the local.conf sets MACHINE = "raspberrypi3"
To build for RaspberryPi4 set MACHINE = "raspberrypi4-64"
in the local.conf.
This layer depends on:
By default, mda-vst2 plugins are not installed in the image and SUSHI will not
have VST2 support enabled. If you have access to the VST2 SDK you can enable
both by setting the variable VST2SDK_PATH
in the local.conf
file to the
path of the vst2 sdk as follows:
VST2SDK_PATH = "path/to/the/vst2sdk/in/your/build/machine/"
For example : VST2SDK_PATH = "/home/user/vstsdk2.4"
The goal of this layer is to act as a template to describe and generate an image for a Elk Powered device. You can easily customize the recipes in this layer and tailor them to your needs.
You can add your custom files (plugin binaries, scripts, samples etc) by modifying the elkpi-user-files recipe:
- Add any new files in the files directory and add the new file to the list of sources in the recipe:
SRC_URI += "file://your_new_file"
- Add the following line to the
do_install
task to specify where the files should be installed:
cp -r ${WORKDIR}/your_new_file ${D}path_in_image_rootfs
You can enable and customize the automatic startup of SUSHI and SENSEI in the image by modifying the recipe elkpi-systemd-services:
- Modify sushi.service and sensei.service with your desired command-line arguments and config files.
- If you want any automatic USB MIDI keyboard detection at startup, you can modify the connect-midi-apps script to your needs.
- Replace the last line in the recipe elkpi-systemd-services with the following:
SYSTEMD_AUTO_ENABLE = "enable"
You can enable an image to have a read-only root file system by adding the following line to an image recipe:
IMAGE_FEATURES += "read-only-rootfs"
You can add new packages to the image in two ways. Usually, OpenEmbedded contains recipes for many packages as standard and you can check if your package is part of the standard list here. If it is not part of OpenEmbedded's list, then you may need to write your own.
Then you can add the desired recipes to any of the packagegroups in this layer.
Copyright 2017-2019 Modern Ancient Instruments Networked AB, dba Elk, Stockholm, Sweden.