| Version 1 (modified by anonymous, 6 years ago) |
|---|
Universal Software Radio Peripheral (USRP)
The USRP device interfaces the GNU Radio project's Universal Software Radio Peripheral with waveforms running on OSSIE.
This device is under development.
Available versions:
Installation Guide
Install SDCC (small device C compiler); Download from http://sdcc.sourceforge.net/ and execute the following commands
$ tar -xvf sdcc-src-2.6.0.tar.gz $ cd sdcc-src-2.6.0 $ ./configure $ make # make install
Now install the USRP source; download from ftp://ftp.gnu.org/gnu/gnuradio/usrp-0.12.tar.gz and execute the following commands
$ tar -xvf usrp-0.12.tar.gz $ cd usrp-0.12 $ ./bootstrap $ ./configure $ make # make install
Install USRP platform device for OSSIE by checking out the source from the repository, viz.
$ svn co https://ossie-dev.mprg.org/repos/ossie/platform/USRP/trunk/USRP $ cd USRP $ ./reconf $ ./configure $ make $ make install
Now link the libraries
# /sbin/ldconfig
Configure USB and change USRP permissions
To be able to run a waveform that uses the USRP you will either need to have root permissions or give access to your user to use the USRP. The process for each distribution is different but for Fedora 5 or 6: Define a group named usrp (as root):
# /usr/sbin/groupadd usrp
Add a user to the group
# /usr/sbin/usermod -a usrp [username]
or, if your copy of usermod does not support this syntax try
# /usr/sbin/usermod -G usrp -a [username]
Create a file named /etc/udev/rules.d/10-­usrp.rules with the following contents, and be sure to include the : in MODE:="0660" otherwise the default usb_device rule will override MODE to "0640". This also applies to the GROUP setting.
# rule to grant read/write access on USRP to group named usrp.
# to use, install this file in /etc/udev/rules.d as 10-usrp.rules
ACTION=="add", BUS=="usb", SYSFS{idVendor}=="fffe", SYSFS{idProduct}=="0002",
GROUP:="usrp", MODE:="0660"
Restart the udev daemon to enable he changes.
# killall -HUP udevd
You can check if this is working by examining /dev/bus/usb after plugging in a USRP:
$ ls -lR /dev/bus/usb
You should see a device file with group usrp and mode crw?????
Now restart your machine.
Troubleshooting
Here are a list of common problems users have encountered while compiling, or trying to run the USRP device in OSSIE waveforms.
Problem: When installing usrp-0.12 I get the following error when running ./configure
error: USRP requires libusb. usb.h not found, stop. See http://libusb.sf.net
Solution: You need the libusb development tools. They are easily installed via yum, viz.
# yum install libusb-devel
Problem: When installing usrp-0.12 I get the following error when running ./configure
configure: error: USRP requires sdcc. sdcc not found, stop. See http://sdcc.sf.net
Solution: You need to install SDCC (see instructions above).
Problem: When running nodeBooter, I get the following error:
bin/USRP: error while loading shared libraries: libusrp.so.0: cannot open shared object file: No such file or directory
Solution: As root, run
# /sbin/ldconfig
Problem: When running nodeBooter:
usrp: failed to find usrp[0]
Solution:
Restart the machine
Problem: While running nodeBooter I get the following or similar error:
usrp_open_interface:usb_claim_interface: failed interface 2 could not claim interface 2: Device or resource busy usrp_basic_rx: can't open rx interface Failed to create usrp rx terminate called after throwing an instance of 'CF::LifeCycle::InitializeError' Aborted
Solution: Disconnect USRP's USB cable, reconnect, and re-start nodeBooter.