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 _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio