g0orx / linhpsdr

Linux HPSDR
GNU General Public License v3.0
74 stars 45 forks source link

SoapySDR: linhpsdr crashes or freezes when selecting RTL-SDR or PLUTOSDR devices - Ubuntu 18.04 #35

Closed satfan52 closed 5 years ago

satfan52 commented 5 years ago

Hello,

I have installed soapysdr in my linux environment (18.04) and my plutosdr is detected by the soapysdr-util tool. I know the plutosdr is not hpsdr compliant but I also saw that you seems to be supporting soapysdr, so can my plutosdr be detected ? can I use it with linhpsdr ? Is there a specific way to start linhpsdr so my plutosdr can be detected ?

Thanks Regards

g0orx commented 5 years ago

The SoapySDR code is a work in progress. I have receive working but not transmit yet. I do not have a plutosdr so cannot test it, but it does work with my RTL-SDR and LimeSDR.

Feel free to try it out and let me know how it works. -- John

satfan52 commented 5 years ago

Dear John

I tested linhpsdr ok with my redpitaya, but linhpsdr does not detect my PlutoSDR. Is there a command of the type "linhpsdr --soapysdr-rtlsdr" to force detection of a target soapysdr devices ?

I can detect my plutosdr with "SoapySDRUtil --find" command so I am confident that my soapysdr set-up is fine. I have also tested my soapysdr set-up in reception mode with QUISK so I think my soapysdr set-up is working fine.

Thanks Regards

peter@on7yi-ubuntu:/usr/src/PlutoSNA$ SoapySDRUtil --probe ######################################################

Soapy SDR -- the SDR abstraction library

######################################################

Probe device


-- Device identification

driver=PlutoSDR hardware=ADALM-PLUTO ad9361-phy,model=ad9364 ad9361-phy,xo_correction=39999835 backend_version=0.14 (git tag: v0.14 ) fw_version=v0.27 hw_model=Analog Devices PlutoSDR Rev.B (Z7010-AD9363) hw_model_variant=1 hw_serial=104400b8399100140b0027004b28656d80 library_version=0.17 (git tag: cce2ee2) local,kernel=4.9.0-10221-gf457f60 usb,idProduct=b673 usb,idVendor=0456 usb,libusb=1.0.21.11156 usb,product=PlutoSDR (ADALM-PLUTO) usb,release=2.0 usb,serial=104400b8399100140b0027004b28656d80 usb,vendor=Analog Devices Inc.


-- Peripheral summary

Channels: 1 Rx, 1 Tx Timestamps: NO


-- RX Channel 0

Full-duplex: YES Supports AGC: YES Stream formats: CS8, CS12, CS16, CF32 Native format: CS16 [full-scale=2048] Antennas: A_BALANCED Corrections: DC removal Full gain range: [0, 73] dB PGA gain range: [0, 73] dB Full freq range: [70, 6000] MHz RF freq range: [70, 6000] MHz Sample rates: 0.065105, 1, 2, 3, 4, 6, 7, 8, 9, 10 MSps Filter bandwidths: 0.2, 1, 2, 3, 4, 6, 7, 8, 9, 10 MHz


-- TX Channel 0

Full-duplex: YES Supports AGC: NO Stream formats: CS8, CS12, CS16, CF32 Native format: CS16 [full-scale=32768] Antennas: A Corrections: DC removal Full gain range: [0, 89] dB PGA gain range: [0, 89] dB Full freq range: [70, 6000] MHz RF freq range: [70, 6000] MHz Sample rates: 0.065105, 1, 2, 3, 4, 6, 7, 8, 9, 10 MSps Filter bandwidths: 0.2, 1, 2, 3, 4, 6, 7, 8, 9, 10 MHz

Peter

g0orx commented 5 years ago

By default SoapySDR is not built into linHPSDR. There is a line in the Makefile:

SOAPYSDR_INCLUDE=SOAPYSDR

Just remove the # at the beginning of the line and run "make clean;make" -- John

satfan52 commented 5 years ago

Yes my rtl-sdr and my pluto are also detected now (see picture) in addition to my redpitaya device. However, linhpsdr crashes when I select the PlutoSDR

When I select my RTL-SDR devices, linhpsdr either crashes or opens-up but freezes completely (I have to kill it )

For the redpitaya everythng works OK

pluto detected

satfan52 commented 5 years ago

Here is segmentation fault when select the RTL-SDR. Sometimes there is no segmentation fault but linhpsdr freezes and I have to kill it.

create_radio for rtlsdr 7 loadProperties: /home/peter/.local/share/linhpsdr/rtlsdr.props loadProperties: version=0.000000 expected version=2.000000 ignoring soapy_protocol_init soapy_protocol_init: SoapySDRDevice_make create_receiver: channel=0 sample_rate=384000 create_receiver: channel=0 frequency_min=23999000 frequency_max=1764001000 create_receiver: buffer_size=1024 create_receiver: fft_size=2048 create_receiver: OpenChannel: channel=0 buffer_size=1024 sample_rate=384000 fft_size=2048 output_samples=128 soapy_protocol: setFrequency: 145000000.000000 receiver_init_analyzer: channel=0 zoom=1 pixels=0 pixel_samples=(nil) receiver_update_title: Linux HPSDR: Rx-0 ADC-0 384000 create_vfo: rx=0 soapy_protocol_create: setting samplerate=384000.000000 Invalid sample rate: 384000 Hz soapy_protocol_create_receiver: SoapySDRDevice_setupStream: channel=0 soapy_protocol_start_receiver: max_samples=4096 soapy_protocol: set_antenna: RX soapy_protocol: setFrequency: 145000000.000000 soapy_protocol_start_receiver: activate_stream soapy_protocol_start_receiver: create receive_thread receive_thread: id=0x55a2f305d8a0 audio: create_audio soapy_protocol: receive_thread Allocating 15 zero-copy buffers Server listening on port 50000 x=-1 y=-1 audio: state_cb: PA_CONTEXT_AUTHORIZING audio: state_cb: PA_CONTEXT_SETTING_NAME audio: state_cb: PA_CONTEXT_READY Output: 0: alsa_output.pci-0000_00_01.1.hdmi-surround (Built-in Audio Digital Surround 5.1 (HDMI)) Output: 1: alsa_output.pci-0000_00_14.2.analog-stereo (Built-in Audio Analog Stereo) Input: 0: alsa_output.pci-0000_00_01.1.hdmi-surround.monitor (Monitor of Built-in Audio Digital Surround 5.1 (HDMI)) Input: 1: alsa_output.pci-0000_00_14.2.analog-stereo.monitor (Monitor of Built-in Audio Analog Stereo) Input: 2: alsa_input.pci-0000_00_14.2.analog-stereo (Built-in Audio Analog Stereo) radio_start Segmentation fault (core dumped)

satfan52 commented 5 years ago

Here is the segmentation fault when I select plutosdr.

create_radio for plutosdr 7 loadProperties: /home/peter/.local/share/linhpsdr/plutosdr.props loadProperties: version=0.000000 expected version=2.000000 ignoring soapy_protocol_init soapy_protocol_init: SoapySDRDevice_make create_receiver: channel=0 sample_rate=384000 create_receiver: channel=0 frequency_min=70000000 frequency_max=6000000000 create_receiver: buffer_size=1024 create_receiver: fft_size=2048 create_receiver: OpenChannel: channel=0 buffer_size=1024 sample_rate=384000 fft_size=2048 output_samples=128 soapy_protocol: setFrequency: 145000000.000000 receiver_init_analyzer: channel=0 zoom=1 pixels=0 pixel_samples=(nil) receiver_update_title: Linux HPSDR: Rx-0 ADC-0 384000 create_vfo: rx=0 soapy_protocol_create: setting samplerate=384000.000000 soapy_protocol_create_receiver: SoapySDRDevice_setupStream: channel=0 soapy_protocol_start_receiver: max_samples=4096 create_transmitter: channel=8 transmitter_init_analyzer: width=0 pixels=0 update_timer: fps=10 soapy_protocol_create_transmitter: setting samplerate=1536000.000000 soapy_protocol_create_transmitter: SoapySDRDevice_setupStream: channel=0 soapy_protocol: set_antenna: A_BALANCED soapy_protocol: setFrequency: 145000000.000000 soapy_protocol_start_receiver: activate_stream Segmentation fault (core dumped)

satfan52 commented 5 years ago

Does not crash any longer with my PlutoSDR (SoapySDR), seems to be fixed

satfan52 commented 5 years ago

Well, I was too fast, sometimes Linhpsdr starts after the discovery of my PlutoSDR, sometimes it crashes, so it seems a random behaviour at first.

xxx@yyyyyy:~# linhpsdr Build: 2019-06-18 Beta GTK+ version 3.22.30 sysname: Linux nodename: on7yi-ubuntu release: 4.15.0-64-generic version: #73-Ubuntu SMP Thu Sep 12 13:16:13 UTC 2019 machine: x86_64 opengl: 0 discovery protocol1_discovery discover: looking for HPSDR devices on lo discover: bound to lo discover_receive_thread discovery: bytes read -1 discovery: recvfrom socket failed for discover_receive_thread: Resource temporarily unavailable discovery: exiting discover_receive_thread discover: exiting discover for lo discover: looking for HPSDR devices on enp3s0 discover: bound to enp3s0 discover_receive_thread discovery: bytes read -1 discovery: recvfrom socket failed for discover_receive_thread: Resource temporarily unavailable discovery: exiting discover_receive_thread discover: exiting discover for enp3s0 discover: looking for HPSDR devices on enx00e022452dd3 discover: bound to enx00e022452dd3 discover_receive_thread discovery: bytes read -1 discovery: recvfrom socket failed for discover_receive_thread: Resource temporarily unavailable discovery: exiting discover_receive_thread discover: exiting discover for enx00e022452dd3 discovery found 0 devices protocol2_discover: looking for HPSDR devices on enp3s0 protocol2_discover: bound to enp3s0 192.168.0.101 255.255.255.0 protocol2_disovery: thread_id=0x55f685fbf8a0 protocol2_discover: bytes read -1 protocol2_discover: recvfrom socket failed for discover_receive_thread: Resource temporarily unavailable protocol2_discover: exiting protocol2_discover_receive_thread protocol2_discover: exiting discover for enp3s0 protocol2_discover: looking for HPSDR devices on enx00e022452dd3 protocol2_discover: bound to enx00e022452dd3 192.168.0.101 255.255.255.0 protocol2_disovery: thread_id=0x55f685fbf8f0 protocol2_discover: bytes read -1 protocol2_discover: recvfrom socket failed for discover_receive_thread: Resource temporarily unavailable protocol2_discover: exiting protocol2_discover_receive_thread protocol2_discover: exiting discover for enx00e022452dd3 protocol2_discovery found 0 devices soapy_discovery soapy_discovery: get_info: plutosdr DriverKey=PlutoSDR HardwareKey=ADALM-PLUTO soapy_discovery: hardware info key=ad9361-phy,model val=ad9364 soapy_discovery: hardware info key=ad9361-phy,xo_correction val=39999835 soapy_discovery: hardware info key=backend_version val=0.14 (git tag: v0.14 ) soapy_discovery: hardware info key=fw_version val=v0.27 soapy_discovery: hardware info key=hw_model val=Analog Devices PlutoSDR Rev.B (Z7010-AD9363) soapy_discovery: hardware info key=hw_model_variant val=1 soapy_discovery: hardware info key=hw_serial val=104400b8399100140b0027004b28656d80 soapy_discovery: hardware info key=library_version val=0.18 (git tag: c0012d0) soapy_discovery: hardware info key=local,kernel val=4.9.0-10221-gf457f60 soapy_discovery: hardware info key=usb,idProduct val=b673 soapy_discovery: hardware info key=usb,idVendor val=0456 soapy_discovery: hardware info key=usb,libusb val=1.0.21.11156 soapy_discovery: hardware info key=usb,product val=PlutoSDR (ADALM-PLUTO) soapy_discovery: hardware info key=usb,release val=2.0 soapy_discovery: hardware info key=usb,serial val=104400b8399100140b0027004b28656d80 soapy_discovery: hardware info key=usb,vendor val=Analog Devices Inc. Rx channels: 1 Rx channel full duplex: channel=0 fullduplex=1 Tx channels: 1 Tx channel full duplex: channel=0 fullduplex=1 Rx sample rates: 65105.000000 -> 65105.000000 (1.356354),1000000.000000 -> 1000000.000000 (20.833333),2000000.000000 -> 2000000.000000 (41.666667),3000000.000000 -> 3000000.000000 (62.500000),4000000.000000 -> 4000000.000000 (83.333333),5000000.000000 -> 5000000.000000 (104.166667),6000000.000000 -> 6000000.000000 (125.000000),7000000.000000 -> 7000000.000000 (145.833333),8000000.000000 -> 8000000.000000 (166.666667),9000000.000000 -> 9000000.000000 (187.500000),10000000.000000 -> 10000000.000000 (208.333333), sample_rate selected 6000000 Tx sample rates: 65105.000000 -> 65105.000000 (1.356354),1000000.000000 -> 1000000.000000 (20.833333),2000000.000000 -> 2000000.000000 (41.666667),3000000.000000 -> 3000000.000000 (62.500000),4000000.000000 -> 4000000.000000 (83.333333),5000000.000000 -> 5000000.000000 (104.166667),6000000.000000 -> 6000000.000000 (125.000000),7000000.000000 -> 7000000.000000 (145.833333),8000000.000000 -> 8000000.000000 (166.666667),9000000.000000 -> 9000000.000000 (187.500000),10000000.000000 -> 10000000.000000 (208.333333), Rx bandwidths: 200000.000000, 1000000.000000, 2000000.000000, 3000000.000000, 4000000.000000, 5000000.000000, 6000000.000000, 7000000.000000, 8000000.000000, 9000000.000000, 10000000.000000, Tx bandwidths: 200000.000000, 1000000.000000, 2000000.000000, 3000000.000000, 4000000.000000, 5000000.000000, 6000000.000000, 7000000.000000, 8000000.000000, 9000000.000000, 10000000.000000, RX0: bandwidth=18000000.000000 TX0: bandwidth=18000000.000000 Rx freq ranges: [70000000.000000 Hz -> 6000000000.000000 Hz step=0.000000], Rx antennas: A_BALANCED, Tx antennas: A, has_automaic_gain=1 has_automaic_dc_offset_correction=1 Rx formats: CS8, CS16, CF32, float=4 double=8 Rx gains: PGA 0.000000 -> 73.000000 step=0.000000 Tx gains: PGA 0.000000 -> 89.000000 step=0.000000 main: discovery found 1 devices discovered: 0 device=7 adding plutosdr tree_selection_changed_cb tree_selection_changed_cb: selected=plutosdr,SoapySDR,0.0.0,, tree_selection_changed_cb: first=plutosdr,SoapySDR,0.0.0,, found 0 starting Linux HPSDR (Beta): plutosdr SoapySDR v0.0.0 () on USB create_radio for plutosdr 7 loadProperties: /home/peter/.local/share/linhpsdr/plutosdr.props soapy_protocol_init soapy_protocol_init: SoapySDRDevice_make audio: create_audio: USE_PULSEAUDIO create_receiver: channel=0 sample_rate=6000000 create_receiver: channel=0 frequency_min=70000000 frequency_max=6000000000 create_receiver: buffer_size=1024 create_receiver: fft_size=2048 create_receiver: OpenChannel: channel=0 buffer_size=1024 sample_rate=6000000 fft_size=2048 output_samples=8 receiver_change_sample_rate: resample_step=1 soapy_protocol_set_rx_frequency: 146629300.000000 receiver_init_analyzer: channel=0 zoom=1 pixels=0 pixel_samples=(nil) receiver_update_title: Linux HPSDR: Rx-0 ADC-0 6000000 create_vfo: rx=0 rx_panadapter_configure_event_cb receiver_configure_event: gtk_paned_set_position: rx=0 position=59 height=120 percent=0.499412 soapy_protocol_create: setting samplerate=6000000.000000 soapy_protocol_create_receiver: SoapySDRDevice_setupStream: channel=0 create_transmitter: channel=8 transmitter_init_analyzer: width=0 pixels=0 update_timer: fps=10 soapy_protocol_create_transmitter: setting samplerate=6000000.000000 soapy_protocol_create_transmitter: SoapySDRDevice_setupStream: channel=0 soapy_protocol_create_transmitter: max_tx_samples=4096 soapy_protocol: set_rx_antenna: A_BALANCED soapy_protocol_set_rx_frequency: 146629300.000000 soapy_protocol_start_receiver: activate_stream Segmentation fault (core dumped)

satfan52 commented 5 years ago

Compiling the latest versions of SoapySDR, libiio, and PlutoSDR available to date on github and getting rid of the older ones in the myriad repository solved the issue for me. Now I can start my plutosdr radio (receiver) after it has been detected, however there are a number of other important issues for which I will open separate tickets.