Как правильно установить SoapySDR с LimeSDR USB - PullRequest
0 голосов
/ 25 апреля 2019

Я хочу написать код C, используя SoapySDR для управления моим LimeSDR USB.Но, похоже, что SoapySDR не установлен, но его следует включить во время установки драйверов.

Итак, прежде всего, установите драйверы LimeSDR Hardware, используя следующие шаги в вики::

sudo add-apt-repository -y ppa:myriadrf/drivers
sudo apt-get update
sudo apt-get install limesuite liblimesuite-dev limesuite-udev limesuite-images
sudo apt-get install soapysdr-tools soapysdr-module-lms7

#soapysdr-tools use to be called just soapysdr on older packages
sudo apt-get install soapysdr soapysdr-module-lms7

Затем я протестировал следующие команды:

$ SoapySDRUtil --info
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Lib Version: v0.7.1-myriadrf1~ubuntu18.04
API Version: v0.7.1
ABI Version: v0.7
Install root: /usr
Search path:  /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.7
Search path:  /usr/local/lib/x86_64-linux-gnu/SoapySDR/modules0.7   (missing)
Search path:  /usr/local/lib/SoapySDR/modules0.7                    (missing)
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.7/libLMS7Support.so (19.01.0)   
Available factories... lime
Available converters...
-  CF32 -> [CF32, CS16, CS8, CU16, CU8]
-  CS16 -> [CF32, CS16, CS8, CU16, CU8]
-  CS32 -> [CS32]
-   CS8 -> [CF32, CS16, CS8, CU16, CU8]
-  CU16 -> [CF32, CS16, CS8]
-   CU8 -> [CF32, CS16, CS8]
-   F32 -> [F32, S16, S8, U16, U8]
-   S16 -> [F32, S16, S8, U16, U8]
-   S32 -> [S32]
-    S8 -> [F32, S16, S8, U16, U8]
-   U16 -> [F32, S16, S8]
-    U8 -> [F32, S16, S8]

, когда попытался запустить простой код:

  #include <SoapySDR/Device.h>
  #include <SoapySDR/Formats.h>
  #include <stdio.h> //printf
  #include <stdlib.h> //free
  #include <complex.h>

  int main(void)
  {
     size_t length;

     //enumerate devices
     SoapySDRKwargs *results = SoapySDRDevice_enumerate(NULL, &length);
     for (size_t i = 0; i < length; i++)
    {
       printf("Found device #%d: ", (int)i);
       for (size_t j = 0; j < results[i].size; j++)
       {
          printf("%s=%s, ", results[i].keys[j], results[i].vals[j]);
       }
       printf("\n");

    printf("Done\n");
    return EXIT_SUCCESS;
  }

Я скомпилировал следующим образом

  gcc -std=c99 API_example.c -lSoapySDR && ./a.out

Я получил следующую ошибку:

  API_example.c:1:10: fatal error: SoapySDR/Device.h: No such file or directory
  #include <SoapySDR/Device.h>
           ^~~~~~~~~~~~~~~~~~~

У кого-нибудь есть идеи, как это исправить?

1 Ответ

0 голосов
/ 08 мая 2019

У меня была такая же проблема всего несколько минут назад. Точно следуйте этому руководству, и оно должно работать. https://github.com/pothosware/SoapySDR/wiki/BuildGuide#ubuntu

Я предполагаю, что вы работаете с дистрибутивом Debian, но если нет, то руководство также поможет вам.

sudo apt-get установить cmake g ++

sudo apt-get install libpython-dev python-numpy swig

мерзавец клон https://github.com/pothosware/SoapySDR.git

cd SoapySDR

mkdir build

cd build

cmake ..

make -j4

sudo make install

sudo ldconfig #nene в системах Debian

SoapySDRUtil --info

Теперь вы должны быть в состоянии скомпилировать. У меня была та же проблема, что и у вас, даже когда я думал, что она установлена. Пройдите пробежку, и она должна вас настроить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...