OpenBTS: N210 GNURadio

From OnnoWiki
Jump to navigation Jump to search

Persiapan

sudo apt-get -y install libboost-all-dev libusb-1.0-0-dev python-cheetah doxygen python-docutils \
git python cmake ethtool 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 \
subversion autoconf libtool libosip2-dev libortp-dev g++ sqlite3 libusb-1.0.0-dev \
libsqlite3-dev erlang libreadline6-dev libboost-all-dev swig libfftw3-dev libcppunit-dev \
libaudio-dev libusb-dev make

Lakukan

ethtool eth0
Settings for eth0: 
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 2
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: on
	Supports Wake-on: pumbg
	Wake-on: g
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes


Set IP address interface

ifconfig eth0 192.168.10.1
ping 192.168.10.2

HARUS ADA Responds!!!

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.74 ms


Install SDCC

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

alternatif lain

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 


Download Source Code UHD

echo "/usr/local/lib" >> /etc/ld.so.conf
cd /usr/local/src
git clone git://ettus.sourcerepo.com/ettus/uhd.git uhd.git

Compile UHD

cd /usr/local/src/uhd.git/host/
mkdir build
cd /usr/local/src/uhd.git/host/build
cmake -DENABLE_LIBUHD=ON -DENABLE_EXAMPLES=ON -DENABLE_UTILS=ON -DENABLE_TESTS=ON ../
make
make test
make install
ldconfig

Download GNURadio

cd /usr/local/src
wget -c http://voiprakyat.or.id/pub/openbts/usrp52mhz.patch
wget -c http://gnuradio.org/redmine/attachments/download/279/gnuradio-3.4.2.tar.gz
cd /usr/local/src
tar -zxf gnuradio-3.4.2.tar.gz
cd gnuradio
patch -p0 < ../usrp52mhz.patch
./configure --enable-gr-uhd --disable-usrp2 --disable-usrp

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>

Compile GNURadio

cd /usr/local/src/gnuradio
make
make install
ldconfig

Install UHD USRP ke udev

cd /usr/local/share/uhd/utils
sudo cp uhd-usrp.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules

Install Image 003.005.000

sudo /usr/local/lib/uhd/utils/uhd_images_downloader.py
Images successfully installed to: /usr/local/share/uhd/images

Lanjutkan

/usr/local/bin/usrp_n2xx_simple_net_burner --addr="192.168.10.2"
linux; GNU C++ version 4.7.3; Boost_104900; UHD_003.005.003-112-gea418a85

Searching for USRP N2XX with IP address 192.168.10.2.
Found n210_r4.

Searching for specified images.

Will burn the following images:
 * Firmware: /usr/local/share/uhd/images/usrp_n210_fw.bin
 * FPGA:     /usr/local/share/uhd/images/usrp_n210_r4_fpga.bin

Querying n210_r4 for flash information.
 * Flash size:  4194304
 * Sector size: 65536

Erasing FPGA image.
 * Successfully erased 1572864 bytes at 1572864.
Writing FPGA image.
 * Successfully wrote 1311644 bytes.
Verifying FPGA image.
 * Successful.

Erasing firmware image.
 * Successfully erased 31744 bytes at 3145728.
Writing firmware image.
 * Successfully wrote 16383 bytes.
Verifying firmware image.
 * Successful.

Image burning successful. Reset USRP (Y/n)? Y
Resetting USRP.

Test

Find Device

uhd_find_devices 
linux; GNU C++ version 4.7.3; Boost_104900; UHD_003.005.003-112-gea418a85

--------------------------------------------------
-- UHD Device 0
--------------------------------------------------
Device Address:
    type: usrp2
    addr: 192.168.10.2
    name: 
    serial: F306BB

Test GPSDO

cd /usr/local/src/uhd.git/host/examples
wget https://sites.google.com/site/byungchulweb/gnufile/gps_test.cpp

Masukan

vi /usr/local/src/uhd.git/host/examples/CMakeLists.txt 

masukan

gps_test.cpp

Compile

cd ..
cd build
cmake ../
make
make test
sudo make install
sudo ldconfig

Test

cd /usr/local/src/uhd.git/host/build/examples
sudo ./gps_test

Hsilnya

..
..
-- Setting references to the internal GPSDO
-- Initializing time to the internal GPSDO
Using Device: Single USRP:
  Device: USRP2 / N-Series Device
  Mboard 0: N210r4
  RX Channel: 0
    RX DSP: 0
    RX Dboard: A
    RX Subdev: WBXv3 RX+GDB
  TX Channel: 0
    TX DSP: 0
    TX Dboard: A
    TX Subdev: WBXv3 TX+GDB

GPS epoch time: 1136081736 seconds
GPS lock status: unlocked
 PS_GPGGA: $GPGGA,021536.00,0000.0000,N,00000.0000,E,0,99,1.0,0.0,M,0.0,M,,*5F
 PS_GPRMC: $GPRMC,021536.00,V,0000.0000,N,00000.0000,E,0.0,0.0,010106,,*21


Test clock 52MHz

cd /usr/local/bin
./uhd_usrp_probe --args="master_clock_rate=52e6"

Hasilnya kira-kira

Test Benchmark

cd /usr/local/src/uhd.git/host/build/examples
./benchmark_rate --rx_rate 1000000 --tx_rate 1000000

Hasilnya kira-kira

Referensi

Pranala Menarik

Persiapan

OpenBTS 2.6

OpenBTS 2.8

Multi OpenBTS 2.8

Ettus E110

Ettus N210

GPRS

Power Amplifier

Lain Lain

Catatan Legal dan Pendukung

Catatan Sejarah

Dokumentasi Video