op25 raspberry pi 3+ stopped working

Status
Not open for further replies.

brad2388

Member
Feed Provider
Joined
May 3, 2019
Messages
52
Location
Climax, NC
ive been running this setup for 6 months or so. but today i noticed it wasnt working or uploading to broadcastify.

ive rebooted the pi and it shows online but it wont play online.

i dont even have audo out of the audio port on the pi.

i can vnc into the pi and can log in.

before i mess with too much is there any troubleshooting i can do?
 

hhca

Member
Joined
Aug 9, 2019
Messages
56
Location
Australia
One way I troubleshoot is to have a second computer with SDR tuned to the same channel to know when there are transmissions or not and then open up the plot graphs via http interface ideally or curses and look at the mix, data, etc to see if getting a signal and if tuning is correct
 

brad2388

Member
Feed Provider
Joined
May 3, 2019
Messages
52
Location
Climax, NC
heres the contents of my stderr.2.
heres the thing. the broadcastify shows online. but when i click on the stream it wont play. but i have audio out of the headphone port of the pi.

can i reinstall everything? if so is there a easy way to keep my talkgroups and stuff?





gr-osmosdr 0.1.4 (0.1.4) gnuradio 3.7.10
built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy soapy redpitaya
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
usb_claim_interface error -6

FATAL: Failed to open rtlsdr device.

Trying to fill up 1 missing channel(s) with null source(s).
This is being done to prevent the application from crashing
due to gnuradio bug #528.

Traceback (most recent call last):
File "./rx.py", line 921, in <module>
rx = rx_main()
File "./rx.py", line 835, in __init__
self.tb = p25_rx_block(self.options)
File "./rx.py", line 196, in __init__
self.open_usrp()
File "./rx.py", line 762, in open_usrp
self.__set_rx_from_osmosdr()
File "./rx.py", line 690, in __set_rx_from_osmosdr
self.__build_graph(self.src, capture_rate)
File "./rx.py", line 281, in __build_graph
symbol_rate = self.symbol_rate)
File "/home/pi/op25/op25/gr-op25_repeater/apps/p25_demodulator.py", line 249, in __init__
self.if1 = input_rate / self.decim
ZeroDivisionError: float division by zero
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,539
Location
Talbot Co, MD
The RTL device is either not being seen by the kernel or it hasn't been blacklisted properly. Please run the command 'lsusb' and report the output.
 

brad2388

Member
Feed Provider
Joined
May 3, 2019
Messages
52
Location
Climax, NC
Bus 001 Device 004: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
Bus 001 Device 005: ID 0424:7800 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,539
Location
Talbot Co, MD
Check your blacklisting. You should have a text file in /etc/modprobe.d/ called "blacklist-rtl.conf" (or similar) with the following contents:
Code:
blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830
blacklist rtl2838
Once you have this correct, reboot and try again.
 

brad2388

Member
Feed Provider
Joined
May 3, 2019
Messages
52
Location
Climax, NC
ok i made the conf files read like above. i rebooted and it shows online on broadcastify but i never can hit play. then it goes offline.

heres the log from the stderr.2 file. on the server info i deleted my password and such.


gr-osmosdr 0.1.4 (0.1.4) gnuradio 3.7.10
built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy soapy redpitaya
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
Invalid sample rate: 57600 Hz
Using two-stage decimator for speed=1024000, decim=16/2 if1=64000 if2=32000
Project 25 IMBE Encoder/Decoder Fixed-Point implementation
Developed by Pavel Yazev E-mail: pyazev@gmail.com
Version 1.0 (c) Copyright 2009
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions; see the file ``LICENSE'' for details.
op25_audio::eek:pen_socket(): enabled udp host(127.0.0.1), wireshark(23456), audio(23456)
p25_frame_assembler_impl: do_imbe[1], do_output[0], do_audio_output[1], do_phase2_tdma[1], do_nocrypt[1]
Reading whitelist file
added talkgroup 38500 from randolph.wlist
added talkgroup 38501 from randolph.wlist
added talkgroup 38502 from randolph.wlist
added talkgroup 38503 from randolph.wlist
added talkgroup 38504 from randolph.wlist
added talkgroup 38505 from randolph.wlist
added talkgroup 38506 from randolph.wlist
added talkgroup 38507 from randolph.wlist
added talkgroup 38508 from randolph.wlist
added talkgroup 38509 from randolph.wlist
added talkgroup 38510 from randolph.wlist
added talkgroup 38512 from randolph.wlist
added talkgroup 38513 from randolph.wlist
added talkgroup 38514 from randolph.wlist
added talkgroup 38517 from randolph.wlist
added talkgroup 38519 from randolph.wlist
added talkgroup 38523 from randolph.wlist
added talkgroup 38536 from randolph.wlist
added talkgroup 38556 from randolph.wlist
added talkgroup 38577 from randolph.wlist
added talkgroup 38586 from randolph.wlist
streaming server url="http://audio9.broadcastify.com:80/?????????????.m3u"
1576197542.853369 control channel timeout
1576197543.363234 Reconfiguring NAC from 0x000 to 0x1f0
1576197550.805032 voice update: tg(38506), freq(771731250), slot(-), prio(3)
1576197553.727558 voice update: tg(38506), freq(771731250), slot(-), prio(3)
1576197554.891575 voice update: tg(38506), freq(771731250), slot(-), prio(3)
1576197557.461933 voice update: tg(38506), freq(771731250), slot(-), prio(3)
1576198028.588546 control channel timeout
1576198028.590099 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198028.695271 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198028.817264 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198029.337605 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198031.764380 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198032.796786 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198046.088994 meta_server::send_metadata(): metadata update error: 400
1576198046.551404 meta_server::send_metadata(): metadata update error: 400
1576198046.818815 meta_server::send_metadata(): metadata update error: 400
1576198047.122445 meta_server::send_metadata(): metadata update error: 400
1576198048.669059 voice update: tg(38509), freq(770068750), slot(-), prio(3)
1576198052.606978 meta_server::send_metadata(): metadata update error: 400
1576198052.629462 voice update: tg(38509), freq(770068750), slot(-), prio(3)
1576198053.528385 voice update: tg(38509), freq(770068750), slot(-), prio(3)
1576198056.858149 voice update: tg(38509), freq(770068750), slot(-), prio(3)
1576198057.872598 voice update: tg(38509), freq(770068750), slot(-), prio(3)
1576198060.318985 voice update: tg(38504), freq(771731250), slot(-), prio(3)
1576198063.147169 voice update: tg(38504), freq(771731250), slot(-), prio(3)
1576198064.027311 voice update: tg(38504), freq(771731250), slot(-), prio(3)
1576198065.556301 voice update: tg(38504), freq(771731250), slot(-), prio(3)
1576198066.578261 voice update: tg(38504), freq(771731250), slot(-), prio(3)
1576198086.317768 meta_server::send_metadata(): metadata update error: 400
1576198091.552062 voice update: tg(38506), freq(770356250), slot(-), prio(3)
1576198095.131188 voice update: tg(38506), freq(770356250), slot(-), prio(3)
1576198096.152658 voice update: tg(38506), freq(770356250), slot(-), prio(3)
1576198099.219201 voice update: tg(38506), freq(770356250), slot(-), prio(3)
1576198100.240429 voice update: tg(38506), freq(770356250), slot(-), prio(3)
1576198161.834766 voice update: tg(38509), freq(772756250), slot(-), prio(3)
1576198164.388362 voice update: tg(38509), freq(772756250), slot(-), prio(3)
1576198165.394636 voice update: tg(38509), freq(772756250), slot(-), prio(3)
1576198167.837506 voice update: tg(38509), freq(771731250), slot(-), prio(3)
1576198170.645560 voice update: tg(38509), freq(771731250), slot(-), prio(3)
1576198171.668362 voice update: tg(38509), freq(771731250), slot(-), prio(3)
1576198178.998645 meta_server::send_metadata(): metadata update error: 400
1576198185.050801 meta_server::send_metadata(): metadata update error: 400
1576198277.171024 voice update: tg(38513), freq(771581250), slot(-), prio(3)
1576198280.639167 voice update: tg(38513), freq(771581250), slot(-), prio(3)
1576198281.656539 voice update: tg(38513), freq(771581250), slot(-), prio(3)
1576198282.542866 voice update: tg(38513), freq(771581250), slot(-), prio(3)
1576198286.126095 voice update: tg(38513), freq(771581250), slot(-), prio(3)
1576198287.036168 voice update: tg(38513), freq(771581250), slot(-), prio(3)
1576198289.480173 voice update: tg(38506), freq(770068750), slot(-), prio(3)
1576198291.768503 voice update: tg(38506), freq(770068750), slot(-), prio(3)
1576198292.673382 voice update: tg(38506), freq(770068750), slot(-), prio(3)
1576198295.227001 voice update: tg(38513), freq(772756250), slot(-), prio(3)
1576198297.531134 voice update: tg(38513), freq(772756250), slot(-), prio(3)
1576198298.802289 voice update: tg(38513), freq(772756250), slot(-), prio(3)
1576198301.111237 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198304.180352 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198307.141896 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198309.086875 control channel timeout
1576198309.088368 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198309.900328 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198313.292249 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198314.810527 voice update: tg(38513), freq(770356250), slot(-), prio(3)
1576198321.360707 meta_server::send_metadata(): metadata update error: 400
1576198323.278771 voice update: tg(38513), freq(771731250), slot(-), prio(3)
1576198327.504282 voice update: tg(38513), freq(771731250), slot(-), prio(3)
1576198329.918645 meta_server::send_metadata(): metadata update error: 400
1576198330.702511 voice update: tg(38513), freq(771731250), slot(-), prio(3)
1576198331.729600 voice update: tg(38513), freq(771731250), slot(-), prio(3)
1576198334.293125 meta_server::send_metadata(): metadata update error: 400
1576198351.501996 meta_server::send_metadata(): metadata update error: 400
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,539
Location
Talbot Co, MD
1576198351.501996 meta_server::send_metadata(): metadata update error: 400
op25 appears to be working and receiving traffic but your feed appears to be down. These errors are usually seen when the broadcastify server is denying metadata updates because the voice feed isn't up. How are you streaming from op25 to broadcastify? (Darkice or Liquidsoap).
 

brad2388

Member
Feed Provider
Joined
May 3, 2019
Messages
52
Location
Climax, NC
To be honest i dont really know. But i think liquidsoap.




op25 appears to be working and receiving traffic but your feed appears to be down. These errors are usually seen when the broadcastify server is denying metadata updates because the voice feed isn't up. How are you streaming from op25 to broadcastify? (Darkice or Liquidsoap).
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,539
Location
Talbot Co, MD
To be honest i dont really know. But i think liquidsoap.
Hmm, sorry but that's a pretty fundamental question... Looking at your op25 logs I can see that you are probably using an external audio player, which is certainly consistent with running liquidsoap for streaming.

Please let me know the following:
1. Whether you start op25 (and the streaming service) automatically at boot, or interactively from the command line?
2. If interactively, what commands are you running?
3. If automatically at boot, what are the contents of the /etc/systemd/system directory and is there anything related to liquidsoap found in the file /var/log/messages?
 

brad2388

Member
Feed Provider
Joined
May 3, 2019
Messages
52
Location
Climax, NC
ok in the /var/log/messages file there is a error for liquidsoap.

pulseaudio[571]: [pulseaudio] server-lookup.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Dec 12 18:56:02 raspberrypi pulseaudio[571]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

in the /etc/systemd/system dir. i have three services for op25

op25-liq.service
[Unit]
Description=op25-liq
After=syslog.target network.target nss-lookup.target network-online.target
Requires=network-online.target

[Service]
User=pi
Group=pi
WorkingDirectory=/home/pi/op25/op25/gr-op25_repeater/apps
ExecStart=/usr/bin/liquidsoap op25.liq
RestartSec=5
Restart=on-failure

[Install]
WantedBy=multi-user.target

op25-rx.service
[Unit]
Description=op25-rx
After=syslog.target network.target nss-lookup.target network-online.target
Requires=network-online.target

[Service]
User=root
Group=root
Type=forking
ExecStart=/usr/bin/screen -d -m /home/pi/op25/op25.sh
RestartSec=5
Restart=on-failure

[Install]
WantedBy=multi-user.target


op25-stream0.service

[Unit]
Description=op25
After=syslog.target network.target nss-lookup.target network-online.target
Requires=network-online.target

[Service]
User=pi
Group=pi
WorkingDirectory=/home/pi/op25/op25/gr-op25_repeater/apps
ExecStart=/bin/bash --./ op25.sh
RestartSec=5
Restart=on-failure

[Install]
WantedBy=multi-user.target
 

brad2388

Member
Feed Provider
Joined
May 3, 2019
Messages
52
Location
Climax, NC
yes when it worked orginally it started up automatically. i just have it on my desk without a monitor. just have vnc installed on it.
 

brad2388

Member
Feed Provider
Joined
May 3, 2019
Messages
52
Location
Climax, NC
#!/usr/bin/liquidsoap

# Example liquidsoap streaming from op25 to icecast
# (c) 2019, gnorbury@bondcar.com
#

set("log.stdout", true)
set("log.file", false)
set("log.level", 1)

# Make the native sample rate compatible with op25
set("frame.audio.samplerate", 8000)

input = mksafe(input.external(buffer=0.02, channels=2, samplerate=8000, restart_on_error=false, "./audio.py -s"))


# LOCAL AUDIO
# Uncomment the appropriate line below to enable local sound
#
# Default audio subsystem
out (input)
#
# PulseAudio
#output.pulseaudio(input)
#
# ALSA
#output.alsa(input)


# ICECAST STREAMING
# Uncomment to enable output to an icecast server
# Change the "host", "password", and "mount" strings appropriately first!
# For metadata to work properly, the host address given here MUST MATCH the address in op25's meta.json file
#
output.icecast(%mp3(bitrate=16, samplerate=22050, stereo=false), description="op25", genre="Public Safety", url="", fallible=false, icy_metadata="false", host="audio9.broadcastify.com", port=80, mount="/??????????", password="????????", mean(input))
 

brad2388

Member
Feed Provider
Joined
May 3, 2019
Messages
52
Location
Climax, NC
i believe that might be the problem. i did comment that but it never started.

also believe something in the audio is hosed up. when it did work the broadcastify would plan online but alot of times it wouldnt play out of the headphone port. i could restart and sometimes it worked and sometimes it didnt.

can you walk me thru that setup again?
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,539
Location
Talbot Co, MD
It doesn't sound like there is anything wrong with your op25 installation, but it does appear that either liquidsoap or pulseaudio aren't playing nice.
Suggest increasing the log level to '3' in op25.liq then restart and see what gets written to /var/log/messages
 

brad2388

Member
Feed Provider
Joined
May 3, 2019
Messages
52
Location
Climax, NC
does this make any sense? maybe im not using the right command in my op25 service file.

this is my command

./rx.py --args 'rtl' -N 'LNA:47' -S 2400000 -f 774.68125 -o 25000 -q 0 -T trunk.tsv -V -2 -U 2> stderr.2


Traceback (most recent call last):
File "./rx.py", line 927, in <module>
rx = rx_main()
File "./rx.py", line 841, in __init__
self.tb = p25_rx_block(self.options)
File "./rx.py", line 232, in __init__
self.audio = audio_thread("127.0.0.1", self.options.wireshark_port, self.options.audio_output, False, self.options.audio_gain)
File "/home/pi/op25/op25/gr-op25_repeater/apps/sockaudio.py", line 454, in __init__
self.sock_audio = socket_audio(udp_host, udp_port, pcm_device, two_channels, audio_gain, dest_stdout, **kwds)
File "/home/pi/op25/op25/gr-op25_repeater/apps/sockaudio.py", line 322, in __init__
self.setup_sockets(udp_host, udp_port)
File "/home/pi/op25/op25/gr-op25_repeater/apps/sockaudio.py", line 419, in setup_sockets
self.sock_a.bind((udp_host, udp_port))
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,539
Location
Talbot Co, MD
does this make any sense? maybe im not using the right command in my op25 service file.

this is my command

./rx.py --args 'rtl' -N 'LNA:47' -S 2400000 -f 774.68125 -o 25000 -q 0 -T trunk.tsv -V -2 -U 2> stderr.2

File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use

Since you are running liquidsoap you need to remove the "-U" option from rx.py command line otherwise two different audio players will try to claim the same port, which of course will fail miserably.
 
Status
Not open for further replies.
Top