Loading [MathJax]/extensions/tex2jax.js
USRP Hardware Driver and USRP Manual  Version: 4.8.0.0
UHD and USRP Manual
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Binary Installation

Installation on Windows

We provide UHD software installers for 64-bit Windows users who do not wish to install UHD from source.

LibUSBx

All Windows installers are built with LibUSBx to enable USB3 support. LibUSBx binaries are included in Ettus Research supplied installers starting from UHD version 4.8. If desired, the installed LibUSB DLL (at <UHD Install Dir>\bin) may be replaced with a custom, compatible version. Refer to Manual Install of libUSB (optional)

Installer Packages

Windows installers are provided for a select set of hardware architectures and compiler version combinations. These are encoded in the installer file names. For example a installer ending with the name .._Win64_VS2019.exe indicates UHD was build for the 64-bit Windows platform using the Visual Studio 2019 compiler suite. Please find the latest installer here: http://files.ettus.com/binaries/uhd/latest_release

Older installers of all previous releases can be downloaded from: http://files.ettus.com/binaries/uhd/ (browse to the desired release).

After running the Installer for the desired MSVC Compiler consider the following post-install tasks.

Post-Install Tasks

Install the MSVC Redistributable Package

  • Download MSVC Redistributable Package for the hardware architecture encoded in the UHD installer file name and run the downloaded installer package.

Using a USB-based device?

  • Starting from UHD version 4.8 the UHD Installer package installs a copy of the Windows UHD USB Driver within the UHD installation folder (by default "C:\\Program Files\\UHD"). Alternatively, these may be separately downloaded from the UHD wiki page: erllc_uhd_winusb_driver.zip.
  • These driver installer packages must be installed once per host computer to use a USB-based product with UHD software. Perform the following steps for each USB device type:
    • Open the device manager and plug in the USRP device. You will see an unrecognized USB device in the device manager.
    • Right click on the unrecognized USB device and select update/install driver software (may vary for your OS).
    • In the driver installation wizard, select "browse for driver", browse to <UHD Install Dir>\share\uhd\usbdriver folder, and select the .inf file for your USRP device type.
    • Continue through the installation wizard until the driver is installed.

Python Packages

With UHD version 4.8 and above, the UHD Python APIs for Windows are made available as separate binary distribution package (wheel) on pypi.org. The wheel package is available for the same hardware architecture and compiler version as the UHD installer package supporting multiple Python versions. For UHD 4.8, these are Python 3.10 and 3.12.

First, ensure that the UHD Installer Package and an appropriate Python version are installed on your system, for example:

  • <UHD Install Dir> typical C:\Program Files\UHD
  • <Python Install Dir> typical %LocalAppData%\Programs\Python\Python3xx
  • <python> executable would then be located under <Python Install Dir> e.g. %LocalAppData%\Programs\Python\Python3xx\python.exe

You need to make sure that the version of the UHD Python package (wheel) you want to install matches the version of the UHD Installer Package you have installed on your system. After that, the UHD Python package can be installed using the pip install command. This will automatically download the wheel from the Python Package Index pypi.org and install it in the Python environment you are using. To perform the mentioned steps, use the commands below:

<UHD Install Dir>\bin\uhd_config_info.exe --version #find the version of UHD
<python> -m pip install uhd==<version_from_config_info> #install matching wheel

To verify that the UHD Python package has been successfully installed, run the python executable of your environment and import the UHD module:

<python>
>>> import uhd

If the 'import uhd' command executes without any error, you can continue Using the Python API.

Troubleshooting

In case of errors or detected version mismatches, consider version alignment of UHD Installer Package and UHD Python Package (wheel). Subsequent commands can be used to identify the version of the UHD Python Package and to update or install a specific version. Please make sure that you have opened a new command shell after updating the UHD Installer Package to ensure that the new version of the UHD binaries is used.
Note: For more information on how the Windows binaries (DLLs) are searched during initialization of the UHD Python module, please refer to Python 3.8 Note in section Installing on Windows.

To get the UHD version of the currently installed wheel, use:

<python> -m pip show uhd

To get a list of available UHD Python Package versions on pypi.org, use the following command:

<python> -m pip index versions uhd

To upgrade to the latest version, use:

<python> -m pip install --upgrade uhd

To install a specific version, use:

<python> -m pip install uhd==<version>

To identify the Python version you have installed, use the following command:

<python> --version

To identify supported Python versions for the UHD Python Package, you can visit the UHD project page: pypi.org/project/uhd

To update to the latest or a specific UHD Installer Package, please check documentation under Installer Packages.

Note: UHD Python Packages (wheels) that do not match the UHD binaries from the Installer Package might not work correctly at all. Those configurations are not tested and not supported.

Manual Install of libUSB (optional)

If you wish to use an alternative version of LibUSB to the one provided with the installer, you can download the latest version of libUSB from the LibUSB GitHub releases page. Each release includes binaries built for various platforms and compiler versions. It’s crucial that the LibUSB binary corresponds to the platform and compiler version used for the UHD binaries. This detail is indicated in the name of the installer executable; for example, uhd_4.7.0.0-release_Win64_VS2017.exe indicates it was built for the 64-bit Windows platform using the Visual Studio 2017 compiler suite. Copy all files from the path \VS20XX\MSYY\dll within the archive to the bin folder of the UHD installation location (by default "C:\Program Files\UHD\bin"). VS20XX is the Visual Studio version that you find in the name of the UHD installer. YY is the bitness of your Windows version (32 or 64).

To validate that LibUSB has been successfully installed, run uhd_find_devices from the bin folder of your UHD installation.

If the program fails to locate the LibUSB binaries an error message is displayed. This can happen for the following reasons:

  1. You’ve copied an incorrect version.
  2. The binaries are not in a searchable location for the UHD binaries.
  3. A conflicting LibUSB binary installed on your system which is not compatible is detected first.

Building from source

You can build UHD software from source. There are two choices of compilers for Windows users:

  • Microsoft Visual Studio Express.
    • Users can develop with the free version.
  • MinGW
    • An alternative to using a Microsoft compiler.

Refer to Build Instructions (Windows)

Installation on Linux

Using your package manager

Most distributions provide UHD as part of their package management. On Debian and Ubuntu systems, this will install the base UHD library, all headers and build-specific files, as well as utilities:

sudo apt-get install libuhd-dev uhd-host

On Fedora systems, an equivalent command would be:

sudo yum install uhd uhd-devel

Live CD/DVD/USBs are not supported.

On other distributions, please refer to your package manager's documentation.

Using binaries provided by Ettus Research

We provide UHD binary installers for Ubuntu and Fedora users for every stable release. Typically, we will provide binaries for latest two LTS versions of Ubuntu, and for the latest two versions of Fedora. Live CD/DVD/USBs are not supported.

The latest versions of these binaries can be downloaded from here: http://files.ettus.com/binaries/uhd_stable/latest_release/

Ubuntu

Copy and paste these commands into your terminal. This will install UHD software as well as allow you to receive package updates.

sudo add-apt-repository ppa:ettusresearch/uhd
sudo apt-get update
sudo apt-get install libuhd-dev uhd-host

Fedora

Note: You might want to run the following command if you're updating repositories:

yum clean metadata all

Create the file /etc/yum.repos.d/ettus.repo. Copy this into the file:

[ettus-uhd-stable-repo]
name=Ettus Research - UHD Stable $releasever-$basearchthon serial timeout
baseurl=http://files.ettus.com/binaries/uhd/repo/uhd/fedora/$releasever/$basearch
gpgcheck=0

Run the following commands:

sudo yum --enablerepo='ettus-uhd-stable-repo' install uhd

Using PyBOMBS

This is an automated way of installing UHD from source. See also Using PyBOMBS.

Installation on Mac OS X

Via MacPorts

We recommend using MacPorts and actively support UHD development on OS X via this method. Using MacPorts, the correct hardware device images are automatically installed for you, and there are no post install tasks. With a single command, you can be up and running in short order.

If you do not already have MacPorts installed, you will need to install it first. Make sure to follow the MacPorts shell environment changes needed such that MacPorts installed executables are found before all others. These are the only changes to the shell environment needed to execute any MacPorts-installed executable. Setting any DYLD environment variable (e.g., DYLD_LIBRARY_PATH) for general use is highly discouraged, because doing so, in our experience, leads to problems down the road that are very difficult to diagnose. OSX provides robust means for correcting DYLD-based issues even after dependencies are installed.

Once MacPorts is installed, UHD and all of its dependencies can be installed by executing

sudo port install uhd

The latest developments in UHD can be installed via

sudo port install uhd-devel

Please note that the uhd-devel port, while tested for basic compilation and functionality, is not a formal release and hence should be considered beta software which might contain bugs or major issues.