Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • Turris OS packages Turris OS packages
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 83
    • Issues 83
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 17
    • Merge requests 17
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Turris
  • Turris OS
  • Turris OS packagesTurris OS packages
  • Merge requests
  • !846

rainbow: implement generic rainbow script

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Karel Koci requested to merge feature/rerainbow into develop Nov 12, 2021
  • Overview 9
  • Commits 4
  • Changes 46

The original implementation of rainbow was heavilly platform dependent. This tries to change that. It removes the original integration from omnia-rainbow and turris1x-rainbot packages and introduces the new one in rainbow. The rainbow package requires custom backends that implement platform dependent operations.

The rainbow script tries to mimic the original rainbow applications but it also introduces the new possibilities. The most notable change is addition of priority levels and slots. Those are intended as a way for various applications to share control of LEDs without colliding with each other. This way we can for example use LEDs to signal running update or that there is notification for user present in web interface.

With this rainbow also now supports triggering based on activity. The activity sources are defined by kernel and rainbow can only set them.

One more addition are animations.

The primary consideration in rainbow design here was what it actually should do now when it is mostly expected to have LEDs support in the kernel. There is led init script and leds configuration options in system config provided by OpenWrt. What rainbow provides on top of that (over just runtime modification) are additional options (although we might want to expand led service instead) but primarily it approaches single RGB LED as the one LED instead of three LEDs (or one weird one). Thus it allows more direct and understandable control and configuration over just led triggers. The aim is to reduce hacks in the current version in the future and have rainbow as a shared interface to the LEDs for system programs.

Implements turris/project#110

Related to turris/rainbow_omnia#2 (closed) turris/project#181

Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: feature/rerainbow