GNURadio: Ubuntu 13.04 Instal GNURadio 3.4.2

From SpeedyWiki

Jump to: navigation, search

Contents

[edit] Handling USRP

Khusus untuk Ubuntu 13.04 kita tidak bisa menggunakan SYSFS, ganti menjadi ATTR, juga ada beberapa perubahan lainnya Referensi: http://ubuntuforums.org/showthread.php?t=1985915 dan http://askubuntu.com/questions/147272/problem-with-executing-udev-rules-for-olimexs-avr-usb-jtag

Ubuntu menggunakan udev untuk menangani hotplug devices, dan secara default tidak memberikan akses non-root ke USRP. Script berikut akan memberikan akses bagi user untuk menghandel USRP via USB baik secara live atau hot-plug.

sudo addgroup usrp
sudo usermod -G usrp -a <YOUR_USERNAME>
echo 'ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="fffe", ATTR{idProduct}=="0002", GROUP="usrp", MODE="0666"' > tmpfile
sudo chown root.root tmpfile
sudo mv tmpfile /etc/udev/rules.d/10-usrp.rules

Pada titik ini, Ubuntu telah di konfigurasi untuk tahu apa yang harus di kerjakan jika medeteksi USRP di USB tapi "udev" perlu me-reload rules untuk memasukan rules yang baru kita buat. Langkah berikut dapat dilakukan sehingga kita tidak perlu me-reboot komputer.

sudo udevadm control --reload-rules

atau

sudo /etc/init.d/udev stop
sudo /etc/init.d/udev start

atau

sudo killall -HUP udevd

Kita dapat mencek jika USRP telah di kenali dengan mengamati /dev/bus/usb setelah USRP di pasang menggunakan perintah

ls -lR /dev/bus/usb | grep usrp

Harusnya akan keluar seperti

crw-rw-r-- 1 root usrp 189, 263 Jun  5 09:09 008

Setiap USRP yang terpasang akan terdaftar pada group 'usrp' dan mode 'crw-rw----'.

[edit] Instal Library

Update

sudo apt-get update

Instal untuk Ubuntu 13.04

sudo apt-get -y install libfontconfig1-dev libxrender-dev libpulse-dev \
gcc-4.7 g++ automake libtool python-dev libfftw3-dev \
libcppunit-dev libboost-all-dev libusb-dev fort77 \
libsdl1.2-dev python-wxgtk2.8 subversion git-core guile-1.8-dev \
libqt4-dev python-numpy ccache python-opengl libgsl0-dev \
python-cheetah python-lxml doxygen qt4-dev-tools \
libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools \
libpcre3 libpcre3-dbg libpcre3-dev libpcrecpp0 \
python-wxgtk2.8 python-wxtools wx2.8-i18n libwxgtk2.8-dev libgtk2.0-dev \
autoconf libtool libosip2-dev libortp-dev \
libusb-1.0-0-dev g++ erlang bison flex \
apache2 php5 php5-xmlrpc php5-mysql php5-gd php5-cli php5-curl \
mysql-client mysql-server libphp-adodb libgd2-xpm libgd2-xpm-dev \
php5-curl php-pear autoconf libtool libosip2-dev libortp-dev \
libusb-1.0-0-dev g++ erlang libreadline6-dev libboost-all-dev \
cmake build-essential subversion \
build-essential autoconf cvs sox pkg-config git-core subversion \
libgsm1-dev libgsm1 php5-cli python-setuptools python-pip
sudo pip install smspdu

[edit] Instal SWIG

Install secara manual SWIG

Download dari http://sourceforge.net/projects/swig/files/swig/
cp swig-2.0.12.tar.gz /usr/local/src/
cd /usr/local/src/
tar zxvf swig-2.0.12.tar.gz 
cd /usr/local/src/swig-2.0.12/
./configure
make
make install

[edit] Instal QWT

Install secara manual QWT

Download dari http://sourceforge.net/projects/qwt/files/
cp qwt-6.1.0.tar.bz2 /usr/local/src/
cd /usr/local/src/
tar jxvf qwt-6.1.0.tar.bz2 
cd /usr/local/src/qwt-6.1.0/
qmake
make
make install

[edit] Instal SDCC

[edit] SDCC 64bit

Agar bisa di compile 64 bit. Download dari

Compile untuk sdcc 3.3.0 (tampaknya bermasalah compile 3.3.0 di Ubuntu 13.04)

cp sdcc-src-3.3.0.tar.bz2 /usr/local/src
cd /usr/local/src
tar jxvf sdcc-src-3.3.0.tar.bz2
cd sdcc-3.3.0
./configure
make
make install

Compile untuk sdcc 3.2.0

cp sdcc-src-3.2.0.tar.bz2 /usr/local/src
cd /usr/local/src
tar jxvf sdcc-src-3.2.0.tar.bz2
cd sdcc
./configure
make
make install

Agar GNURadio 3.4.2 dapat di compile dengan baik, tampaknya kita harus turun ke versi 2.8.0.

cp sdcc-src-2.8.0.tar.bz2 /usr/local/src
cd /usr/local/src
tar jxvf sdcc-src-2.8.0.tar.bz2
cd sdcc
./configure
make
make install


[edit] Install dari .deb

cd /usr/local/src
wget -c http://launchpadlibrarian.net/38703081/sdcc_2.9.0-5_amd64.deb
wget -c http://launchpadlibrarian.net/38689168/sdcc-libraries_2.9.0-5_all.deb
dpkg -i sdcc_2.9.0-5_amd64.deb sdcc-libraries_2.9.0-5_all.deb

[edit] Test

Test menggunakan perintah

/usr/local/bin/sdcc -v

Untuk sdcc 3.2.0 akan keluar kurang lebih

SDCC : mcs51/gbz80/z80/z180/r2k/r3ka/ds390/pic16/pic14/TININative/ds400/hc08/s08 3.2.0 #8008 (Dec 23 2012) (Linux)

Untuk sdcc 2.8.0 akan keluar kurang lebih

SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.8.0 #5117 (Jun  4 2013) (UNIX)

[edit] Install GNURadio

Sebaiknya pada saat melakukan instalasi GNURadio, kita pasang USRP ke USB port-nya.

Download aplikasi GNURadio dari

http://gnuradio.org/redmine/attachments/download/261/gnuradio-3.4.1.tar.gz
http://gnuradio.org/redmine/attachments/download/279/gnuradio-3.4.2.tar.gz

Install GNURadio

cp gnuradio-3.4.2.tar.gz /usr/local/src/
cd /usr/local/src/
tar zxvf gnuradio-3.4.2.tar.gz 
cd /usr/local/src/gnuradio/

[edit] Patch untuk 52MHz

Edit

vi /usr/local/src/gnuradio/usrp/host/lib/usrp_basic.cc

Ubah line 110 menjadi

//  d_verbose (false), d_fpga_master_clock_freq(64000000), d_db(2)
    d_verbose (false), d_fpga_master_clock_freq(52000000), d_db(2)

Edit

vi /usr/local/src/gnuradio/usrp/host/lib/db_bitshark_rx.cc

Ubah line 151 menjadi

// set_clock_scheme(0,64000000);
set_clock_scheme(0,52000000);

[edit] Perbaiki error: ‘intptr_t’

vi /usr/local/src/gnuradio/gnuradio-core/src/lib/filter/qa_gri_mmse_fir_interpolator_cc.cc  

tambahkan

#include <unistd.h>


OpenBTS 2.6 JANGAN LUPA

  • modifikasi OpenBTS.config agar TRX.Path "../Transceiver52M/transceiver".

[edit] Compile & Install

cd /usr/local/src/gnuradio
./configure --disable-usrp2 --enable-usrp
make clean
make
make check
make install
sudo ldconfig

[edit] Edit bashrc

Untuk 64bit dibutuhkan path ke /usr/local/lib64/pkgconfig/. Masukan PYTHONPATH dengan cara mengedit

vi ~/.bashrc

Tambahkan

PYTHONPATH=/usr/local/lib/python2.7/dist-packages
PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/


Untuk memastikan ada baiknya lakukan

sudo ldconfig
export PYTHONPATH=/usr/local/lib/python2.7/dist-packages
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/

[edit] Test

Boot komputer. Sambungan USRP. Lakukan


cd /usr/local/src/gnuradio/gnuradio-examples/python/usrp
./usrp_benchmark_usb.py 

Hasilnya

Testing 2MB/sec... usb_throughput = 2M
ntotal    = 1000000
nright    = 998137
runlength = 998137
delta     = 1863
OK
Testing 4MB/sec... usb_throughput = 4M
ntotal    = 2000000
nright    = 1998117
runlength = 1998117
delta     = 1883
OK
Testing 8MB/sec... usb_throughput = 8M
ntotal    = 4000000
nright    = 3998437
runlength = 3998437
delta     = 1563
OK
Testing 16MB/sec... usb_throughput = 16M
ntotal    = 8000000
nright    = 7998859
runlength = 7998859
delta     = 1141
OK
Testing 32MB/sec... usb_throughput = 32M
ntotal    = 16000000
nright    = 15996766
runlength = 15996766
delta     = 3234
OK
Max USB/USRP throughput = 32MB/sec

[edit] Error

Error:

make[5]: Entering directory `/usr/local/src/gnuradio-3.4.2/usrp/firmware/lib'
sdcc -mmcs51 --no-xinit-opt -I../../../usrp/firmware/include  -c delay.c -o delay.rel
delay.c:27: syntax error: token -> '_naked' ; column 21

Solusi:

Ini naga-naganya urusannya dengan versi sdcc. Entah versi yang mana yang cocok dengan GNURadio 3.4.2.

[edit] Referensi

[edit] Pranala Menarik

[edit] Persiapan

[edit] Script


[edit] OpenBTS 2.6

[edit] OpenBTS 2.8

[edit] Multi OpenBTS 2.8

[edit] Ettus E110

[edit] Ettus N210

[edit] RangeNetworks

[edit] GPRS

[edit] Briker OpenBTS

[edit] FreeSWITCH OpenBTS

[edit] Power Amplifier

[edit] Lain Lain

[edit] Catatan Legal dan Pendukung

[edit] Catatan Sejarah

[edit] Dokumentasi Video

[edit] Perjuangan OpenBTS

Personal tools