Skip to content
The RAUC hawkBit updater is a simple commandline tool / daemon written in C
C Shell CMake
Branch: master
Clone or download

Latest commit

prevas-lkmi Merge pull request #22 from ejoerns/topic/get-file-size-error-handling
src/hawkbit-updater: add GError handling for get_available_space
Latest commit f946789 Apr 2, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
include Legal stuff... Jan 20, 2020
script Initial Nov 21, 2018
src
test test: add simple test that identifies with hawkbit and checks for update Jan 9, 2020
.gitignore Initial Nov 21, 2018
.travis.yml
.uncrustify.cfg add uncrustify code formatter support Dec 5, 2019
CMakeLists.txt Initial Nov 21, 2018
Doxyfile.in Initial Nov 21, 2018
LICENSE add license Nov 23, 2018
README.md README.md: finalize move to 'rauc' GitHub organization Jan 22, 2020
build-uncrustify.sh add uncrustify code formatter support Dec 5, 2019
config.conf.example Initial Nov 21, 2018
uncrustify.sh add uncrustify code formatter support Dec 5, 2019

README.md

RAUC hawkBit Updater

Build Status License Total alerts Language grade: C/C++

The RAUC hawkBit updater is a simple commandline tool / daemon written in C (glib). It is a port of the RAUC hawkBit Client written in Python. The daemon runs on your target and operates as an interface between the RAUC D-Bus API and the hawkBit DDI API.

Quickstart

The RAUC hawkBit updater is primarily meant to be used as a daemon, but it also allows you to do a one shot instantly checking and install new software.

To quickly getting started with hawkBit server, follow this instruction.

Setup target (device) configuration file:

  [client]
  hawkbit_server            = 127.0.0.1:8080
  ssl                       = false
  ssl_verify                = false
  tenant_id                 = DEFAULT
  target_name               = test-target
  auth_token                = bhVahL1Il1shie2aj2poojeChee6ahShu
  bundle_download_location  = /tmp/bundle.raucb
  retry_wait                = 60 ; 1 min. retry wait
  connect_timeout           = 20 ; 20 secs. connection timeout
  timeout                   = 60 ; 1 min. timeout
  log_level                 = debug ; debug, info, message, warning, critical

  [device]
  product                   = Terminator
  model                     = T-1000
  serialnumber              = 8922673153
  hw_revision               = 2  ; With working shapeshifting
  key1                      = value
  key2                      = value

All key/values under [device] group are sent to hawkBit as data (attributes). The attributes in hawkBit can be used in target filters.

Finally start the updater as daemon:

  ./rauc-hawkbit-updater -c config.conf

Debugging

When setting the log level to 'debug' the RAUC hawkBit client will print JSON payload sent and received. This can be done by using option -d.

  ./rauc-hawkbit-updater -d -c config.conf

Compile

  mkdir build
  cd build
  cmake ..
  make

Usage / options

/usr/bin/rauc-hawkbit-updater --help
Usage:
  rauc-hawkbit-updater [OPTION?]

Help Options:
  -h, --help               Show help options

Application Options:
  -c, --config-file        Configuration file
  -v, --version            Version information
  -d, --debug              Enable debug output
  -r, --run-once           Check and install new software and exit
  -s, --output-systemd     Enable output to systemd
You can’t perform that action at this time.