cjcliffe / CubicSDR

Cross-Platform Software-Defined Radio Application
http://www.cubicsdr.com
GNU General Public License v2.0
2.07k stars 256 forks source link

Notify user when SoapySDR modules are missing and provide help #190

Closed k9wkj closed 8 years ago

k9wkj commented 8 years ago

just built off master and it yelled about not haveing SoapySDR so i built the soap then Cubic built (lots of wx warnings) the device selection dialog comes up but wont let me use any of the listed devices could i have done a exclude of the soap somehow?

debian stretch x64

cjcliffe commented 8 years ago

@k9wkj you'll need to build and install a soapy module as well -- such as SoapyRTLSDR or SoapySDRPlay or SoapyHackRF, etc :) Binaries with modules included will eventually be available for all platforms once it's out of alpha.

The instructions for RTL-SDR and SDRPlay at least (the rest are similar) can now be found in the wiki:

https://github.com/cjcliffe/CubicSDR/wiki/Build-Linux https://github.com/cjcliffe/CubicSDR/wiki/Build-OSX https://github.com/cjcliffe/CubicSDR/wiki/Build-Windows

Cheers!

tomswartz07 commented 8 years ago

Thanks for the info @cjcliffe.

I was unaware of the SoapyRTLSDR build deps as well.

I'll see if I could add in a PKGBUILD to the Arch AUR repo for these packages.

Is there any thought to how we could streamline the dependency-ness of this project? Perhaps working with Pothos to see if we could pull their repos as a git submodule and integrate them into the CubicSDR build file to compile the other projects automatically?

Dantali0n commented 8 years ago

@tomswartz07 adding dependencies as sub-modules would make setting things up easier and since everyone working with the project uses the same version of dependencies then, it will make bug tracking easier. Since someone with different versions of the dependencies can get different bugs and errors.

tomswartz07 commented 8 years ago

I agree- that's what I was thinking in suggesting it. :smile:

Further, we could be sure that end users have all of the tools necessary during build time, rather than pulling from several different locations and/or possibly running things out of the proper order (e.g. building soapyrtlsdr before soapysdr)

guruofquality commented 8 years ago

I agree, there are a lot of support modules. There used to be less :-) There was a time when I hoped that the support modules themselves would be versioned with the associated hardware's driver package. Anyway, that might mean less soapy modules, but it wouldn't really solve the more general issue of building so many dependencies.

I had some related comments in this issue: https://github.com/cjcliffe/CubicSDR/issues/185 Eventually, we should have more formal linux packaging for many of these dependencies. Covering every distro is a challenge. So, for one reason or another, people are going to be stuck with source installs, but as consumers and not developers of the software -- we should make that easier.

Using cmake with build external project

Rather than submodules, which might get tedious for @cjcliffe to try to keep up to date and version within the repository -- we can make a build system based around cmake that downloads dependencies from git (possibly other places) and builds them with their order of dependencies in mind.

Take a look at PothosSDR, its cmake build amalgamation that uses external project to build my windows installers, its got a lot of stuff in it and stands as a good example. We could easily do something like this for CubicSDR: https://github.com/pothosware/PothosSDR

Source package based build options

These are systems that take package build descriptions, and download from various sources and build things. I actually have some open issues for some of these systems as well:

Some of these build systems are distributed. So I can host a few repos up on the pothosware github just for the soapy and pothos related projects -- which can be pulled in for cubic as part of the build instructions. But I don't mind expanding said repos to include way more project builds.

However I do want to be able to personally manage the soapy build packages at some level so I can get the packages very complete, dependencies right, and update the git tags and SHA sums when I do releases. Hopefully to make upstreaming the build packages easier and to give users less build problems.

tomswartz07 commented 8 years ago

@guruofquality Great points.

Without further derailing from @k9wkj's original bug, I suggest we further discuss the packaging options in the related issue: #185

@k9wkj: have you tried installing the SoapyRTLSDR module in addition to the SoapySDR module?

vk2byf commented 8 years ago

Hi cjcliffe First of all thank you for sharing your knowledge with us. My name is Bob VK2BYF and I am a beginner with Linux and this site. I hope I'm not posting in the wrong place, sorry. I have followed your instructions for Building CubicSDR for Linux. I'm using Linux Mint 17.2 Mate. Everything went well until I got to the part in Build CubicSDR where I run "make" The error I get is No target specified and no makefile found STOP it refers to a CMakeOutput.log

It's fairly large file to post here but it basically says sourcefile CMakeCCompileId.c succee$ The output was 0

I carried on to the part called Support Modules SoapyRTLSDR SoapyRTLSDR seems to already exist and when run produces Hardware=null and driver=null.

SoapySDRPlay. fails when I get to cmake .. --DCMAKE_BUILD_TYPE=Release. Cmake error SDRPlay development files not found.

I have tried to faultfind this but no success due to my very limited Linux knowledge. I suspect I may have put something in the wrong directory but I did follow instructions carefully by cutting and pasting commands into the Linux terminal window.

Thanks for taking the time to read this and possibly point me in the right direction.

Regards Bob

cjcliffe commented 8 years ago

@vk2byf Hi Bob, it sounds like you just need a few more dependencies and are possibly missing a CMake step.

Can you attempt to build CubicSDR again and post here a list of your commands and the output from each and I should be able to spot the issue easily.

Cheers!

vk2byf commented 8 years ago

Hi Charles, looks like missing dependencies as you said.

Below is what I copied from my terminal as I entered the commands.

starting from my home directory,

bob@bob-Latitude-E6400 ~ $ git clone https://github.com/cjcliffe/CubicSDR.git

Cloning into 'CubicSDR'...

remote: Counting objects: 6433, done.

remote: Compressing objects: 100% (119/119), done.

remote: Total 6433 (delta 55), reused 0 (delta 0), pack-reused 6311

Receiving objects: 100% (6433/6433), 52.34 MiB | 465.00 KiB/s, done.

Resolving deltas: 100% (4844/4844), done.

Checking connectivity... done.

bob@bob-Latitude-E6400 ~ $ cd CubicSDR

bob@bob-Latitude-E6400 ~/CubicSDR $

bob@bob-Latitude-E6400 ~/CubicSDR $ mkdir build

bob@bob-Latitude-E6400 ~/CubicSDR $ cd build

bob@bob-Latitude-E6400 ~/CubicSDR/build $ cmake ../

-- The C compiler identification is GNU 4.8.4

-- The CXX compiler identification is GNU 4.8.4

-- Check for working C compiler: /usr/bin/cc

-- Check for working C compiler: /usr/bin/cc -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Check for working CXX compiler: /usr/bin/c++

-- Check for working CXX compiler: /usr/bin/c++ -- works

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

32 bit compiler detected

-- Looking for XOpenDisplay in /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so

-- Looking for XOpenDisplay in /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so - found

-- Looking for gethostbyname

-- Looking for gethostbyname - found

-- Looking for connect

-- Looking for connect - found

-- Looking for remove

-- Looking for remove - found

-- Looking for shmat

-- Looking for shmat - found

-- Found X11: /usr/lib/i386-linux-gnu/libX11.so

-- Found OpenGL: /usr/lib/i386-linux-gnu/libGL.so

CMake Error at cmake/Modules/FindPackageHandleStandardArgs.cmake:138 (message):

Could NOT find FFTW (missing: FFTW_LIBRARIES FFTW_INCLUDES)

Call Stack (most recent call first):

cmake/Modules/FindPackageHandleStandardArgs.cmake:374 (_FPHSA_FAILURE_MESSAGE)

cmake/Modules/FindFFTW.cmake:20 (find_package_handle_standard_args)

CMakeLists.txt:95 (find_package)

-- Configuring incomplete, errors occurred!

See also "/home/bob/CubicSDR/build/CMakeFiles/CMakeOutput.log".

bob@bob-Latitude-E6400 ~/CubicSDR/build

bob@bob-Latitude-E6400 ~/CubicSDR/build $ make

make: *\ No targets specified and no makefile found. Stop.

bob@bob-Latitude-E6400 ~/CubicSDR/build $

This build I started from my home directory but my previous attempt I would have started from whatever directory I ended up in following the previous steps, probably like Build and install SoapySDR and Build and install liquid-dsp which went without problem. I would have ended at ~/soapySDR/build

On 30 November 2015 at 03:00, Charles J. Cliffe notifications@github.com wrote:

@vk2byf https://github.com/vk2byf Hi Bob, it sounds like you just need a few more dependencies and are possibly missing a CMake step.

Can you attempt to build CubicSDR again and post here a list of your commands and the output from each and I should be able to spot the issue easily.

Cheers!

— Reply to this email directly or view it on GitHub https://github.com/cjcliffe/CubicSDR/issues/190#issuecomment-160427445.

Lower your expectations and avoid disappointment. Bob

vk2byf commented 8 years ago

Sorry Charles I think my email was sent before I was finished editing. from what I can see cmake failed because missing: FFTW_LIBRARIES FFTW_INCLUDES and then some more which may as well be Chinese for me as I'm a raw beginner way over my head but willing to learn.

Chanks for you help Charles, regards Bob

On 30 November 2015 at 14:49, Bob Fk vk2byf@gmail.com wrote:

Hi Charles, looks like missing dependencies as you said.

Below is what I copied from my terminal as I entered the commands.

starting from my home directory,

bob@bob-Latitude-E6400 ~ $ git clone https://github.com/cjcliffe/CubicSDR.git

Cloning into 'CubicSDR'...

remote: Counting objects: 6433, done.

remote: Compressing objects: 100% (119/119), done.

remote: Total 6433 (delta 55), reused 0 (delta 0), pack-reused 6311

Receiving objects: 100% (6433/6433), 52.34 MiB | 465.00 KiB/s, done.

Resolving deltas: 100% (4844/4844), done.

Checking connectivity... done.

bob@bob-Latitude-E6400 ~ $ cd CubicSDR

bob@bob-Latitude-E6400 ~/CubicSDR $

bob@bob-Latitude-E6400 ~/CubicSDR $ mkdir build

bob@bob-Latitude-E6400 ~/CubicSDR $ cd build

bob@bob-Latitude-E6400 ~/CubicSDR/build $ cmake ../

-- The C compiler identification is GNU 4.8.4

-- The CXX compiler identification is GNU 4.8.4

-- Check for working C compiler: /usr/bin/cc

-- Check for working C compiler: /usr/bin/cc -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Check for working CXX compiler: /usr/bin/c++

-- Check for working CXX compiler: /usr/bin/c++ -- works

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

32 bit compiler detected

-- Looking for XOpenDisplay in /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so

-- Looking for XOpenDisplay in /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so - found

-- Looking for gethostbyname

-- Looking for gethostbyname - found

-- Looking for connect

-- Looking for connect - found

-- Looking for remove

-- Looking for remove - found

-- Looking for shmat

-- Looking for shmat - found

-- Found X11: /usr/lib/i386-linux-gnu/libX11.so

-- Found OpenGL: /usr/lib/i386-linux-gnu/libGL.so

CMake Error at cmake/Modules/FindPackageHandleStandardArgs.cmake:138 (message):

Could NOT find FFTW (missing: FFTW_LIBRARIES FFTW_INCLUDES)

Call Stack (most recent call first):

cmake/Modules/FindPackageHandleStandardArgs.cmake:374 (_FPHSA_FAILURE_MESSAGE)

cmake/Modules/FindFFTW.cmake:20 (find_package_handle_standard_args)

CMakeLists.txt:95 (find_package)

-- Configuring incomplete, errors occurred!

See also "/home/bob/CubicSDR/build/CMakeFiles/CMakeOutput.log".

bob@bob-Latitude-E6400 ~/CubicSDR/build

bob@bob-Latitude-E6400 ~/CubicSDR/build $ make

make: *\ No targets specified and no makefile found. Stop.

bob@bob-Latitude-E6400 ~/CubicSDR/build $

This build I started from my home directory but my previous attempt I would have started from whatever directory I ended up in following the previous steps, probably like Build and install SoapySDR and Build and install liquid-dsp which went without problem. I would have ended at ~/soapySDR/build

On 30 November 2015 at 03:00, Charles J. Cliffe notifications@github.com wrote:

@vk2byf https://github.com/vk2byf Hi Bob, it sounds like you just need a few more dependencies and are possibly missing a CMake step.

Can you attempt to build CubicSDR again and post here a list of your commands and the output from each and I should be able to spot the issue easily.

Cheers!

— Reply to this email directly or view it on GitHub https://github.com/cjcliffe/CubicSDR/issues/190#issuecomment-160427445.

Lower your expectations and avoid disappointment. Bob

Lower your expectations and avoid disappointment. Bob

cjcliffe commented 8 years ago

@vk2byf thanks -- I just noticed that the FFTW and wxWidgets dependency instructions had been misplaced for linux, I've added instructions back to the Wiki for Debian as follows:

sudo apt-get install libfftw3-dev libwxgtk3.0-dev

Try running that and let me know if it helps.

vk2byf commented 8 years ago

Hi Charles Getting closer.

I installed as per your reply above

sudo apt-get install libfftw3-dev sudo apt-get install libwxgtk3.0-dev

The updated instructions on https://github.com/cjcliffe/CubicSDR/wiki/Build-Linux

include another package under Base Dependencies: (debian)

sudo apt-get install libfftw3-dev libwxgtk3.0-dev libwxgtk3.0-dbg

The error for the libwxgtk3.0-dbg

On 1 December 2015 at 09:38, Charles J. Cliffe notifications@github.com wrote:

@vk2byf https://github.com/vk2byf thanks -- I just noticed that the FFTW and wxWidgets dependency instructions had been misplaced for linux, I've added instructions back to the Wiki for Debian as follows:

sudo apt-get install libfftw3-dev libwxgtk3.0-dev

Try running that and let me know if it helps.

— Reply to this email directly or view it on GitHub https://github.com/cjcliffe/CubicSDR/issues/190#issuecomment-160784239.

Lower your expectations and avoid disappointment. Bob

vk2byf commented 8 years ago

Hi Charles Getting closer.

I installed as per your reply above

sudo apt-get install libfftw3-dev sudo apt-get install libwxgtk3.0-dev

The updated instructions on https://github.com/cjcliffe/CubicSDR/wiki/Build-Linux

include another package under Base Dependencies: (debian)

sudo apt-get install libfftw3-dev libwxgtk3.0-dev libwxgtk3.0-dbg

The error when trying to install libwxgtk3.0-dbg was could not find

Now I get as far as cd x64. the "make" took quite a while to complete.

There is no x64 directory but I found a x86 directory so I went there instead but it failed on ./CubicSDR

I'm running Linux Mint installed as a 32 bit system.

git clone https://github.com/cjcliffe/CubicSDR.git

cd CubicSDR ok mkdir build ok cd build ok cmake ../ ok make ok cd x64 bash: cd: x64 No such file or directory I'm on ~/CubicSDR/build $ ./CubicSDR

Thanks again for your efforts, Regards Bob

On 1 December 2015 at 12:46, Bob Fk vk2byf@gmail.com wrote:

Hi Charles Getting closer.

I installed as per your reply above

sudo apt-get install libfftw3-dev sudo apt-get install libwxgtk3.0-dev

The updated instructions on https://github.com/cjcliffe/CubicSDR/wiki/Build-Linux

include another package under Base Dependencies: (debian)

sudo apt-get install libfftw3-dev libwxgtk3.0-dev libwxgtk3.0-dbg

The error for the libwxgtk3.0-dbg

On 1 December 2015 at 09:38, Charles J. Cliffe notifications@github.com wrote:

@vk2byf https://github.com/vk2byf thanks -- I just noticed that the FFTW and wxWidgets dependency instructions had been misplaced for linux, I've added instructions back to the Wiki for Debian as follows:

sudo apt-get install libfftw3-dev libwxgtk3.0-dev

Try running that and let me know if it helps.

— Reply to this email directly or view it on GitHub https://github.com/cjcliffe/CubicSDR/issues/190#issuecomment-160784239.

Lower your expectations and avoid disappointment. Bob

Lower your expectations and avoid disappointment. Bob

cjcliffe commented 8 years ago

@vk2byf that actually seems about right; 32-bit systems will build to x86/ sub-folder (I'll have to make a note of that).

Is there a CubicSDR binary in x86/? Can you run it and if not what is the output?

You might also try for CubicSDR:

sudo make install

And then you can just run 'CubicSDR' from anywhere (and it should appear in apps list).

Removing it can be done with:

sudo make uninstall
cjcliffe commented 8 years ago

Instructions have been updated and made a bit more clear with relevant info from this issue.

vk2byf commented 8 years ago

Hi Charles

In ~/CubicSDR/build/x86/ there are only files like CubicSDR.ico, some vera_sans_mono18.png and similar, also some vera_sans_mono18.fnt files.

Nothing to run

CubicSDR won't run from anywhere, always returns CubicSDR command not found.

ran sudo make install from ~/CubicSDR/build it did 1% then fatal error; pulse/error.h: No such file or directory #include <pulse/error.h> compilation terminated.

Thanks again, regards Bob

On 01/12/15 14:30, Charles J. Cliffe wrote:

@vk2byf https://github.com/vk2byf that actually seems about right; 32-bit systems will build to x86/ sub-folder (I'll have to make a note of that).

Is there a CubicSDR binary in x86/? Can you run it and if not what is the output?

You might also try for CubicSDR:

|sudo make install |

And then you can just run 'CubicSDR' from anywhere.

Removing it can be done with:

|sudo make uninstall |

— Reply to this email directly or view it on GitHub https://github.com/cjcliffe/CubicSDR/issues/190#issuecomment-160840023.

cjcliffe commented 8 years ago

@vk2byf whoops -- almost there; looks like another dependency I forgot this time :)

I've added to wiki already, but run:

sudo apt-get install libpulse-dev

Which will install the pulse audio dependency.

cjcliffe commented 8 years ago

CubicSDR will now notify when SoapySDR support modules are missing :)

image