Closed pmd5700 closed 2 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... 🤔
What radio are you using? Can you post your docker-compose.yml
syntax and/or your docker run
command?
Can I have the lsusb
output showing your radio?
Also can I have the full output from docker-compose up
?
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
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.
@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?
Also for logs, feel free to just grab the logs from the dump978
container: docker logs dump978
. Cheers.
@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 $
@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.
Also docker inspect dump978
output too please.
@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
}
}
}
}
]
This now works :)
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.
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!
You're welcome. I'm not sure I actually did anything to fix this, but I'm glad it's working for you.
I get the following error when trying to start dump978.
Configuration error: No matching SoapySDR device found (cause: SoapySDR::Device::make() no match)