-
Notifications
You must be signed in to change notification settings - Fork 463
Building libbladeRF for Windows
Be advised that building libbladeRF for Windows is a somewhat difficult process with a lot of manual steps. Unless you specifically need to modify libbladeRF itself, it is strongly recommended to use the pre-built, signed installer. See Getting Started: Windows for information on installing this. If you have already installed it, you can proceed to Getting Started: Verifying Basic Device Operation.
- Download and install msysgit. If you plan to submit patches to the bladeRF project, please select the Checkout as-is, commit Unix-style line endings option in the installer.
- Download and install tortoisegit.
- Download Visual Studio Community 2017 for Windows Desktop from Microsoft, which can be found at https://www.visualstudio.com/downloads/
- Follow the installation instructions, including any post-install updates.
Tip: You can download time-limited virtual machine images from Microsoft, which have the latest Windows 10 and Visual Studio builds, from https://developer.microsoft.com/en-us/windows/downloads/virtual-machines
- Download the latest Windows binary release of libusb, which also include development headers. As of this writing, version 1.0.21 is the latest
- Note: you may need to download and install 7-zip from 7-zip.org to open this file.
- Extract the contents to a location of your choice. Make note of this location so that you can later provide it to CMake. The default configuration assumes that files will be in C:/Program Files (x86)/libusb-1.0.21 If you wish to change the directory, use the -DLIBUSB_PATH= option for CMake.
- Get the device driver installer (zadig): http://zadig.akeo.ie (older versions: http://sourceforge.net/projects/libwdi/files/zadig/)
- Open Zadig.
- If the bladeRF is not already listed in the dropdown box, go to Device->Create New Device, type a device name (i.e., "bladeRF") in the text box, and specify the VID/PID (2cf0/5246) in the USB ID fields.
- In the driver spinbox, select libusbK.
- Click "Install Driver"
- Open Device Manager. A new device called bladeRF should show up. If there is a yellow bang next to it in device manager:
- Right-click on the bladeRF entry and select "Update Driver Software...".
- Choose "Browse my computer for driver software"
- "Let me pick from a list of device drivers on my computer".
- Click "Have Disk..." and point it to the location that Zadig installed the driver to (C:\usb_driver).
- Select "bladeRF" and continue through the wizard.
- Right-click on the bladeRF entry and select "Update Driver Software...".
- Device Manager should now show bladeRF under libusbK USB Devices.
The pthreads library is required to build libbladeRF and its utilities. A few steps are required to install this pthreads implementation. See the pthreads-win32 website for more information.
- Download the latest release. Currently this is version 2.9.1.
- Extract the contents of the release zip.
- Copy the contents of the
Pre-built.2
directory toC:\Program Files (x86)\pthreads-win32
If you are using a newer version of Windows / Visual Studio and are getting error C0211: 'timespec': 'struct' type redefinition
when trying to build bladeRF, you will need to rebuild pthreads-win32. The below process seems to work with pthreads-win32 2.9.1.
- Get full source tree from the pthreads-win32 website, and unpack someplace convenient
- In Visual Studio, open
pthreads-w32-2-9-1-release\pthreads.2\pthread.dsw
(if prompted, a one-way upgrade is OK) - Right-click the solution, select "Retarget solution", hit OK.
- Change "Solution Configurations" dropdown to "Release" ("Debug" doesn't work, but that's OK)
- Edit pthread.h to add
#define HAVE_STRUCT_TIMESPEC
and#define PTW32_ARCHx64
near the top, just below the include guard - Build the solution
- If you've already tried building bladeRF, CMake will need attention:
- File -> Delete Cache
- Redo the "Configure" dance as before
- Point
LIBPTHREADSWIN32_PATH
to thepthreads-w32-2-9-1-release\pthreads.2
directory you were just working in
Download and install CMake for Windows: http://www.cmake.org/cmake/resources/software.html
- Right click on the Desktop and click "Git clone..."
- Paste https://github.com/Nuand/bladeRF.git into the URL field
- Select your preferred directory to clone the repository to. TortoiseGit requires this to be an empty folder.
- Click OK and let it run. The bladeRF code is now on your computer.
- Run the CMake GUI utility.
- Under "Where is the source code", browse to [preferred_directory]/bladeRF/host.
- Create a new directory, [preferred_directory]/bladeRF/host/build.
- Under "Where to build the binaries", browse to the newly created [preferred_directory]/bladeRF/host/build. Click the Configure button.
- Select your appropriate version of Visual Studio. For Visual Studio 2017, select "Visual Studio 15" or "Visual Studio 15 Win64". Select "Use default native compilers", then click "Finish".
- If the configuration fails, double check the values for LIBUSB_PATH and LIBPTHREADSWIN32_PATH, and re-run the configuration.
- Click on the Generate button.
- A Visual Studio solution should now be available, host/build/bladeRF.sln
- CMake has created a bladeRF.sln file. Open Visual Studio, and open this file. (You can also click "Open Project" in CMake)
- A number of projects should show up in the Solution Explorer, including:
- bladeRF-cli
- bladeRF-fsk
- libbladerf_shared
- Select Debug or Release build from the drop down menu at the top
- Run
Build -> Build Solution
- After the build completes, you should see an host/build/output directory in the build directory, containing either a Debug or Release subdirectory. These directories will contain generated executables, libraries, and will contain copies of the required DLLs.
Open up a cmd.exe window and navigate to the output directory associated with your build:
C:\Users\jon\Documents\projects\bladeRF\host\build\host\output\Debug>dir 10/19/2013 05:36 PM 122,880 bladeRF-cli.exe 10/19/2013 05:36 PM 139,776 bladeRF.dll ... Snipped out some other items ... 10/19/2013 05:35 PM 92,160 libusb-1.0.dll 10/19/2013 05:35 PM 55,808 pthreadVC2.dll
Note the presence of the libusb-1.0.dll and pthreadVC2.dll in this directory. These are placed here so that the bladeRF-cli and other tests may be run from this directory.
From here, you can continue on with the Getting Started: Verifying Basic Device Operation wiki page. If you encounter any errors or warnings, please see the Troubleshooting guide.