gr-dect2-docker

Docker container for gr-dect2 with Ubuntu 16.04 LTS, hardware support (HackRF/USRP/RTL-SDR), and GUI

gr-dect2 Docker Container

Docker container for running gr-dect2 on Ubuntu 16.04 LTS with hardware support and GUI capabilities.

Features

  • ✅ Based on Ubuntu 16.04 LTS
  • ✅ Full GNU Radio installation
  • ✅ gr-osmosdr for SDR hardware support (USRP, RTL-SDR, HackRF, etc.)
  • ✅ X11 forwarding for GUI support
  • ✅ USB device passthrough for SDR hardware
  • ✅ Audio support via PulseAudio
  • ✅ Privileged mode for full hardware access

Prerequisites

  • Docker installed on your host system
  • X11 server running (standard on Linux desktops)
  • SDR hardware (USRP, B200, RTL-SDR, or compatible) connected via USB

Quick Start

  1. Run the container (builds automatically on first run):

    chmod +x run.sh
    ./run.sh

    Or manually build first:

    docker build -t gr-dect2:ubuntu16.04 .
    ./run.sh
  2. Inside the container, launch GNU Radio Companion:

    gnuradio-companion /root/gr-dect2/grc/dect2.grc

Manual Docker Run

If you prefer not to use docker-compose:

# Allow X11 connections
xhost +local:docker

# Run the container
docker run -it --rm \
  --privileged \
  --network=host \
  -e DISPLAY=$DISPLAY \
  -e QT_X11_NO_MITSHM=1 \
  -v /tmp/.X11-unix:/tmp/.X11-unix:rw \
  -v /dev/bus/usb:/dev/bus/usb \
  -v $(pwd)/recordings:/root/recordings \
  --device /dev/snd \
  gr-dect2:ubuntu16.04

# Cleanup
xhost -local:docker

Usage

DECT Frequency Information

  • Europe: 1880-1900 MHz (10 channels from 1881.792 MHz to 1897.344 MHz)
  • US: 1920-1930 MHz (different channel allocation)

Inside the Container

  1. Launch GNU Radio Companion:

    gnuradio-companion /root/gr-dect2/grc/dect2.grc
  2. Configure your SDR:

    • Set the appropriate frequency (1881.792-1897.344 MHz for EU)
    • Adjust RX gain as needed
    • Select the channel from the dropdown
    • Monitor the status console for detected parts
  3. Listen to DECT traffic:

    • Look for RFP (base station) and PP (handset) pairs
    • Select the receiver ID from the dropdown
    • If voice is detected (marked with "v"), it will play through your speakers

Hardware Support

The container supports various SDR devices:

  • USRP (USRP2, B200, B210, etc.)
  • RTL-SDR
  • HackRF
  • Other gr-osmosdr compatible devices

All USB devices are passed through via /dev/bus/usb.

Troubleshooting

No GUI Display

If the GUI doesn't appear:

xhost +local:docker
export DISPLAY=:0

Audio Not Working

Check PulseAudio is running:

pulseaudio --check
pulseaudio -D

USB Device Not Detected

  1. Check device permissions:

    lsusb
    ls -la /dev/bus/usb/*/*
  2. You may need to add udev rules on your host:

    # For RTL-SDR
    echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", MODE="0666"' | sudo tee /etc/udev/rules.d/20-rtlsdr.rules
    
    # For USRP
    sudo apt-get install libuhd-dev
    sudo /usr/lib/uhd/utils/uhd_images_downloader.py
  3. Reload udev rules:

    sudo udevadm control --reload-rules
    sudo udevadm trigger

Performance Issues

If you experience performance issues:

  1. The container runs volk_profile during build for optimization
  2. Ensure your CPU is powerful enough (DECT has a high data rate of 1152000 bps)
  3. Close other applications to free up CPU resources

Legal Notice

⚠️ IMPORTANT: You take full responsibility when using this software. It is intended for demonstration purposes and use of it for eavesdropping on phone calls is illegal in most countries. Only use on systems you own or have explicit permission to monitor (e.g., your own baby monitor).

Files Included

  • Dockerfile - Container image definition
  • docker-compose.yml - Docker Compose configuration
  • run.sh - Convenience script to run the container
  • README.md - This file

Source Code

Original project: https://github.com/SignalsEverywhere/gr-dect2

Forked from: https://github.com/pavelyazev/gr-dect2

License

See the gr-dect2 repository for license information.