Docker container for running gr-dect2 on Ubuntu 16.04 LTS with hardware support and GUI capabilities.
- ✅ 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
- Docker installed on your host system
- X11 server running (standard on Linux desktops)
- SDR hardware (USRP, B200, RTL-SDR, or compatible) connected via USB
-
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 -
Inside the container, launch GNU Radio Companion:
gnuradio-companion /root/gr-dect2/grc/dect2.grc
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- Europe: 1880-1900 MHz (10 channels from 1881.792 MHz to 1897.344 MHz)
- US: 1920-1930 MHz (different channel allocation)
-
Launch GNU Radio Companion:
gnuradio-companion /root/gr-dect2/grc/dect2.grc
-
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
-
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
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.
If the GUI doesn't appear:
xhost +local:docker
export DISPLAY=:0Check PulseAudio is running:
pulseaudio --check
pulseaudio -D-
Check device permissions:
lsusb ls -la /dev/bus/usb/*/*
-
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
-
Reload udev rules:
sudo udevadm control --reload-rules sudo udevadm trigger
If you experience performance issues:
- The container runs
volk_profileduring build for optimization - Ensure your CPU is powerful enough (DECT has a high data rate of 1152000 bps)
- Close other applications to free up CPU resources
Dockerfile- Container image definitiondocker-compose.yml- Docker Compose configurationrun.sh- Convenience script to run the containerREADME.md- This file
Original project: https://github.com/SignalsEverywhere/gr-dect2
Forked from: https://github.com/pavelyazev/gr-dect2
See the gr-dect2 repository for license information.