How to setup your own development environment for GNU Radio?

This post discusses the setup of a development environment for GNU Radio. I will outline the installation process assuming a Fedora 15 (64 bits) Linux system.

OPTION A

On Fedora-Linux, I found that the approach that works best is to use the build-gnuradio script. It installs the latest version of GNU Radio. It is likely that you will encounter problems during the installation (I did!). Taken one-by-one, they are all solvable.

With the most recent versions, the use of SDRs from the USRP family requires installation of the USRP Hardware Driver (UHD). For a USRP2 unit, new firmware must be loaded into the SD card (follow the installation instructions). At boot time, the USRP2 loads its software from the inserted SD card. A correct installation is confirmed visually by the LEDs that blink according to a certain pattern:

The front panel LEDs A, C and E are synchronously blinking. LEDs D (firmware loaded) and F (CPLD loaded) remain solid. LEDs of the Ethernet connector are blinking and confirming data transfer.

When a SDR software is executed in the receive mode, LED C (receiving) on the USRP2 front panel should also be on:

OPTION B

This option is the easiest. I will install a complete working development environment, but not with the latest version of GNU Radio. Apparently, after version 3.2.2 GNU Radio is not updated in the repositories used to build the distributions of Linux.

However, an up-to-date Linux system is recommended. In particular, the list of available (RPM) software packages needs to be up-to-date otherwise some of the software packages may not be visible. Use the tool Software Update, available under the Applications/System Tools menu, to update your system.

A few software packages need to be installed. The best is to use the Add/Remove Software tool, available under the Applications/System Tools menu.

Launch a Find using the keyword gnuradio. A list of GNU Radio packages will be returned. Check each of them and click on the button Apply.

If you wish to use GNU Radio in combination with the Universal Software Radio Peripheral (USRP) family of radios, you must also install the related software packages. They can be obtained with a Find on the keyword usrp.

7 Responses to How to setup your own development environment for GNU Radio?

  1. 丁宇贞 says:

    hello,thanks very much for your technology blog,and I also want to use UHD on USRP2, but I encounter problems,when I using UHD on my USRP2,the LEDs light up the same with yours,but when I run”uhd_find_devices”,it returns “No UHD Devices Found”. I don’t know where I do wrong,would you so nice to tell me?
    Also I see another video,
    the URL: http://www.youtube.com/watch?v=REDK7M-83WQ
    the LEDs do not light up the same with ours,so I feel puzzled.
    Thanks again!
    Best Regard!

  2. ve3emb says:

    Hi and thank you for reading my blog.

    I think the firmware has been properly installed. The problem may be just in the network configuration or syntax of the command.

    First, you must make sure that your computer network interface is configured “manual” with the IP address 168.192.10.1 and netmask 255.255.255.0. Here is an example network configuration that works:

    [user@fedora15 ~]$ ifconfig
    lo …
    p2p1 Link encap:Ethernet HWaddr 08:00:27:DF:0E:DE
    inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0
    inet6 addr: fe80::a00:27ff:fedf:ede/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:3054 errors:0 dropped:0 overruns:0 frame:0
    TX packets:2299 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:698725 (682.3 KiB) TX bytes:257665 (251.6 KiB)

    The USRP2 is on 192.168.10.2, by default. You may ping the USRP2 to test reachability:

    [user@fedora15 ~]$ ping 192.168.10.2
    PING 192.168.10.2 (192.168.10.2) 56(84) bytes of data.
    64 bytes from 192.168.10.2: icmp_req=1 ttl=32 time=1.70 ms
    64 bytes from 192.168.10.2: icmp_req=2 ttl=32 time=2.17 ms
    ^C
    — 192.168.10.2 ping statistics —
    2 packets transmitted, 2 received, 0% packet loss, time 1002ms
    rtt min/avg/max/mdev = 1.708/1.942/2.177/0.238 ms

    You may find the USRP2 device by IP address as follows:

    [user@fedora15 ~]$ uhd_find_devices –args addr=192.168.10.2
    linux; GNU C++ version 4.6.1 20110908 (Red Hat 4.6.1-9); Boost_104600; UHD_003.004.000-7dc76db

    ————————————————–
    — UHD Device 0
    ————————————————–
    Device Address:
    type: usrp2
    addr: 192.168.10.2
    name:
    serial: 1459

    You may also probe the USRP2 device by address (TVRX2 daughter board is installed):

    [user@fedora15 ~]$ uhd_usrp_probe –args addr=192.168.10.2
    linux; GNU C++ version 4.6.1 20110908 (Red Hat 4.6.1-9); Boost_104600; UHD_003.004.000-7dc76db

    — Opening a USRP2/N-Series device…
    — Current recv frame size: 1472 bytes
    — Current send frame size: 1472 bytes

    UHD Warning:
    The recv buffer could not be resized sufficiently.
    Target sock buff size: 50000000 bytes.
    Actual sock buff size: 1000000 bytes.
    See the transport application notes on buffer resizing.
    Please run: sudo sysctl -w net.core.rmem_max=50000000

    UHD Warning:
    The recv buffer could not be resized sufficiently.
    Target sock buff size: 50000000 bytes.
    Actual sock buff size: 1000000 bytes.
    See the transport application notes on buffer resizing.
    Please run: sudo sysctl -w net.core.rmem_max=50000000

    UHD Warning:
    The send buffer could not be resized sufficiently.
    Target sock buff size: 1048576 bytes.
    Actual sock buff size: 1000000 bytes.
    See the transport application notes on buffer resizing.
    Please run: sudo sysctl -w net.core.wmem_max=1048576
    _____________________________________________________
    /
    | Device: USRP2 / N-Series Device
    | _____________________________________________________
    | /
    | | Mboard: USRP2-REV4
    | | hardware: 1024
    | | mac-addr: 00:50:c2:85:35:b3
    | | ip-addr: 255.255.255.255
    | | gpsdo: none
    | | serial: 1459
    | |
    | | Time sources: none, external, _external_, mimo
    | | Clock sources: internal, external, mimo
    | | Sensors: mimo_locked, ref_locked
    | | _____________________________________________________
    | | /
    | | | RX DSP: 0
    | | | Freq range: -50.000 to 50.000 Mhz
    | | _____________________________________________________
    | | /
    | | | RX DSP: 1
    | | | Freq range: -50.000 to 50.000 Mhz
    | | _____________________________________________________
    | | /
    | | | RX Dboard: A
    | | | ID: TVRX2 (0x0046)
    | | | Serial: E9R11YFRT
    | | | _____________________________________________________
    | | | /
    | | | | RX Subdev: RX1
    | | | | Name: TVRX2 (0x0046)
    | | | | Antennas: J100
    | | | | Sensors: lo_locked, rssi, temperature
    | | | | Freq range: 42.000 to 870.000 Mhz
    | | | | Gain range IF: 0.0 to 30.0 step 0.5 dB
    | | | | Connection Type: Q
    | | | | Uses LO offset: No
    | | | _____________________________________________________
    | | | /
    | | | | RX Subdev: RX2
    | | | | Name: TVRX2 (0x0046)
    | | | | Antennas: J140
    | | | | Sensors: lo_locked, rssi, temperature
    | | | | Freq range: 42.000 to 870.000 Mhz
    | | | | Gain range IF: 0.0 to 30.0 step 0.5 dB
    | | | | Connection Type: I
    | | | | Uses LO offset: No
    | | | _____________________________________________________
    | | | /
    | | | | RX Codec: A
    | | | | Name: ltc2284
    | | | | Gain Elements: None
    | | _____________________________________________________
    | | /
    | | | TX DSP: 0
    | | | Freq range: -250.000 to 250.000 Mhz
    | | _____________________________________________________
    | | /
    | | | TX Dboard: A
    | | | _____________________________________________________
    | | | /
    | | | | TX Subdev: 0
    | | | | Name: Unknown (0xffff) – 0
    | | | | Antennas:
    | | | | Sensors:
    | | | | Freq range: 0.000 to 0.000 Mhz
    | | | | Gain Elements: None
    | | | | Connection Type: IQ
    | | | | Uses LO offset: No
    | | | _____________________________________________________
    | | | /
    | | | | TX Codec: A
    | | | | Name: ad9777
    | | | | Gain Elements: None

    [user@fedora15 ~]$

    • 丁宇贞 says:

      Dear professor Michel Barbeau,
      Great appreciation for your enlightenment and your help!
      I have solved my old problem because I do not set static IP, thanks for your help again!
      However I face new problem immediately, that is:”The firmware build is not compatible with the host code build.”
      I google it and burn my SD card, install UHD drivers many times, but can’t solve it. I think I must study hard. hey!
      Thanks again and Best Wishes to you!

      • ve3emb says:

        Hi!

        Are you using the latest version of GNU Radio? Did you build the UHD code on your computer?

        I never had this problem, I downloaded the source code of GNU Radio and UHD and rebuilt everything on my computer.

  3. 丁宇贞 says:

    Dear professor,
    I’m so sorry to reply you so late.
    I use the rpm packages from the URL:http://files.ettus.com/uhd_releases/003_003_001/
    I use the images and source codes in the package UHD-003.003.001-Fedora-13-i686.rpm, but it return ”The firmware build is not compatible with the host code build.”
    I also try to build the images from the source code, but have difficulty in install Xilinx ISE 12.1, so I can not build the FPGA file.
    I think I must work hard. Thanks very much for your great help!
    Wish you have a nice mood,thanks again!

  4. 丁宇贞 says:

    Dear professor,
    I am so sorry to disturb you again.
    I I downloaded the source code of GNU Radio and UHD and rebuilt images and install it, but there is still the problem “The firmware build is not compatible with the host code build.” I can’t solve this problem and can do nothing further.
    Would you so nice to Email me the source code and the images build from the source code?
    My email address is: baobaonanpo@gmail.com
    Very ashamed for so many unreasonable requests,I will tremendously appreciate your enlightenment and your help!
    Best Regard!

  5. ve3emb says:

    See the new post: GNU Radio Installation: An Update (http://wp.me/p13m97-7y)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

ve3bux.com

Just wireless

Just wireless

Just wireless

Just wireless

VE3WMB Blog

Just wireless

VA3QV's Weblog

My view on the world of AMATEUR RADIO- "Rambling on" so to speak

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: