gr-mcp/docker/Dockerfile.gnuradio-lora-runtime
Ryan Malloy e8b3600e60 feat: add LoRa SDR receiver with Docker runtime infrastructure
LoRa receiver flowgraph built programmatically via gr-mcp:
- osmosdr_source → low_pass_filter → lora_rx → message_debug
- XML-RPC server for runtime variable control (samp_rate,
  center_freq) with introspection enabled
- Qt frequency sink for spectrum visualization

Docker infrastructure:
- gnuradio-lora: gr-lora_sdr OOT module from EPFL (chirp spread spectrum)
- gnuradio-lora-runtime: combined runtime with Xvfb + gr-lora_sdr
- Compose file, entrypoint, and launch script for LoRa receiver

Also includes:
- lora_scanner.py: multi-SF LoRa scanner example
- lora_infrastructure_test.py: hardware-free pipeline validation
  (signal_source → throttle → null_sink + xmlrpc variable control)
- Integration tests for LoRa scanner flowgraph construction

End-to-end pipeline validated: launch_flowgraph → connect_to_container →
list_variables → get/set_variable all working through Docker + XML-RPC.
2026-01-30 13:55:40 -07:00

23 lines
763 B
Docker

FROM gnuradio-runtime:latest
# Build gr-lora_sdr (EPFL chirp spread spectrum OOT module)
# https://github.com/tapparelj/gr-lora_sdr
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential cmake git \
libvolk2-dev libboost-all-dev pybind11-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /build
RUN git clone --depth 1 --branch master \
https://github.com/tapparelj/gr-lora_sdr.git && \
cd gr-lora_sdr && mkdir build && cd build && \
cmake -DCMAKE_INSTALL_PREFIX=/usr .. && \
make -j$(nproc) && make install && \
ldconfig && \
rm -rf /build
WORKDIR /flowgraphs
# Bridge Python site-packages path (cmake installs to versioned path)
ENV PYTHONPATH="/usr/lib/python3.11/site-packages:${PYTHONPATH}"