sdr-enthusiasts / docker-dump978

FlightAware 978MHz UAT decoder, and the ADSBExchange fork of uat2esnt, working together in harmony.
10 stars 6 forks source link

Need specific version of SoapySDR #5

Closed pmd5700 closed 2 years ago

pmd5700 commented 3 years ago

I get the following error when trying to start dump978.

Configuration error: No matching SoapySDR device found (cause: SoapySDR::Device::make() no match)

sign0 commented 3 years ago

I thought this was the solution, but it seems not... https://www.reddit.com/r/ADSB/comments/e4aepf/issue_configuring_dump978fa/

I have tested with ENV BRANCH_SOAPYSDR=cbdcb115239d9747b93184c5cf13bf18a8964d52 (latest 0.7.2) to ENV BRANCH_SOAPYSDR=37c7ea4b84a81797ce45d39b2274c9f084e515ec (0.5.0) but I get the same error... 🤔

mikenye commented 3 years ago

What radio are you using? Can you post your docker-compose.yml syntax and/or your docker run command?

mikenye commented 3 years ago

Can I have the lsusb output showing your radio?

mikenye commented 3 years ago

Also can I have the full output from docker-compose up?

pmd5700 commented 3 years ago

I'm using the RTL-SDR Blog V3 Dongle: https://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/

docker-compose.yml:

version: '3.8'

networks:
  adsbnet:

volumes:
  graphs1090_rrd:
  vrsconfig:
  readsb_json:

services:

  readsb:
    image: mikenye/readsb:latest
    tty: true
    container_name: readsb
    restart: always
    devices:
      - /dev/bus/usb:/dev/bus/usb
    ports:
      - 8080:8080
      - 30105:30105
      - 30005:30005
      - 30003:30003
    networks:
      - adsbnet
    environment:
      - TZ=America/New_York
      - PULLMLAT=adsbx:30105
    command:
      - --dcfilter
      - --device-type=rtlsdr
      - --device=00001090
      - --json-location-accuracy=2
      - --lat=x
      - --lon=x
      - --modeac
      - --ppm=0
      - --net
      - --stats-every=3600
      - --quiet
      - --net-connector=127.0.0.1,30105,beast_in
      - --write-json=/run/readsb
    volumes:
      - readsb_json:/run/readsb

  adsbx:
    image: mikenye/adsbexchange:latest
    tty: true
    container_name: adsbx
    restart: always
    depends_on:
      - readsb
    environment:
      - BEASTHOST=readsb
      - LAT=x
      - LONG=x
      - ALT=35ft
      - SITENAME=x
      - UUID=x
      - TZ=America/New_York
    networks:
      - adsbnet

  tar1090:
    image: mikenye/tar1090:latest
    tty: true
    container_name: tar1090
    restart: always
    depends_on:
      - readsb
    environment:
      - TZ=America/New_York
      - BEASTHOST=readsb
      - MLATHOST=readsb
      - LAT=x
      - LONG=x
      - INTERVAL=20
      - HISTORY_SIZE=4300
      - HEYWHATSTHAT_PANORAMA_ID=x
    networks:
      - adsbnet
    ports:
      - 8078:80

  graphs1090:
    image: mikenye/graphs1090:latest
    tty: true
    container_name: graphs1090
    restart: always
    depends_on:
      - readsb
    volumes:
      - graphs1090_rrd:/var/lib/collectd/rrd
      - readsb_json:/data:ro
    ports:
      - 8079:80
    environment:
      - TZ=America/New_York
      - LAT=x
      - LONG=x
    networks:
      - adsbnet

  piaware:
    image: mikenye/piaware:latest
    tty: true
    container_name: piaware
    restart: always
    depends_on:
      - readsb
    ports:
      - 8081:8080
    networks:
      - adsbnet
    environment:
      - TZ=America/New_York
      - LAT=x
      - LONG=x
      - ALT=35ft
      - FEEDER_ID=x
      - BEASTHOST=readsb
      - ALLOW_MLAT=yes
      - UAT_RECEIVER_TYPE=sdr
      - RECEIVER_TYPE=none

  fr24:
    image: mikenye/fr24feed:latest
    tty: true
    container_name: fr24
    restart: always
    depends_on:
      - readsb
    ports:
      - 8754:8754
    networks:
      - adsbnet
    environment:
      - TZ=America/New_York
      - MLAT=yes
      - FR24KEY=x
      - BEASTHOST=readsb

  vrs:
    image: mikenye/virtualradarserver:latest
    tty: true
    container_name: vrs
    restart: always
    depends_on:
      - readsb
    volumes:
      - vrsconfig:/config
    ports:
      - 8088:8080
    environment:
      - TZ=America/New_York
      - USERNAME=x
      - PASSWORD=x
      - BASESTATIONHOST=readsb
      - BEASTHOST=readsb
      - MLATHOST=readsb
    volumes:
      - vrsconfig:/config
    networks:
      - adsbnet

  pfclient:
    image: mikenye/planefinder:latest
    tty: true
    container_name: pfclient
    restart: always
    depends_on:
      - readsb
    ports:
      - 30053:30053
    environment:
      - TZ=America/New_York
      - BEASTHOST=readsb
      - LAT=x
      - LONG=x
      - SHARECODE=x
    networks:
      - adsbnet

  adsb2influxdb:
    image: mikenye/adsb-to-influxdb:latest
    tty: true
    container_name: adsb2influxdb
    restart: always
    depends_on:
      - readsb
    environment:
      - TZ=America/New_York
      - INFLUXDBURL=x
      - ADSBHOST=readsb
      - MLATHOST=readsb
      - INFLUXDBUSERNAME=x
      - INFLUXDBPASSWORD=x
      - INTERVAL=30
    networks:
      - adsbnet
  adsb2mqtt:
    image: mikenye/adsb-to-mqtt
    tty: true
    container_name: adsb2mqtt
    restart: always
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    environment:
      - AIRCRAFT_JSON_URL=http://readsb:8080/data/aircraft.json
      - MQTT_HOST=x
      - MQTT_USER=x
      - MQTT_PASS=x
      - CONTAINERNAME_READSB=readsb
      - CONTAINERNAME_PIAWARE=piaware
      - CONTAINERNAME_ADSBX=adsbx
      - CONTAINERNAME_FR24=fr24
    networks:
      - adsbnet
  dump978:
    image: mikenye/dump978
    tty: true
    container_name: dump978
    restart: always
    networks:
      - adsbnet
    command:
      --sdr driver=rtlsdr,serial=00000978

lsusb:

pi@raspberrypi:/opt/adsb $ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
Bus 001 Device 003: ID 0bda:2832 Realtek Semiconductor Corp. RTL2832U DVB-T
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

the full 'docker-compose up' log was too long to post. Here's the last bit I could get. Let me know if there's another way to get all of it.

adsb2influxdb    | [telegraf] 2020-09-14T11:31:55Z W! [agent] ["outputs.influxdb"] did not complete within its flush interval
tar1090          | [cont-init.d] 05-tar1090-gzip: exited 0.
tar1090          | [cont-init.d] 06-range-outline: executing...
tar1090          | [cont-init.d] 06-range-outline: exited 0.
tar1090          | [cont-init.d] 07-ngnix-logging: executing...
tar1090          | [cont-init.d] 07-ngnix-logging: exited 0.
tar1090          | [cont-init.d] done.
tar1090          | [services.d] starting services
tar1090          | [readsb] Mon Sep 14 07:32:00 2020 EDT  readsb starting up.
tar1090          | [readsb] readsb version: wiedehopf git: 799ae8c (go to rates for receiversjson, Sun Aug 30 14:06:21 2020 0200)
tar1090          | [readsb] struct sizes: 1544, 24, 64
tar1090          | [readsb] Using lat:   x, lon:  x
tar1090          | [services.d] done.
tar1090          | [readsb] Beast TCP input: Connection established: readsb (192.168.32.3) port 30105
tar1090          | [readsb] Beast TCP input: Connection established: readsb (192.168.32.3) port 30005
fr24             | 2020-09-14 07:32:02 | [mlat][e]Received MLAT timestamp error: 0 seconds!
readsb           | Basestation TCP output: Send Error: Broken pipe: 192.168.32.7 port 53770 (fd 34, SendQ 497, RecvQ 0)
vrs              | Local address: http://127.0.0.1:8080/VirtualRadar
vrs              | Network address: http://192.168.32.7:8080/VirtualRadar
vrs              | Press Q to quit
dump978 exited with code 2
readsb           | [mlat_hub] Beast TCP input: Connection established: adsbx (192.168.32.4) port 30105
adsbx            | [mlat-client] Accepted Beast-format results connection from ::ffff:192.168.32.3:33468
piaware          | [piaware] 2020/09/14 07:32:09 82 msgs recv'd from socat; 82 msgs sent to FlightAware
dump978 exited with code 2
pfclient         | 2020-09-14 11:32:11.391726 [-] User location has been verified.
dump978 exited with code 2
dump978 exited with code 2
adsb2influxdb    | [telegraf] 2020-09-14T11:32:22Z W! [agent] ["outputs.influxdb"] did not complete within its flush interval
dump978 exited with code 2
adsb2influxdb    | [telegraf] 2020-09-14T11:32:27Z W! [agent] ["outputs.influxdb"] did not complete within its flush interval
adsb2influxdb    | [telegraf] 2020-09-14T11:32:35Z W! [agent] ["outputs.influxdb"] did not complete within its flush interval
adsb2influxdb    | [telegraf] 2020-09-14T11:32:36Z W! [agent] ["outputs.influxdb"] did not complete within its flush interval
EasternPA commented 3 years ago

I'm sorry I haven't been able to try this out and join you guys yet, even though I was the one who pushed for it! I did want to mention that on my current setup, the USB device address changes so frequently, that I have a cron job that looks for the SDR once every minute. If the device has moved, the script shuts down dump978, rebuilds the "device" line in docker-compose.yml that grants dump978 access to the SDR and then fires it back up.

It's pretty random for how long it will stay up and running, but the address can change after 1 minute or 1 hour. It is painful. Took a long time to get there, but it works. Now I have 978 coverage pretty much all 24x7.

mikenye commented 3 years ago

@pmd5700 I can't see where you're passing the SDR through to the container. I think you want to add a devices: section to your container, eg:

  dump978:
    image: mikenye/dump978
    tty: true
    container_name: dump978
    restart: always
    devices:
      - /dev/bus/usb:/dev/bus/usb
    networks:
      - adsbnet
    command:
      --sdr driver=rtlsdr,serial=00000978

Can you give that a try please and let me know what happens?

mikenye commented 3 years ago

Also for logs, feel free to just grab the logs from the dump978 container: docker logs dump978. Cheers.

pmd5700 commented 3 years ago

@mikenye I think I had devices in previously when I was messing around with it the first time. Either way, I'm still getting the same error:

pi@raspberrypi:/opt/adsb $ sudo docker-compose logs dump978
Attaching to dump978
dump978          | Configuration error: No matching SoapySDR device found (cause: SoapySDR::Device::make() no match)
dump978          | Configuration error: No matching SoapySDR device found (cause: SoapySDR::Device::make() no match)
dump978          | Configuration error: No matching SoapySDR device found (cause: SoapySDR::Device::make() no match)
dump978          | Configuration error: No matching SoapySDR device found (cause: SoapySDR::Device::make() no match)
dump978          | Configuration error: No matching SoapySDR device found (cause: SoapySDR::Device::make() no match)
dump978          | Configuration error: No matching SoapySDR device found (cause: SoapySDR::Device::make() no match)
dump978          | Configuration error: No matching SoapySDR device found (cause: SoapySDR::Device::make() no match)
pi@raspberrypi:/opt/adsb $
mikenye commented 3 years ago

@pmd5700 can you please run the following:

docker exec -it dump978 apt-get update
docker exec -it dump978 apt-get install -y usbutils
docker exec -it dump978 lsusb -v

...and paste the output.

Thanks.

mikenye commented 3 years ago

Also docker inspect dump978 output too please.

pmd5700 commented 3 years ago

@mikenye I think it keeps restarting so I get a bunch of errors:

pi@raspberrypi:/opt/adsb $ sudo docker exec -it dump978 apt-get update
OCI runtime exec failed: exec failed: cannot exec a container that has stopped: unknown
pi@raspberrypi:/opt/adsb $ sudo docker exec -it dump978 apt-get install -y usbutils
cannot exec in a stopped state: unknown
pi@raspberrypi:/opt/adsb $ sudo docker exec -it dump978 lsusb -v
cannot exec in a stopped state: unknown
pi@raspberrypi:/opt/adsb $ sudo docker inspect dump978
[
    {
        "Id": "db5d2352d2d0f32563407a11de799d782fd7fee8e853200929bf3ebcd92cf914",
        "Created": "2020-09-15T11:12:02.596283214Z",
        "Path": "/usr/local/bin/dump978-fa",
        "Args": [
            "--sdr",
            "driver=rtlsdr,serial=00000978"
        ],
        "State": {
            "Status": "restarting",
            "Running": true,
            "Paused": false,
            "Restarting": true,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 0,
            "ExitCode": 2,
            "Error": "",
            "StartedAt": "2020-09-15T11:15:24.026951652Z",
            "FinishedAt": "2020-09-15T11:15:24.272500569Z"
        },
        "Image": "sha256:4d0b074291e8cc7384ccb63b1e1662155bbf434009ca385d489426c36c2926bc",
        "ResolvConfPath": "/var/lib/docker/containers/db5d2352d2d0f32563407a11de799d782fd7fee8e853200929bf3ebcd92cf914/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/db5d2352d2d0f32563407a11de799d782fd7fee8e853200929bf3ebcd92cf914/hostname",
        "HostsPath": "/var/lib/docker/containers/db5d2352d2d0f32563407a11de799d782fd7fee8e853200929bf3ebcd92cf914/hosts",
        "LogPath": "/var/lib/docker/containers/db5d2352d2d0f32563407a11de799d782fd7fee8e853200929bf3ebcd92cf914/db5d2352d2d0f32563407a11de799d782fd7fee8e853200929bf3ebcd92cf914-json.log",
        "Name": "/dump978",
        "RestartCount": 11,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "adsb_adsbnet",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "always",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": [],
            "CapAdd": null,
            "CapDrop": null,
            "Capabilities": null,
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "shareable",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [
                {
                    "PathOnHost": "/dev/bus/usb",
                    "PathInContainer": "/dev/bus/usb",
                    "CgroupPermissions": "rwm"
                }
            ],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": null,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/62e60e977bf2aa50dfcb6c4dba41283c4ffea7742b7425228b87c7db0cd469f5-init/diff:/var/lib/docker/overlay2/89c857c2348fc47e8e819c5af356fbde909799ead521a29f8a86316b2920734f/diff:/var/lib/docker/overlay2/e25fcc65d747606be7dd9ce3f8cbeed613f39e47f065d00607bf62d5ec6e729f/diff",
                "MergedDir": "/var/lib/docker/overlay2/62e60e977bf2aa50dfcb6c4dba41283c4ffea7742b7425228b87c7db0cd469f5/merged",
                "UpperDir": "/var/lib/docker/overlay2/62e60e977bf2aa50dfcb6c4dba41283c4ffea7742b7425228b87c7db0cd469f5/diff",
                "WorkDir": "/var/lib/docker/overlay2/62e60e977bf2aa50dfcb6c4dba41283c4ffea7742b7425228b87c7db0cd469f5/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "db5d2352d2d0",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": true,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "--sdr",
                "driver=rtlsdr,serial=00000978"
            ],
            "Image": "mikenye/dump978",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": [
                "/usr/local/bin/dump978-fa"
            ],
            "OnBuild": null,
            "Labels": {
                "com.docker.compose.config-hash": "d9ef9fb7783a6236ec5d0b83038b565d7c5cedc4cb93351f689d77c97b4910e4",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.oneoff": "False",
                "com.docker.compose.project": "adsb",
                "com.docker.compose.project.config_files": "docker-compose.yml",
                "com.docker.compose.project.working_dir": "/opt/adsb",
                "com.docker.compose.service": "dump978",
                "com.docker.compose.version": "1.26.2"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "6f427c5efeddba88ff01cf98e208e85ca92f86ca13c4b5da02aa6c6ee6592c98",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/6f427c5efedd",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "adsb_adsbnet": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "dump978",
                        "db5d2352d2d0"
                    ],
                    "NetworkID": "79e2c26a985520971c7a4d966fa0d4d3f052914bc9556a5bea706f5e81440a9f",
                    "EndpointID": "",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                }
            }
        }
    }
]
mikenye commented 3 years ago

This now works :)

tezhrec commented 2 years ago

I'm running your stack spread across two Pi's: I have a Pi zero in the garage with a USB hub and two dongles running the readsb and dump978 containers, and the rest of your stack running on a Pi 4. All is working well except I just added the dump978 container and have run into this issue. You indicate it was resolved, but I don't see a solution. Is there a specific version other than latest I should pull? Readsb is still running perfectly, and I'm wondering if its an issue using the hub. lsusb shows both devices as well as the hub, but perhaps the zero can't power them both properly? Any help would be appreciated and as I said on another reply (the AMD PiAware one, which I had no issues with moving to the Pi 4) thank you VERY MUCH for the awesome work.

tezhrec commented 2 years ago

I migrated to a Pi3 and got rid of the USB hub and all is working as expected. not sure if it was a power issue or issue with the hub, but either way no longer an issue. Thanks a TON!

mikenye commented 2 years ago

You're welcome. I'm not sure I actually did anything to fix this, but I'm glad it's working for you.