ChirpStack MQTT Forwarder on Dragino: Symbol Errors with v4.5.1

Viewed 46

Environment

  • Device: Dragino (model: LPS8(N) Indoor LoRaWAN Gateway)
  • Firmware-Version: lgw--build-v5.4.1765963883-20251217-1736
  • chirpstack-mqtt-forwarder: v4.3.1-r1 (works), latest version v4.5.1-r1 (fails to start)
  • MQTT Broker: Mosquitto v2.0.11

When starting the latest version, the following errors occur:

Error relocating /usr/bin/chirpstack-mqtt-forwarder: getrandom: symbol not found
Error relocating /usr/bin/chirpstack-mqtt-forwarder: posix_spawn_file_actions_addchdir_np: symbol not found

AI assumes that there is a problem with the different libc environment. However, as I have no experience with either C or Rust, I hope you know what is happening and how to solve it?

Could you please create a second question for Problem #2?

1 Answers

I can reproduce this issue at my side as well. The Dragino firmware is base on an older OpenWrt / Lede version, which is shipped with Musl 1.1.19.

For MIPS, Rust does not statically link against Musl and thus the binary uses the Musl library from the host. I think this worked fine up to the latest version(s), but the latest version might depend on Musl functions that are not available.

In general MIPS targets are a bit "difficult" given these are Rust Tier-3 targets, meaning they can only be cross-compiled using a nightly Rust build.