GNURadioWin64 Binaries
Download Latest GR 3.7 Installer (GR 3.7.13.5)
Download Latest GR 3.8 Installer (GR 3.8.2.0 py3.9)
Create a folder in the directory /offline called fpgaimages. This directory name is arbitrary, and is only used for reference within the following steps. Place the zip file containing the FPGA images into this directory, and decompress. Next, create the images/ folder in your UHD installation prefix. Microsoft Windows: The Cygwin project; The MinGW and mingw-w64 projects. OpenPKG offers binaries for quite a number of platforms. The GFortran Wiki has links to GNU Fortran binaries for several platforms.
Download Latest GR 3.9 Beta Installer (GR 3.9.0.0)
Documentation,Known Issues / Change Log
Background:
GNURadiois a powerful SDR tool,however it’s biggest limitation has always been thatit is a challenge to install, even on Linux systems, because of the largenumber of shared dependencies.If youare a daily Windows user there is an even larger problem because most of thesedependencies are also very Linux focused and difficult to build/install onwindows for the average Windows users who is accustomed to simplydouble-clicking “setup.exe”.Using a LinuxVM is problematic with SDR because of the high demands that are placed on theUSB interface.This leaves the user withdual booting, limiting them to one environment or the other.So the goal of this project was to build anoptimized GNURadio binary using the most recentcompiler for all dependencies, and packaging the result in an easy-to-use .msi package.
Results:
Hereare the packagescurrently available.Every ounce of codeabove what is provided by Windows and the C runtime was built from source.MSVC 2015 (3.7) or 2019 (3.8) Community Edition was used to build64-bit binaries.Three versions are currently provided, one for all machines with debug symbols for the GNURadio code, the second performance-optimized for only for machines with AVX2 extensions (Haswell+). The second may be marginally faster, but this has not been validated at this time. And finally, a package where the entire stack was built in Debug mode for complete symbol coverage all the way down the stack to core Python. This should only every be needed in the most hairy bug-seeking quests.
For users that wish to experiment a bit more, there are two additional options available. The build scripts themselves can be downloaded on github here, and these scripts allow two choices, either a full build from scratch as was originally accomplished (a long and tedious chore) or for those that would like to focus on just GNURadio, the package of dependencies can be automatically downloaded as binaries and then GNURadio built against those.
WhatsIncluded:
GNURadio3.7.13.5 was built with all CMake options enabled includingGRC, with the exception of gr-comedi which is basedon Linux-only libraries.
Python2.7.10 was built from source using VS 2015 as are all required packages.The Intel compiler was used to build the Fortran modules in SciPy.See notes below.
Starting with 3.8.2.0 py3.9, Python 3.9 was built using VS 2019 and packages were installed using vcpkg and pip install.
EttusUHD drivers were built fromsource and are included.
Osmosdrwas also built from source,with support for most of the SDR drivers, including the RTL2382 / HackRF / BladeRF / AirSpy / SoapySDR / Funcube Dongle.Some of the less used drivers may be includedin future builds, please send feedback if there is aparticular osmosdr driver you’d like to be priority.
A wide variety of OOT modules are included (note: some of the below are not in the 3.8 build as they are not yet 3.8 compatible at time of packaging):
- gr-acars2
- gr-adsb
- gr-ais
- gr-air-modes
- gr-ax25
- gr-burst (incl. bitarray)
- gr-cdma
- gr-display (incl. matplotlib)
- gr-eventstream
- gr-inspector (incl. tensorflow)
- gr-lte
- gr-mapper
- gr-nacl
- gr-paint (incl. PIL)
- gr-radar
- gr-rds
- gr-specest
- OpenLTE
- gr-gsm
Compatibility:
The binaries shouldwork with: 64-bit Windows 7/8/10.
Has been tested on Windows 7and Windows 10, in both a “clean” configuration and a “busy” developerenvironment.Windows 8 is untested.
The scripts were designed for a Windows 10 / MS Server 2016 environment.
Prerequisities:
None to install via binary. To use the future build-from-source options, VS 2015, Wix, Git, Doxygen, CMake 3.13, and ActiveState Perl must be installed. An Intel Fortran compiler is optional.
How to Use:
See Documentation
Support:
This ismerely a re-package of source code built by others, and is provided free ofcharge under the GNU licenses of each individual source package, without anyguarantees or support.Please postquestions/issues to the Gnuradio mailing list here, and if possible, pleaseverify if the problem only occurs in this Windows installation of gnuradio or is shared with the standard Linux install sothe team there can budget their time accordingly.
Notes:
Initiallyit seemed like a good idea to try to build this using staticlibraries to the maximum extent, in order to avoid the “DLL Hell”problems that can occur with applications with many dependencies.However, in the end that may not be the bestapproach, and for many of the major libraries, I reverted to shared libraries.This is in part because of the way Pythoncode calls into C++ libraries, then other C++libraries also call into the same code.You end up with some extremely large DLLs with multiple copies of thesame underlying library (Qt being the big one I’mreferring to), and potentially adding bugs rather than eliminating them.Nevertheless, in the future it would beuseful to consolidate where it’s possible, particularly on Windows where mostof the dependencies are not used by any other applications.
ThePython build needs some further explanation.A decision I made was to compile every line of code with the same /newest compiler, the goal being to get the highest possible performance out ofmy hardware.However, this goes againstthe Python standard… Python is known to be particular about consistent compileruse, so has established a de facto standard for pre-compiled modules for eachversion of Python.Python 2.7 isintended to be built with MSVC 2008, not 2015.Because this project was consistent in using VS 2015, this is fineinternally to our use, but raises 2 potential problems: 1) A user might installa binary package from the web to extend this installs functionality.That binary will likely be built with VS 2008and could have errors.2) A user mightuse this version of Python as their “primary” python and run into unexpectedcompatibility issues.
Gnuradio Windows Binary Converter
Asa result, the Python included in this binary is intended only for use with thisGNURadio build, not general use, and users should usecare if installing additional binary packages to it.Python-only packages or user-built packagesshould be fine (if built w/ MSVC 2015). Python users may notice the installation is not a virtualenv, this is simply because the installation does not know if the user has a system python installed (unlike Linux, python is often not installed at all), and we certainly don't want this python loaded as the system version.
Thebuild process itself was not straightforward, several weeks of part-time work…certainly required far more libraries than I expected to get “everything” builtfrom source. There were significantly more issueswith the source code provided than I expected to have to fix.Those fixes will be documented here for user’sreference, and bug reports submitted where applicable.
Future:
Gnu Radio Windows Binaries
1-Create a windows compatible version of gr-newmod to allow easier creation of custom modules in windows