2016-03-22 00:15:40 +00:00
|
|
|
{ stdenv, fetchurl, fetchFromGitHub, cmake, pkgconfig
|
|
|
|
, python, pythonPackages, orc, libusb1, boost }:
|
2013-05-02 14:27:11 +01:00
|
|
|
|
|
|
|
# You need these udev rules to not have to run as root (copied from
|
|
|
|
# ${uhd}/share/uhd/utils/uhd-usrp.rules):
|
|
|
|
#
|
|
|
|
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="fffe", ATTRS{idProduct}=="0002", MODE:="0666"
|
|
|
|
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="2500", ATTRS{idProduct}=="0002", MODE:="0666"
|
|
|
|
|
2018-02-01 19:43:40 +00:00
|
|
|
let
|
|
|
|
uhdVer = "003_010_003_000";
|
|
|
|
ImgVer = stdenv.lib.replaceStrings ["_"] ["."] uhdVer;
|
2013-05-02 14:27:11 +01:00
|
|
|
|
|
|
|
# UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
|
|
|
|
# and xxx.yyy.zzz. Hrmpf...
|
2018-02-01 19:43:40 +00:00
|
|
|
version = "3.10.3.0";
|
|
|
|
|
|
|
|
# Firmware images are downloaded (pre-built) from:
|
|
|
|
# http://files.ettus.com/binaries/images/
|
|
|
|
uhdImagesSrc = fetchurl {
|
|
|
|
url = "http://files.ettus.com/binaries/images/uhd-images_${ImgVer}-release.tar.gz";
|
|
|
|
sha256 = "198awvw6zsh19ydgx5qry5yc6yahdval9wjrsqbyj51pnr6s5qvy";
|
|
|
|
};
|
|
|
|
|
|
|
|
in stdenv.mkDerivation {
|
|
|
|
name = "uhd-${version}";
|
2013-05-02 14:27:11 +01:00
|
|
|
|
2016-03-22 00:15:40 +00:00
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "EttusResearch";
|
|
|
|
repo = "uhd";
|
2018-02-01 19:43:40 +00:00
|
|
|
rev = "release_${uhdVer}";
|
2018-01-30 23:04:51 +00:00
|
|
|
sha256 = "1aj8qizbyz4shwawj3qlhl6pyyda59hhgm9cwrj7s5kfdi4vdlc3";
|
2013-05-02 14:27:11 +01:00
|
|
|
};
|
|
|
|
|
2016-03-22 00:15:40 +00:00
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
2016-04-16 18:40:03 +01:00
|
|
|
cmakeFlags = "-DLIBUSB_INCLUDE_DIRS=${libusb1.dev}/include/libusb-1.0";
|
2013-05-02 14:27:11 +01:00
|
|
|
|
2016-03-22 00:15:40 +00:00
|
|
|
nativeBuildInputs = [ cmake pkgconfig ];
|
|
|
|
buildInputs = [ python pythonPackages.pyramid_mako orc libusb1 boost ];
|
2013-05-02 14:27:11 +01:00
|
|
|
|
|
|
|
# Build only the host software
|
|
|
|
preConfigure = "cd host";
|
|
|
|
|
|
|
|
postPhases = [ "installFirmware" ];
|
|
|
|
|
|
|
|
installFirmware = ''
|
|
|
|
tar --strip-components=1 -xvf "${uhdImagesSrc}" -C "$out"
|
|
|
|
'';
|
|
|
|
|
|
|
|
meta = with stdenv.lib; {
|
|
|
|
description = "USRP Hardware Driver (for Software Defined Radio)";
|
|
|
|
longDescription = ''
|
|
|
|
The USRP Hardware Driver (UHD) software is the hardware driver for all
|
|
|
|
USRP (Universal Software Radio Peripheral) devices.
|
|
|
|
|
|
|
|
USRP devices are designed and sold by Ettus Research, LLC and its parent
|
|
|
|
company, National Instruments.
|
|
|
|
'';
|
2017-06-20 02:26:14 +01:00
|
|
|
homepage = https://uhd.ettus.com/;
|
2013-05-02 14:27:11 +01:00
|
|
|
license = licenses.gpl3Plus;
|
2017-05-26 04:15:15 +01:00
|
|
|
platforms = platforms.linux ++ platforms.darwin;
|
2016-03-22 00:15:40 +00:00
|
|
|
maintainers = with maintainers; [ bjornfor fpletz ];
|
2013-05-02 14:27:11 +01:00
|
|
|
};
|
|
|
|
}
|