discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] Windows audio-in and compilation issues


From: Ivan Chua
Subject: [Discuss-gnuradio] Windows audio-in and compilation issues
Date: Tue, 7 Oct 2014 03:33:43 +0000 (UTC)

Dear list,

I'm having lots of problems getting Gnuradio to work in Windows to process 
signals from a soundcard audio source. Please help!  This is what I've tried so 
far:

1. Pre-built binaries ==> Audio source not working.

I followed the instructions in the WindowsInstall [1] wiki and Bhaskar11's 
guide. The installation process was smooth, except that some of the recommended 
versions were no longer available, so I opted to pick the following 
replacements from the UCI repository so that I could get consistent compiler 
and matching library versions:
numpy‑MKL‑1.8.2.win32‑py2.7.exe
PyQt4‑4.10.4‑gpl‑Py2.7‑Qt4.8.6‑x32.exe
PyQwt‑5.2.1‑py2.7‑x32‑pyqt4.10.4‑numpy1.8.1.exe
PyOpenGL‑3.1.0.win32‑py2.7.exe

I tried both the recommended stable 3.6.4.1 and the latest-stable 3.7.2.2 
gnuradio binaries built by Ettus. GRC itself seems to work (without WX widgets 
in 3.7). However, I was unable to get the audio source working in both. Then I 
found bug #521 [3], which seems to indicate that the gr-audio windows source 
block does not work at this time.

Is there any workaround to get streaming audio sources to work?  Eg, an 
external virtual audio cable that writes to a wav file or memory buffer that 
gnuradio can do streaming reads from?

2. Compile in Cygwin ==> compilation problems

According to the WindowsTips wiki [4], the only working audio sources for 
Windows are OSS audio and !PortAudio.  OSS audio is only available in cygwin, 
while PortAudio is 'easy' in cygwin, so I tried this approach by following the 
CygwinInstallMain wiki [5]. This was a clean cygwin installation with the 
latest packages as of last week:

cmake 2.8.9-2
cppunit 1.12.1-2 (1.12.0-1 is not available, and hopefully the 
incompatabilities with 1.12.1 are fixed)
gcc-g++ 4.8.3-3 (3.4.4 is not available, and hopefully the incompatabilities 
with 4.3.4 are fixed)
python 2.7.8-1 (2.6 is not available)
libusb1.0 1.0.19-1 (libusb-win32 is not available)

The wiki advised to compile three libraries manually.

a. Boost => updates to instructions

The WindowsTips wiki [6] says that boost 1.35 or later is required, and must be 
compiled as the cygwin binaries are too old or used mismatching compilers. This 
may not longer be necessary: cygwin packages currently list boost 1.50 and 
1.53, and libboost-devel is at 1.55. I didn't seem to experience any subsequent 
boost-related compilation issues using the pre-built binaries, but decided to 
try a custom build anyway just in case.

[6] recommended to build with 1.45, but boost threads in this version doesn't 
work after gcc 4.7 [7]. So I went with the latest boost 1.56. This built fine, 
but I included additional libraries based on other gnuradio+boost instructions, 
ie.
./bootstrap.sh 
--with-libraries=thread,date_time,program_options,filesystem,system,test

b. wxPython => compilation issues

I followed the instructions from the WxPythonCygwin wiki [8] and downloaded the 
3.0.1.1 src. Not sure if the recommended patches are still required, as I got 
lots of warnings about redefining wxUSE_DATEPICKCTRL_GENERIC. I ran into the 
conflict between winsock.h and select.h's select. The suggestion to rename 
select.h didn't help, and I got other errors instead. I found a tip on another 
website about editing the winsock.h definition to match select.h's definition, 
and found that the winsock.h definition is actually wrapped within an ifndef 
like so:

#ifndef __INSIDE_CYGWIN__ 
  WINSOCK_API_LINKAGE int WSAAPI select(int nfds,fd_set *readfds,fd_set 
*writefds,fd_set *exceptfds,struct PTIMEVAL *timeout); 
#endif /* !__INSIDE_CYGWIN__ */ 

Should there simply be a #define __INSIDE_CYGWIN__ or -D__INSIDE_CYGWIN__ 
somewhere?  Where should I put it?

c. PortAudio => compiles ok

While OSS audio should be sufficient for my needs, I decided to build PortAudio 
anyway. pa_stable_v19_20140130.tgz compiled and installed cleanly.

d. Gnuradio => compilation issues

I've fulfilled all the prerequisites except wxPython which should mean I just 
lose the wx widgets. Howver, when attempting the minimal GNU Radio build from 
[5], I encountered an error with the first step:

$ make 
[  0%] Generating volk_machine_avx_32_mmx.c 
/bin/sh: line 1:  4756 Aborted                 (core dumped) /usr/bin/python2 
-B /usr/src/gnuradio-3.7.2/volk/gen/volk_tmpl_utils.py --input 
/usr/src/gnuradio-3.7.2/volk/tmpl/volk_machine_xxx.tmpl.c --output 
/usr/src/gnuradio-3.7.2/build/volk/lib/volk_machine_avx_32_mmx.c avx_32_mmx 
volk/lib/CMakeFiles/volk.dir/build.make:1651: recipe for target 
'volk/lib/volk_machine_avx_32_mmx.c' failed 
make[2]: *** [volk/lib/volk_machine_avx_32_mmx.c] Error 134 
CMakeFiles/Makefile2:167: recipe for target 'volk/lib/CMakeFiles/volk.dir/all' 
failed 
make[1]: *** [volk/lib/CMakeFiles/volk.dir/all] Error 2 
Makefile:146: recipe for target 'all' failed 
make: *** [all] Error 2 

For reference, the full cmake and make logs are at http://pastebin.com/rbvV8vJJ

Please help, I'm stuck :-/

Thanks!
IC

[1] http://gnuradio.org/redmine/projects/gnuradio/wiki/WindowsInstall
[2] https://lists.gnu.org/archive/html/discuss-gnuradio/2013-12/msg00497.html
[3] http://gnuradio.org/redmine/issues/521
[4] http://gnuradio.org/redmine/projects/gnuradio/wiki/WindowsTips/3
[5] http://gnuradio.org/redmine/projects/gnuradio/wiki/CygwinInstallMain
[6] http://gnuradio.org/redmine/projects/gnuradio/wiki/WindowsTips
[7] https://svn.boost.org/trac/boost/ticket/6165
[8] http://gnuradio.org/redmine/projects/gnuradio/wiki/WxPythonCygwin


reply via email to

[Prev in Thread] Current Thread [Next in Thread]