Talk:QtRadio Installation

From Ghpsdr3 SDR project
Revision as of 18:56, 13 October 2012 by G3vbv (Talk | contribs) (Installing on ODROID-X and Pandaboard)

Jump to: navigation, search

Installing ghpsdr3-alex on Raspberry Pi


I recommend installing either the raspbian or raspbian pisces distributions as there is no Ubuntu release to date.

All the pre-req packages mentioned for the Ubuntu installation are also needed for the Raspberry Pi and are available using "apt-get install" as usual.

    • The RasPi USB subsystem is sensitive to power supply voltage levels - A supply of 5.25V at 2A is recommended. With +5.17V I was getting on-board Ethernet errors and system hangs when one more device besides keyboard and mouse were plugged in to the on-board USB ports or an outboard powered USB HUB. Increasing the voltage to +5.27V solved the problem.
    • Do not use power from a USB PC port or from a USB Hub.

Once it's up and running, some details that may help in setting up the hardware for use - I'm currently overclocking at 1GHz:-

Keyboard, mouse, usb sound card and Ethernet fully operational using the 7-port USB hub. root@pisces:~# lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.

Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.

Bus 001 Device 004: ID 050d:0307 Belkin Components USB 2.0 - 7 ports Hub [FSU307]

Bus 001 Device 005: ID 04f3:0103 Elan Microelectronics Corp.

Bus 001 Device 006: ID 041e:3040 Creative Technology, Ltd SoundBlaster Live! 24-bit External SB0490

Bus 001 Device 007: ID 0fe6:8101 Kontron (Industrial Computer Source / ICS Advent) DM9601 Fast Ethernet Adapter

Bus 001 Device 008: ID 047d:1022 Kensington Orbit Optical

root@pisces:~# ifconfig eth0 Link encap:Ethernet HWaddr b8:27:eb:2c:07:c9

         inet addr:192.168.10.31  Bcast:192.168.10.255 Mask:255.255.255.0
         inet6 addr: fe80::ba27:ebff:fe2c:7c9/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:410 errors:0 dropped:0 overruns:0 frame:0
         TX packets:377 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:28905 (28.2 KiB)  TX bytes:35938 (35.0 KiB)

eth1 Link encap:Ethernet HWaddr 00:10:14:00:9f:fa

         inet addr:192.168.2.199  Bcast:192.168.2.255 Mask:255.255.255.0
         inet6 addr: fe80::210:14ff:fe00:9ffa/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:5 errors:0 dropped:0 overruns:0 frame:0
         TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:230 (230.0 B)  TX bytes:592 (592.0 B)

lo Link encap:Local Loopback

         inet addr:127.0.0.1  Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING  MTU:16436  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@pisces:~# cat /proc/asound/cards

0 [External       ]: USB-Audio - SB Live! 24-bit External
                     Creative Technology SB Live! 24-bit External at usb-bcm2708_usb-1.3.3, full spe
1 [ALSA           ]: BRCM bcm2835 ALSbcm2835 ALSA - bcm2835 ALSA
                     bcm2835 ALSA

I had originally forgotten to add snd-bcm2835 to /etc/modules which is why the SB Live! 24 is card 0. Rebooting with just the on-board sound card then adding the SB Live! 24 USB changed the on-board to card 0 and the SB Live! 24 USB is now card 1. I have further tests to do, mainly with sound, but now the Rpi is looking much healthier.

It's running at 1GHz with this config.txt file. root@pisces:~# cat /boot/config.txt

over_voltage=6

arm_freq=1000

core_freq=500

sdram_freq=50


root@pisces:~# cat /etc/network/interfaces

  1. Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
  2. /usr/share/doc/ifupdown/examples for more information.

auto lo


iface lo inet loopback


  1. File: ifcfg-eth0

auto eth0

iface eth0 inet static

address 192.168.10.31

netmask 255.255.255.0

gateway 192.168.10.103


auto eth1

iface eth1 inet static

address 192.168.2.199

netmask 255.255.255.0


root@pisces:~# cat /etc/modules

  1. /etc/modules: kernel modules to load at boot time.
  2. This file contains the names of kernel modules that should be loaded
  3. at boot time, one per line. Lines beginning with "#" are ignored.
  4. Parameters can be specified after the module name.

loop

snd-bcm2835


== Headline text == * SOFTWARE * If you build ghpsdr3-alex already it's a case of following the same procedure with the following caveats that apply to the RasPi ARM architecture. What follows is a blow by blow account of how I did it for the iw0hdv branch which supports my HiQSDR+Preselector.

Subject: [n2adr-sdr] Raspberry Pi running ghpsdr3-alex

I did a fresh clone and changed to the iw0hdv branch from the default master branch.

  1. git checkout iw0hdv

Removed all traces of -msse, -msse3 and -ffast-math from Makefile.am and Makefile.in where appropriate in the subdirectories.

  1. autoreconf -i
  1. ./configure CFLAGS='-O3 -pipe -march=armv6 -mfpu=vfp -mfloat-abi=hard' CXXFLAGS='-O3 -pipe -march=armv6 -mfpu=vfp -mfloat-abi=hard'


  1. make all && make all install

Running hiqsdr-server at 48K/96K and dspserver (built with qt4) as qt5 is not yet available. There are instructions for building qt5 but following them bullet by bullet it failed not far along. The instructions are for building on i386 - I have put out a request for .deb packages or at least built tarballs to the Raspberry Pi forum.


QtRadio running on another box using the connection from the server list. Sound is a touch distorted, quite distorted on start up of QtRadio and spectrum is always a little bit slow.

When a slave connected and tried changing frequency, dspserver crashed - dspserver can be a bit crash happy.

The first thing I tried on the Pi was QtRadio standalone, spectrum and waterfall were OK but no sound.

Just now a client using glSDR (5) is attempting to change frequency, sound went quite distorted then dspserver crashed.

Restarted dspserver and QtRadio sound started very distorted before it settled down to reasonable.

Installing on ODROID-X and Pandaboard

There are 2 Ubuntu images downloadable from hardkernel.com

odroidx_20120906-linaro-precise-ubuntu-desktop_with_HDMI.img.gz

odroidx_20120906-linaro-precise-ubuntu-desktop_with_LCD.img.gz


The image needs to be decompressed e.g:- "gzip -d odroidx_20120906-linaro-precise-ubuntu-desktop_with_HDMI.img.gz" then burned on to a SD card (full size or microSD with a full size adaptor).

"dmesg" will tell you what it's called when you attach the reader with the SD card inserted to a USB port,e.g /dev/sdb, /dev/sdc, etc.

"dd if=odroidx_20120906-linaro-precise-ubuntu-desktop_with_HDMI.img of=/dev/sdc bs=1M"

When it completes, insert the SD card into the ODROID-X and boot up - the ODROID-X has a power on and a reset switch on board.

There is a way to prepare the SD card using Windows but I don't do Windows, consult http://beagleboard.org/demo/angstrom/

I use the HDMI.img as I have a spare HDMI port on one of my monitors - it requires a micro HDMI cable, standard HDMI on the monitor end and micro HDMI on the ODROID-X board.

When you have the ODROID-X all up and running and installed the pre-req packages for ghpsdr3-alex - there are a lot of them as is the case with any Ubuntu or other distribution, the build instructions are as follows:-

$ git clone git://github.com/alexlee188/ghpsdr3-alex.git

$ cd ghpsdr3-alex


Then I run a script to remove -msse and friends, the script I call "rm_words" made executable and put in /usr/local/bin


find ./ -type f | xargs sed -i 's/-msse3//g'

find ./ -type f | xargs sed -i 's/-msse//g'

find ./ -type f | xargs sed -i 's/-ffast-math//g'


autoreconf -i

source set_Qt-5.0.0_path.src


set_Qt-5.0.0_path.src contains "export PATH=/opt/qt5/bin:$PATH" and I'm using the qt5-daily from edgers.

http://ppa.launchpad.net/canonical-qt5-edgers/qt5-daily/ubuntu precise main

The configure script I call "alex-config" made executable and put in /usr/local/bin


./configure CFLAGS='-O3 -pipe -mfpu=neon -fno-tree-vectorize -fopenmp' CXXFLAGS='-O3 -pipe -mfpu=neon -fno-tree-vectorize -fopenmp'


$ make -j 4 all

$ sudo make -j 4 all install


The ODROID-X is treated the same as the Pandaboard and the Raspberry Pi when building ghpsdr3-alex, except the Pandaboard uses the normal Ubuntu ARM distribution while the ODROID-X uses the linaro Ubuntu ARM distribution built especially for it. The Raspberry Pi uses the debian raspbian distribution.

The distributions are all Ubuntu ARM and packages are updated, upgraded and installed in exactly the same manner as Ubuntu for x86/x86_64 so there is no learning curve involved if you already know Ubuntu.

I use 32GB Class 10 (the fastest) SD cards but recommend at least 16GB to give ample space to install and build other software. SD cards can either be full size or microSD in a full size adaptor.