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

Bug#644789: ITP: UHD - Universal Hardware Driver for Universal Software Radio Peripherals



Package: wnpp
Severity: wishlist
Owner: "A. Maitland Bottoms" <bottoms@debian.org>

* Package name    : uhd-host
  Version         : 3.2.4
  Upstream Author : Ettus Research LLC
* URL             :
  http://code.ettus.com/redmine/ettus/projects/uhd/wiki
* License         : GPLv3
  Programming Lang: C, Python
  Description     : UHD - Universal Hardware Driver for Universal Software Radio Peripherals

For those who remember the usrper application and libusrp* packages,
those days are behind us. The UHD library handles both the USB
attached USRP1 and ethernet connected USRP2 devices, and newer
devices. It replaces the old libusrp1* and libusrp2* stuff.

The good news is that the new firmware for the network attached
devices actually does UDP/IP - rather than the raw ethernet protocol
used by the libusrp2* drivers. Part of what makes that possible is
that the FPGA uses a DFSG free BSD style license for an embedded ZPU
processor. So here we have free software drivers communicating via
TCP/UDP to free hardware which is running embedded free software
compiled by a free modification to the free GNU Compiler Collection.

The bad news is that the older USB connected boards made use of FX2
USB hardware, and programming of that hardware requires the non-free
part of the sdcc compiler. In addition, actually instantiating a free
ZPU processor on a FPGA requires proprietary tools from the FPGA
manufacturer. Even the USRP1 source is closely tied to the proprietary
Altera tools. So the end result is that the generated firmware, even
though it comes from freely available and even DFSG free source code,
ends up being in Debian's contrib repository instead of main.

The ugly news is that firmware developer's "preferred form of the work
for making modifications to it" often includes proprietary
vendor-specific sections. Only natural, considering that the resulting
firmware will be used by that vendor's hardware. So here we have a
source package that defines a device/driver interface that is, on the
whole, free software. However, parts of the source are constrained by
the available proprietary vendor tools. So while modification is
allowed to support similar hardware with other vendors, some portions
of the source code are not useful for that task.

The UHD packages cover the same issues as the previous GNU Radio
packages. Perhaps one reason for the similarity is that so many of the
same people are involved in the development of both packages.

The Road ahead might include UHD driver support for openHPSDR project
hardware. This would be a milestone, and would demonstrate the
convergence of the GNU project GPL licensed gnuradio software and the
TAPR OHL (Open Hardware License) hardware pioneered by TAPR and the
openHPSDR project.

-Maitland



Reply to: