steeviebops / hacktv-gui

GUI wrapper for hacktv
GNU General Public License v2.0
87 stars 15 forks source link

No SoapySDR devices found on MacOS when devices are recognized #6

Open TylerKann opened 9 months ago

TylerKann commented 9 months ago

In my terminal, if I type

SoapySDRUtil --find
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

[WARNING] SoapyVOLKConverters: no VOLK config file found. Run volk_profile for best performance.
[WARNING] SoapySSDPEndpoint failed join group udp://[ff02::c]:1900 on en0
  setsockopt(IPV6_MULTICAST_IF, 2607:fb90:e39e:400a:1c68:a562:8789:3eea) [49: Can't assign requested address]
[WARNING] SoapySSDPEndpoint failed join group udp://[ff02::c]:1900 on en0
  setsockopt(IPV6_MULTICAST_IF, 2607:fb90:e39e:400a:3889:d4dd:d9c7:5670) [49: Can't assign requested address]
[WARNING] SoapySSDPEndpoint failed join group udp://[ff02::c]:1900 on en0
  setsockopt(IPV6_MULTICAST_IF, fdb8:1752:e203:0:d7:cecd:e501:b744) [49: Can't assign requested address]
[INFO] [UHD] Mac OS; Clang version 14.0.6 ; Boost_107800; UHD_4.4.0.0-release
Found device 0
  default_input = True
  default_output = False
  device_id = 0
  driver = audio
  label = Apple Inc.: External Microphone

Found device 1
  default_input = False
  default_output = False
  device_id = 2
  driver = audio
  label = Apple Inc.: MacBook Pro Microphone

Found device 2
  default_input = False
  default_output = False
  device_id = 4
  driver = audio
  label = Microsoft Corp.: Microsoft Teams Audio

Found device 3
  driver = uhd
  label = B200 E2R04ZCB2
  name = sink
  product = B200
  serial = E2R04ZCB2
  type = b200

I can clearly see that device 3 is the ettus b200 found using soapysdr. However when I try to use hacktv/hacktvgui (I am using the captainjack build), it tells me that 'No Soapy SDR devices found.' I am on a Mac. Does this have anything to do with the fact that it is found under device 3? Technically this is a hacktv issue and not a hacktvgui, but captainjack does not allow issues to be posted. many thanks in advance

steeviebops commented 9 months ago

I actually haven't used SoapySDR (have no devices that can use it) but it requires a driver name to be specified. In the GUI, try entering uhd or sink into the Device options box, or at the command line use -o soapysdr:uhd or -o soapysdr:sink

TylerKann commented 9 months ago

Unfortunately neither of those worked

 hacktv -o soapysdr:sink -m m -f 471250000 -s 13500000 -g 0 test:colourbars
Video: 715x480 29.97 fps (full frame 858x525)
Sample rate: 13500000
No SoapySDR devices found.

Do you have any other thoughts? I wonder if it has to do with the hardware (device 3 on Mac), or if it a simple additional command. Many thanks again.

steeviebops commented 9 months ago

Sorry for the delay in getting back to you. Can you try compiling this test app to see if this works?

https://github.com/pothosware/SoapySDR/wiki/C_API_Example

TylerKann commented 8 months ago

Hi steevie,

I am too sorry for the late delay. Lot of school :(.

I cannot compile the example because of the following error:

tyler@lawn-10-91-5-232 SoapySDR.wiki % gcc -std=c99 example.c  -lSoapySDR && ./a.out            
SoapySDRDevice_make fail: SoapySDR::Device::make() no match

I tried looking into what this means and I couldnt really find any information for it on a macOS. A lot of it is for ubuntu. I would appreciate if you could give me some thoughts. Thanks!