OP25 in vmware workstation-Works!

Status
Not open for further replies.

tubular031

Member
Joined
Oct 9, 2017
Messages
17
I think I read just about every page in that op25 in virtualbox thread.

Just wanted to share with the community that I have OP25 running on ubuntu 14.04 that is a VM on vmware workstation on my window 10 laptop. I have op25 scanning 2 systems. One is p25 phase 1 and the other is p25 phase 2. No choppy audio, and its doing really well. The VM has 1 vcpu and 4 gigs of vram. Watching the ubuntu system monitor I am seeing 30-50% cpu usage and pretty steady 1 gig ram used.

I am using the current max version (oct-2017) of op25 with rx.py

For the noobs out there that might stumble across this post in the future, OP25 is not easy. It takes lots of reading, learning, and tinkering to get it to work right. Keep at it and take lots of breaks to ease the frustration that will build.
 

Attachments

  • op25-Running.jpg
    op25-Running.jpg
    48.9 KB · Views: 722

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
I think I read just about every page in that op25 in virtualbox thread.

Just wanted to share with the community that I have OP25 running on ubuntu 14.04 that is a VM on vmware workstation on my window 10 laptop. I have op25 scanning 2 systems. One is p25 phase 1 and the other is p25 phase 2. No choppy audio, and its doing really well. The VM has 1 vcpu and 4 gigs of vram. Watching the ubuntu system monitor I am seeing 30-50% cpu usage and pretty steady 1 gig ram used.

I am using the current max version (oct-2017) of op25 with rx.py

For the noobs out there that might stumble across this post in the future, OP25 is not easy. It takes lots of reading, learning, and tinkering to get it to work right. Keep at it and take lots of breaks to ease the frustration that will build.

Glad you were able to get it working successfully. I'm curious whether you are using the built-in audio decoder or nc | aplay? The version of sockaudio.py found in max's branch is out of date; my current version has reworked buffer handling to make it more tolerant of different kernels with their varying sizes of default buffer memory.
 

tubular031

Member
Joined
Oct 9, 2017
Messages
17
I am using the built in audio. When I run rx.py I use the -U command to send the auto out my speakers. Seems to work ok. I am not a linux guy at all so that was some of the challenge. I also had issues with the offset and correction. I ended up removing both to get it to work and tune correctly. My rtl-sdr v3 is spot on for tuning I guess

Do you know if OP25 can listen to non trunked p25? I have quite a few frequencies I want to listen to that are p25 but not trunked. I can get them with SDRTrunk currently

Here are some examples
https://www.radioreference.com/apps/db/?ctid=2613
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
I am using the built in audio. When I run rx.py I use the -U command to send the auto out my speakers. Seems to work ok. I am not a linux guy at all so that was some of the challenge. I also had issues with the offset and correction. I ended up removing both to get it to work and tune correctly. My rtl-sdr v3 is spot on for tuning I guess

Do you know if OP25 can listen to non trunked p25? I have quite a few frequencies I want to listen to that are p25 but not trunked. I can get them with SDRTrunk currently

Here are some examples
https://www.radioreference.com/apps/db/?ctid=2613

I've never tried tuning to a non-trunked P25. The lower level c++ code should be ok with demodulating and decoding audio from the bitstream, but the higher level python trunking.py module is almost certainly going to have some indigestion when it doesn't "see" a control channel. I'd guess it'd need some extra work including a new set of command line options & configuration parameters.

Best suggestion is to try configuring the "control channel" frequency to match one of your P25 non-trunked channels and see what happens. It'll either work or it won't...
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
I've never tried tuning to a non-trunked P25. The lower level c++ code should be ok with demodulating and decoding audio from the bitstream, but the higher level python trunking.py module is almost certainly going to have some indigestion when it doesn't "see" a control channel. I'd guess it'd need some extra work including a new set of command line options & configuration parameters.

Best suggestion is to try configuring the "control channel" frequency to match one of your P25 non-trunked channels and see what happens. It'll either work or it won't...

For grins I went ahead and tried it on one of our local phase 2 sites with no success.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
I working on it... Will know more tonight.

I made another attempt to see if I could get stand-alone audio working, but my efforts are being hampered by a lack of Phase 1 traffic in my area - either trunked or conventional. Everything I have access to is Phase 2, except for really rare occasions when an old radio associates with a tgid and causes it to fall back into compatibility mode.

Making sure you have pulled my latest github repo update, try running rx.py with the following parameters:

./rx.py -P fft --args "rtl=0" --gains 'lna:36' -O 'default' -f 770.21875e6 -S 960000 -q 10 -v 10 -U 2> stderr.2

You'll need to edit the "-f <freq>" to match the frequency of the P25 channel you are trying to decode. You will also need to add in "-q <ppm>" for any ppm correction etc.

The rx.py terminal console will stay blank; this is normal because there are no messages coming back from trunking.py to update it.

I don't see anything in the code path that looks like it requires a nac to be configured, but it may be that I just missed it. At the least, if the system locks on to the channel and starts decoding frames, you should get some meaningful output in stderr.2 over and above rx_sym() timeout errors.
 

tubular031

Member
Joined
Oct 9, 2017
Messages
17
Making sure you have pulled my latest github repo update, try running rx.py with the following parameters:

What is the steps/process to update my install?

I am a linux noob so sorry for the question

I used the command "git checkout max" when I pulled it and did the cmake/make/install commands. Dont know if that changes anything
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
What is the steps/process to update my install?

I am a linux noob so sorry for the question

I used the command "git checkout max" when I pulled it and did the cmake/make/install commands. Dont know if that changes anything

Ah right, you're on the official osmocom 'max' branch at the moment. My stuff has moved on a little from there and some of the recent fixes affect what you are trying to accomplish.

I recommend you clone my repo and install that one instead of max. I sync'd Max's latest into my repo about a week ago so you shouldn't be loosing anything along the way.

cd ~
mv op25 op25.max
git clone https://github.com/boatbod/op25
cd op25
mkdir build
cd build
cmake ../
make
sudo make install

Once the install is completed, copy over your config files from ~/op25.max/op25/gr-op25_repeater/apps into ~/op25/op25/gr-op25_repeater/apps and try the experiment again.

Next time you need to update you can do the following:
cd ~/op25
git pull
 

tubular031

Member
Joined
Oct 9, 2017
Messages
17
Thanks for the steps and thanks for the changes to the code. I have my VM updated now. I wont be able to try it out for a day or 2. Ill let you know how it works when I can test it out.
 

tubular031

Member
Joined
Oct 9, 2017
Messages
17
I got home early today and tested it out. I am getting an error and even when I put the frequency of the trunking system I was listening to before I get the same error. Not sure what it all means.


andy@ubuntu:~/op25/op25/gr-op25_repeater/apps$ ./rx.py -P fft --args "rtl=0" --gains 'lna:49' -O 'default' -f 155.445e6 -S 960000 -v 10 -U 2> stderr.2

linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.005.005-0-unknown

gain: name: LNA range: start 0 stop 0 step 0
setting gain lna to 49
supported sample rates 250000-2560000 step 24000
set_center_freq: 155445000
Using Volk machine: avx_64_mmx_orc

andy@ubuntu:~/op25/op25/gr-op25_repeater/apps$ ./rx.py -P fft --args "rtl=0" --gains 'lna:49' -O 'default' -f 155.445e6 -S 960000 -v 10 -U
linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.005.005-0-unknown

gr-osmosdr 0.1.1 (0.1.1) gnuradio 3.7.2.1
built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf rfspace
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
gain: name: LNA range: start 0 stop 0 step 0
setting gain lna to 49
supported sample rates 250000-2560000 step 24000
set_center_freq: 155445000
Using Volk machine: avx_64_mmx_orc
Traceback (most recent call last):
File "./rx.py", line 671, in <module>
tb = p25_rx_block()
File "./rx.py", line 220, in __init__
self.open_usrp()
File "./rx.py", line 606, in open_usrp
self.__set_rx_from_osmosdr()
File "./rx.py", line 542, in __set_rx_from_osmosdr
self.__build_graph(self.src, capture_rate)
File "./rx.py", line 283, in __build_graph
symbol_rate = self.symbol_rate)
File "/home/andy/op25/op25/gr-op25_repeater/apps/p25_demodulator.py", line 173, in __init__
self.lpf = filter.fft_filter_ccf(decimation, lpf_coeffs)
AttributeError: 'module' object has no attribute 'fft_filter_ccf'
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
I got home early today and tested it out. I am getting an error and even when I put the frequency of the trunking system I was listening to before I get the same error. Not sure what it all means.


andy@ubuntu:~/op25/op25/gr-op25_repeater/apps$ ./rx.py -P fft --args "rtl=0" --gains 'lna:49' -O 'default' -f 155.445e6 -S 960000 -v 10 -U 2> stderr.2

linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.005.005-0-unknown

gain: name: LNA range: start 0 stop 0 step 0
setting gain lna to 49
supported sample rates 250000-2560000 step 24000
set_center_freq: 155445000
Using Volk machine: avx_64_mmx_orc

andy@ubuntu:~/op25/op25/gr-op25_repeater/apps$ ./rx.py -P fft --args "rtl=0" --gains 'lna:49' -O 'default' -f 155.445e6 -S 960000 -v 10 -U
linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.005.005-0-unknown

gr-osmosdr 0.1.1 (0.1.1) gnuradio 3.7.2.1
built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf rfspace
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
gain: name: LNA range: start 0 stop 0 step 0
setting gain lna to 49
supported sample rates 250000-2560000 step 24000
set_center_freq: 155445000
Using Volk machine: avx_64_mmx_orc
Traceback (most recent call last):
File "./rx.py", line 671, in <module>
tb = p25_rx_block()
File "./rx.py", line 220, in __init__
self.open_usrp()
File "./rx.py", line 606, in open_usrp
self.__set_rx_from_osmosdr()
File "./rx.py", line 542, in __set_rx_from_osmosdr
self.__build_graph(self.src, capture_rate)
File "./rx.py", line 283, in __build_graph
symbol_rate = self.symbol_rate)
File "/home/andy/op25/op25/gr-op25_repeater/apps/p25_demodulator.py", line 173, in __init__
self.lpf = filter.fft_filter_ccf(decimation, lpf_coeffs)
AttributeError: 'module' object has no attribute 'fft_filter_ccf'
For some reason your installed gnuradio does not have the fft_filter module that most installations have automatically. The fix is pretty simple - edit p25_demodulator.py and change the text "fft" to "fir". The FIR filter uses more cpu, but it should be installed by default.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
I just pushed a fix for the fft_filter_ccf() / fir_filter_ccf() error that a couple of people have experienced. Fundamentally I don't know why some gnuradio installations have both while others only have one, but the p25_demodulator code now falls back to fir if fft is not present.

Anyone who wants the update will need to "git pull" to download the change.
 

tubular031

Member
Joined
Oct 9, 2017
Messages
17
I changed that line in the config and now its running. When there is nothing on the frequency I get a constant scrolling message that says process_data_unit timeout p25p1_fdma::rx_sym() timeout

I was able to catch some audio but it seemed a little choppy.

I attached 2 screen shots, 1 is when there is no RX and the other is when its receiving.

I am going to watch it some more and see how it sounds. the PD is not too active today. I guess that is a good thing!
 

Attachments

  • op25-boatbodmod-notx.jpg
    op25-boatbodmod-notx.jpg
    41.8 KB · Views: 459
  • op25-boatbodmod-tx.jpg
    op25-boatbodmod-tx.jpg
    40.1 KB · Views: 412

tubular031

Member
Joined
Oct 9, 2017
Messages
17
listening more I think my choppy audio was due to running sdrtrunk on my windows os and then running the ubuntu vm with op25. I had sdr trunk running but muted for a second opinion on when that frequency was transmitting. Once I closed SDRTrunk the audio became smooth again.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,316
Location
Talbot Co, MD
listening more I think my choppy audio was due to running sdrtrunk on my windows os and then running the ubuntu vm with op25. I had sdr trunk running but muted for a second opinion on when that frequency was transmitting. Once I closed SDRTrunk the audio became smooth again.

I think you may have the logging level too high and it's spitting out lots of NAC/DUID messages and eating up too much precious cpu. Try setting "-v 1" or perhaps "-v 0" in the command line parameters and (as you already did) eliminate background activities. You might also try turning the -P plot off.

On my pi3 the audio is acceptable as long as I don't have any plots turned on. If I do that, it gets way less listenable and the number of rx_sym() timeouts increases significantly. You probably have a similar situation going on here with the resources being spread across multiple virtual machines.
 

ScanRite

Member
Premium Subscriber
Joined
Dec 19, 2002
Messages
448
Location
Maricopa, Arizona
So would your vm setup be usable by others, i.e., here it is, open it and enjoy? :)

I've started putting one together, but haven't had a lot of time on it yet.
 

tubular031

Member
Joined
Oct 9, 2017
Messages
17
On my pi3 the audio is acceptable as long as I don't have any plots turned on. If I do that, it gets way less listenable and the number of rx_sym() timeouts increases significantly. You probably have a similar situation going on here with the resources being spread across multiple virtual machines.

My next project will be to get this running on my pi3. I have been a big pi fan and have a bunch of them out there for different things. I have 2 pi Bs, 1 pi2 and 1 pi3 sitting on my desk at home right now :)

So would your vm setup be usable by others, i.e., here it is, open it and enjoy? :)

I've started putting one together, but haven't had a lot of time on it yet.

you would not want my VM right now. I was monkeying with some stuff and I have managed to mess it up and not to sure what all I did. I am going to end up rebuilding that VM this time on the newer ubuntu. I was on 14.04.
 

tubular031

Member
Joined
Oct 9, 2017
Messages
17
Hey boatbod
Thanks again for the updates to op25 so it can monitor a non trunked system.

Do you know if op25 can be adapted to monitor an analog Motorola Type II Smartnet system? I am able to hear it on windows with unitrunker. I want to be able to monitor that system on another PI so I dont have to use a windows box running all the time.
 
Status
Not open for further replies.
Top