chirpstack-gateway-os
chirpstack-gateway-os copied to clipboard
OpenWrt based gateway images including ChirpStack components.
ChirpStack Gateway OS
The ChirpStack Gateway OS is an embedded OS for LoRa gateways. It is part of the ChirpStack open-source LoRaWAN Network Server stack.
The goal of the ChirpStack Gateway OS is to provide firmware images that are easy to setup, maintain and customize.
Images
chirpstack-gateway-os-base
An image providing the Semtech Packet Forwarder and ChirpStack Gateway Bridge.
Provides the following features:
- Monit based service monitoring
- ChirpStack Concentratord
- ChirpStack Gateway Bridge
chirpstack-gateway-os-full
An image providing a complete LoRaWAN network-server running on the gateway.
Provides the following features:
- Monit based service monitoring
- ChirpStack Concentratord
- ChirpStack Gateway Bridge
- ChirpStack Network Server
- ChirpStack Application Server
- Mosquitto MQTT broker
- Redis
- PostgreSQL
Targets
Raspberry Pi
- Raspberry Pi Zero W
- Raspberry Pi 1
- Raspberry Pi 3
- Raspberry Pi 4
Shields / kits
- IMST - iC880A
- IMST - iC980A
- IMST - Lite Gateway
- Pi Supply - LoRa Gateway Hat
- RAK - RAK2245
- RAK - RAK2246 / RAK2246G
- RAK - RAK2287
- RAK - RAK831 Gateway Developer Kit
- RisingHF - RHF0M301 LoRaWAN IoT Discovery Kit
- Sandbox Electronics - LoRaGo PORT
- Semtech - SX1302 CoreCell
- Semtech - SX1280 2.4GHz gateway
Using
Login
The default username is admin
with password admin
.
Gateway configuration
Execute the following command as admin
user:
sudo gateway-config
Building images
A Docker Compose based build environment is provided for compiling the images.
Note: Compiling these images require a fair amount of CPU power, RAM and disk space. As a reference, the pre-compiled images are built using a 8 x Core i7 machine with 16GB RAM running Manjaro Linux with 200GB reserved for the build environment.
Initial setup
Run the following command to fetch the git submodules and setup directory permissions (to write back from the Docker container):
# update the submodules
make submodules
# setup permissions
make permissions
Run the following command to set the /build
folder permissions:
# on the host
docker-compose run --rm busybox
# within the container
chown 999:999 /build
Building
Run the following command to setup the build environment:
# on the host
docker-compose run --rm yocto bash
# within the container
# initialize the yocto / openembedded build environment
source oe-init-build-env /build/ /chirpstack-gateway-os/bitbake/
# build the chirpstack-gateway-os-base image
bitbake chirpstack-gateway-os-base
In case of error:
docker.credentials.errors.InitializationError: docker-credential-secretservice not installed or not available in PATH
Make sure that the golang-docker-credential-helpers
is installed. On Ubuntu
you can install it with:
sudo apt install golang-docker-credential-helpers
Configuration
By default, Raspberry Pi3 is configured as the target platform. You need to update the following configuration files to configure a different target:
-
/build/config/local.conf
-
/build/config/bblayers.conf
Good to know
SD Card wearout
Although ChirpStack Network Server and ChirpStack Application Server try to minimize the number of database writes, there will be regular writes to the SD Card (PostgreSQL and Redis snapshots). According to Is it true that a SD/MMC Card does wear levelling with its own controller? it might make a difference which SD Card brand you use.
Versioning
The major version (major.minor.patch) of this project represents the major version of the provided ChirpStack Network Server stack.