elos is a tool to collect, store and publish various system events (i.e. syslogs, core dumps, measurements obtained from proc- and sys-fs, …) while providing easy access to the collected data.
This Yocto meta layer contains all the recipes needed to build the elos into a Yocto image.
For instructions on using elos, please see
To quickly build a minimal image with elos installed run ci/docker-run.sh to enter a docker container with the build environment.
And then run bitbake core-image-minimal to build the image and runqemu nographic to run it.
The image by default uses sysvinit as the init system. To use systemd instead, set the USE_SYSTEMD option to 1:
USE_SYSTEMD=1 ci/docker-run.sh.
The repositories used to pull elos and its dependencies are set using the "META_ELOS_SRC_REPO_BASE" and "META_ELOS_SRC_REPO_PROTOCOL_PARAM" variables under conf/layer.conf. The default location
to pull the repositories is "git://github.com/Elektrobit" and the default protocol is "protocol=https". The repositories can be customized according to user preferences by either directly changing these variables in this layer or setting these variables in an other layer with higher priority so that the variables will get over written.
To integrate elos into your embedded linux build by yocto just add this meta-layer and add "elos" to "CORE_IMAGE_EXTRA_INSTALL":
CORE_IMAGE_EXTRA_INSTALL += "elos"
This installes the elos libraries:
- libelos
- libelosplugin
To configure elos features to build add a elos.bbappend file where you set PACKAGECONFIG posible values are:
- daemon (on by default)
- tools (on by default)
- plugins (on by default)
- demos
- mocks
- utests
- dlt
Or set/append PACKAGECONFIG_pn_elos,
To seet the elosd configureaton file edit meta-elos/recipes-core/elos/files/elosd.json
To add the elos daemon (elosd) "daemon" has to be set in PACKAGECONFIG and then pull in the package "elos-daemon".
CORE_IMAGE_EXTRA_INSTALL += "elos-daemon"
To add the elos tool "tools" must be set in PACKAGECONFIG and then just pull in the package "elos-daemon".
CORE_IMAGE_EXTRA_INSTALL += "elos-tools"
Following tools are installed:
- elosc
- elos-coredump
To add the elos plugins "plugins" must be set in the PACKAGECONFIG and then just pull in the package "elos-plugins".
CORE_IMAGE_EXTRA_INSTALL += "elos-plugins"
Following plugins are added:
- backend
- backend_dummy
- backend_json
- backend_sql
- backend_dlt (if dlt PACKAGECONFIG option is set)
- client
- client_dummy
- scanner
- scanner_kmsg
- scanner_shmem
- scanner_syslog
To add the demos that are part of elos, either add PACKAGECONFIG += "demos"
to your bbapend file or add to your local.conf with
PACKAGECONFIG:append:pn-elos = " demos". In any case make sure to install the
package:
CORE_IMAGE_EXTRA_INSTALL += "elos-demos"
.
The elos-demo package depends on additional layers:
- meta-openembedded/meta-oe/
- meta-openembedded/meta-python/
- meta-openembedded/meta-networking/
Following demos are added:
- demo_eloslog
- demo_eventbuffer
- demo_libelos_v2
- demo_scanner_shmem
- elos_log4c_demo
- elosDLT (if dlt PACKAGECONFIG option is set)
- elosMon
- syslog_example
- tinyElosc
To build elos with DLT support, either add PACKAGECONFIG += "dlt" to your
elos.bbappend or add PACKAGECONFIG:append:pn-elos = "dlt".
Make sure elos plugins and elos demos is added to package the DLT-Plugin and DLT-Demo.
CORE_IMAGE_EXTRA_INSTALL += "elos-plugins elos-demos"
To add the mocklibelos for tests that need to mock elos functions add PACKAGECONFIG += "mocks" pull in the package "elos-mocks".
CORE_IMAGE_EXTRA_INSTALL += "elos-mocks"
Unit tests of elos are added to the rootfs as follows:
CORE_IMAGE_EXTRA_INSTALL += test-elos-utest"
And building with the PACKAGECONFIG "utests" enabled.
In additon the PACKAGECONFIG "mocks" need to be enabled for safu and samconf.
The tests can be executed by using ptest.
The unit tests are used by elos developers to verify that the internal functions are working as expected. In this sense they are classic unit-tests.
The unit tests for samconf and safu are added like this:
CORE_IMAGE_EXTRA_INSTALL += "test-safu-utest test-samconf-utest"
For test-safu-utest the PACKAGECONFIG option "utests" needs to be set for safu.
For test-samconf-utest the PACKAGECONFIG option "utests" need to to be set for samconf,
and the option "mocks" for safu.
The integration tests for samconf are added like this:
CORE_IMAGE_EXTRA_INSTALL += "test-samconf-integration"
Smoke tests are a subset of integration tests that run faster and give a quick feedback on testing results. The are added this way:
CORE_IMAGE_EXTRA_INSTALL += "elos-smoketests"
These tests should be run in a CI.
MIT License
Copyright (c) [2024] [emlix GmbH, Elektrobit Automotive GmbH]
The full text of the license can be found in the LICENSE file in the repository root directory.
elos is powered by elektrobit automotive gmbh. Elektrobit is an automotive software company and developer of embedded software products for ECU, AUTOSAR, automated driving, connected vehicles and UX. elos isan integrated part of EB corbos Linux – built on Ubuntu is an open-source operating system for high-performance computing, leveraging the rich functionality of Linux while meeting security and industry regulations.- Wolfgang Gehrhardt [email protected] @gehwolf
- Thomas Brinker [email protected] @ThomasBrinker
- Andreas Schickedanz
- Andreas Zdziarstek
- Anja Lehwess-Litzmann
- Annika Schmitt
- Anton Hillerband
- Benedikt Braunger
- Christian Steiger
- Daniel Glöckner
- Fabian Godehardt
- Friedrich Schwedler
- Rainer Müller
- Sabrina Otto
- Stefan Kral
- Thomas Brinker
- Vignesh Jayaraman
- Wolfgang Gehrhardt
The elos logo is the Vombatus ursinus, also known as the bare-nosed wombat, designed from the handwriting word elos. Originator is Anja Lehwess-Litzmann (emlix GmbH). Year 2023. It is licensed under Creative Commons No Derivatives (CC-nd). It shall be used in black on white or HKS43 color.