Skip to content

ThomArmax/meta-hyperion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description
===========

Yocto layer for Hyperion (https://github.com/hyperion-project/hyperion)

Hyperion is an opensource 'AmbiLight' implementation supported by many devices.
The main features of Hyperion are:
  - Low CPU load. For a led string of 50 leds the CPU usage will
    typically be below 1.5% on a non-overclocked Pi.
  - Json interface which allows easy integration into scripts.
  - A command line utility allows easy testing and configuration of
    the color transforms (Transformation settings are not preserved
    over a restart at the moment...).
  - Priority channels are not coupled to a specific led data provider
    which means that a provider can post led data and leave without the
    need to maintain a connection to Hyperion.
    This is ideal for a remote application (like our Android app).
  - HyperCon. A tool which helps generate a Hyperion configuration file.
  - Kodi-checker which checks the playing status of Kodi and decides
    whether or not to capture the screen.
  - Black border detector.
  - A scriptable effect engine.
  - Generic software architecture to support new devices and
    new algorithms easily.

Dependencies
============

This layer depends on:

  URI: git://git.yoctoproject.org/poky
  branch: master
  revision: HEAD

  URI: git://git.openembedded.org/meta-openembedded.git
  branch: master
  revision: HEAD

  URI: git://github.com/meta-qt5/meta-qt5.git
  branch: master
  revision: HEAD

Patches
=======

Please submit any patches against the hyperion layer to the
the maintainer:

Maintainer: Thomas COIN <esvcorp at gmail.com>


Table of Contents
=================

  I. Adding the hyperion layer to your build
 II. Hyperion configuration
III. Build


I. Adding the hyperion layer to your build
==========================================

In order to use this layer, you need to make the build system aware of
it.

Assuming the hyperion layer exists at the top-level of your
yocto build tree, you can add it to the build system by adding the
location of the hyperion layer to bblayers.conf, along with any
other layers needed. e.g.:

  BBLAYERS ?= " \
    /path/to/yocto/meta \
    /path/to/yocto/meta-openembedded/meta-oe \
    /path/to/yocto/meta-yocto \
    /path/to/yocto/meta-yocto-bsp \
    /path/to/yocto/meta-raspberrypi \
    /path/to/yocto/meta-qt5 \
    /path/to/yocto/meta-hyperion \
    /path/to/yocto/meta-hyperion/meta-raspberrypi \
    "

You also need to set a valid machine in your local.conf. e.g.:

  MACHINE = "raspberrypi2"


II. Hyperion configuration
==========================

The hyperion configuration is made via PACKAGECONFIG.
The list of available package configurations is:
  - amlogic : Enable the AMLOGIC video grabber
  - dispmanx : Enable the RPi dispmanx grabber
  - fb : Enable the framebuffer grabber
  - protobuf : Enable PROTOBUF server
  - spi : Enable SPI device
  - tinkerforge : Enable the TINKERFORGE device
  - v4l2 : Enable the V4L2 grabber
  - x11 : Enable the X11 grabber
  - ws2812b : Enable the WS2812b-PWM device
  - ws281x : Enable the WS281x-PWM device

By default are enabled :
  - protobuf
  - spi
  - v4l2
  - x11 (if x11 is in the DISTRO_FEATURES)

When using meta-raspberrypi extra layer from meta-hyperion,
the following extra package configurations are added :
  - dispmanx
  - ws2812b
  - ws281x

You can change the hyperion config by adding the list of desired
features in you local.conf. e.g. :
  # override PACKAGECONIFG
  PACKAGECONFIG_pn-hyperion = "some features"
  # append a feature
  PACKAGECONFIG_append_pn-hyperion = " feature"
  # remove a feature
  PACKAGECONFIG_remove_pn-hyperion = "feature"

To add you own hyperion JSON configuration file, you need to override the
HYPERION_CONFIG_FILE variable. You can set it in your local.conf. e.g. :

  HYPERION_CONFIG_FILE = "/path/to/your/config/hyperion.config.json"

III. Build
==========

First you need to source Yocto env:

  source oe-init-build-env build-hyperion-rpi

To build hyperion package:

  bitbake hyperion

To generate the image:

  bitbake <IMAGE_NAME>

The available images are:

  - hyperion-minimal-image A minimal image, just able to boot and run hyperion + SSH
  - hyperion-minimal-dev-image A minimal image, just able to boot and run hyperion + SSH + debug tweaks + package management
  - hyperion-image-base A standard full-featured Linux system with hyperion

Login: root
Password: empty (no password)