├── Dockerfile ├── README.md └── run.sh /Dockerfile: -------------------------------------------------------------------------------- 1 | # Run: 2 | # $ docker build -t linuxluser/chirp . 3 | # $ docker run -ti --rm --device=/dev/ttyUSB0:/dev/ttyUSB0 -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix linuxluser/chirp 4 | # 5 | 6 | FROM ubuntu:16.04 7 | 8 | RUN apt-get update && \ 9 | apt-get install -y software-properties-common 10 | RUN apt-add-repository ppa:dansmith/chirp-snapshots && \ 11 | apt-get update && \ 12 | apt-get install -y chirp-daily && \ 13 | apt-get clean && \ 14 | rm -rf /var/lib/apt/lists/* 15 | 16 | CMD ["/usr/bin/chirpw"] 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # docker-chirp 2 | Latest Chirp (ham radio programmer) running in Docker 3 | 4 | To run, plug in your cable (example: BaoFeng cable from http://a.co/cWvZiKR) and then clone this repo and run the following script. 5 | 6 | ```bash 7 | $ git clone https://github.com/linuxluser/docker-chirp.git 8 | $ cd docker-chirp 9 | $ sh run.sh 10 | ``` 11 | -------------------------------------------------------------------------------- /run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | NAME="chirp" 5 | VALID_DONGLES="067b:2303" # Prolific Technology, Inc. PL2303 Serial Port 6 | 7 | 8 | # Is a valid dongle attached? 9 | for dongle in $VALID_DONGLES; do 10 | dev_id=$(lsusb -d $dongle | sed -n 's#Bus \([0-9]*\) Device \([0-9]*\).*#\1/\2#p') 11 | if [ -n "$dev_id" ]; then 12 | DEV_FLAG="--device=/dev/bus/usb/$dev_id:/dev/ttyUSB0" 13 | fi 14 | done 15 | if [ -z "$DEV_FLAG" ]; then 16 | echo "ERROR: no valid device attached" >&2 17 | exit 1 18 | fi 19 | 20 | 21 | # Already started? 22 | if [ -n "$(docker ps -qaf "name=${NAME}")" ]; then 23 | echo "ERROR: ${NAME} container already started" >&2 24 | exit 1 25 | fi 26 | 27 | 28 | # Allow docker to connect to current X session 29 | xhost +local:docker 30 | 31 | 32 | # Build 33 | docker build -t "local/${NAME}" $(realpath $(dirname $0)) 34 | 35 | 36 | # Run 37 | docker run --rm -i -t \ 38 | ${DEV_FLAG} \ 39 | --device=/dev/dri:/dev/dri \ 40 | --volume ${HOME}/.config/gqrx:/root/.config/gqrx \ 41 | --volume /dev/shm:/dev/shm \ 42 | --volume /tmp/.X11-unix:/tmp/.X11-unix:ro \ 43 | --volume /run/user/$(id -u)/pulse:/run/pulse:ro \ 44 | --volume /var/lib/dbus:/var/lib/dbus \ 45 | --volume /dev/snd:/dev/snd \ 46 | --env USER_UID=$(id -u) \ 47 | --env USER_GID=$(id -g) \ 48 | --env DISPLAY=unix$DISPLAY \ 49 | --name $NAME \ 50 | local/${NAME} $@ 51 | --------------------------------------------------------------------------------