OpenBTS: N210 GNURadio 3.7.0

From OnnoWiki
Revision as of 08:43, 24 July 2014 by Onnowpurbo (talk | contribs) (→‎Compile GNURadio)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Sebaiknya menggunakan GNURadio yang terbaru untuk menjalankan N210 karena lebih mudah.

Persiapan

sudo apt-get --force-yes -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

Test Ethernet di laptop / PC pastikan kita menggunakan Gigabit Ethernet.

WARNING: N210 hanya mau berkomunikasi dengan laptop / PC dengan Gigabit Ethernet. Jika Ethernet 10/100Mbps, maka N210 tidak mau berkomunikasi.


Cara men-test kemampuan Gigabit Ethernet dengan menggunakan ethtool

ethtool eth0

Harus keluar kira-kira seperti di bawah ini

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

Pastikan ethernet mampu bekerja pada Gbps.

Atau jika hardware mendukung kita paksa dengan perintah

sudo ethtool -s eth0 autoneg off
sudo ethtool -s eth0 speed 1000 duplex full


Set IP address interface ethernet

ifconfig eth0 192.168.10.1

Cek sambungan ke N210.

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

Bagi anda yang menggunakan desktop Ubuntu sebaiknya di set juga dari Network Connection di Desktop agar menjadi IP address statik

Catatan Bagi Mereka yang menggunakan Gigabit Switch

Memang N210 bisa berkomunikasi menggunakan Gigabit Switch. Tapi kita perlu men-tune sistem operasi agar buffer yang ada cukup besar untuk berkomuinikasi. Lakukan di shell:

sudo sysctl -w net.core.rmem_max=50000000
sudo sysctl -w net.core.wmem_max=1048576


Install SDCC

Sebaiknya jangan mengcompile dari source code karena membuat pusing kepala. Install sdcc sebaiknya langsung dari file .deb saja.

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


Compile SDCC

Source code SDCC dapat di download dari

http://sourceforge.net/projects/sdcc/files/sdcc/

Untuk mengcompile SDCC dapat menggunakan perintah

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


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://gnuradio.org/releases/gnuradio/gnuradio-3.7.4.tar.gz

Compile GNURadio

NOTE: naga-naga-nya kita tidak perlu mengcompile GNURadio. Karena UHD dapat berjalan sendiri tanpa GNURadio.


cd /usr/local/src
tar -zxf gnuradio-3.7.4.tar.gz
cd gnuradio-3.7.4
mkdir build
cd build
cmake -DENABLE_BAD_BOOST=ON ../
make
make test
make install
ldconfig

Install UHD USRP ke udev

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

Install Image 003.005.004

sudo /usr/local/lib/uhd/utils/uhd_images_downloader.py
Downloading images from: http://files.ettus.com/binaries/master_images/archive/uhd-images_003.005.004-139-g56f391ad.zip
.
.
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.004-140-gfb32ed16

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 1311560 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

Perintah

uhd_find_devices 

Hasilnya

linux; GNU C++ version 4.7.3; Boost_104900; UHD_003.005.004-140-gfb32ed16

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

Test GPSDO

Perintah

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

..
..
-- Detecting internal GPSDO.... Found a Jackson Labs GPS
-- found
-- 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: 1136084837 seconds
GPS lock status: unlocked
 PS_GPGGA: $GPGGA,030717.00,0000.0000,N,00000.0000,E,0,99,1.0,0.0,M,0.0,M,,*5E
 PS_GPRMC: $GPRMC,030717.00,V,0000.0000,N,00000.0000,E,0.0,0.0,010106,,*20

Test uhd usrp probe

cd /usr/local/bin
./uhd_usrp_probe


Hasilnya

..
..
-- Detecting internal GPSDO.... Found a Jackson Labs GPS
-- found
-- Setting references to the internal GPSDO
-- Initializing time to the internal GPSDO
  _____________________________________________________
 /
|       Device: USRP2 / N-Series Device
|     _____________________________________________________
|    /
|   |       Mboard: N210r4
|   |   hardware: 2577
|   |   mac-addr: 00:80:2f:0a:d0:9c
|   |   ip-addr: 192.168.10.2
|   |   subnet: 255.255.255.255
|   |   gateway: 255.255.255.255
|   |   gpsdo: none
|   |   serial: F306BB
|   |   FW Version: 12.3
|   |   FPGA Version: 10.0
|   |   
|   |   Time sources: none, external, _external_, mimo, gpsdo
|   |   Clock sources: internal, external, mimo, gpsdo
|   |   Sensors: gps_gpgga, gps_gprmc, gps_time, gps_locked, gps_servo, 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: WBX v3, WBX v3 + Simple GDB (0x0057)
|   |   |   Serial: F35DB9
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Frontend: 0
|   |   |   |   Name: WBXv3 RX+GDB
|   |   |   |   Antennas: TX/RX, RX2, CAL
|   |   |   |   Sensors: lo_locked
|   |   |   |   Freq range: 68.750 to 2200.000 Mhz
|   |   |   |   Gain range PGA0: 0.0 to 31.5 step 0.5 dB
|   |   |   |   Connection Type: IQ
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Codec: A
|   |   |   |   Name: ads62p44
|   |   |   |   Gain range digital: 0.0 to 6.0 step 0.5 dB
|   |   |   |   Gain range fine: 0.0 to 0.5 step 0.1 dB
|   |     _____________________________________________________
|   |    /
|   |   |       TX DSP: 0
|   |   |   Freq range: -250.000 to 250.000 Mhz
|   |     _____________________________________________________
|   |    /
|   |   |       TX Dboard: A
|   |   |   ID: WBX v3 (0x0056)
|   |   |   Serial: F35DB9
|   |   |   ID: WBX + Simple GDB, WBX v3 + Simple GDB, WBX v4 + Simple GDB (0x004f)
|   |   |   Serial: 0
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Frontend: 0
|   |   |   |   Name: WBXv3 TX+GDB
|   |   |   |   Antennas: TX/RX, CAL
|   |   |   |   Sensors: lo_locked
|   |   |   |   Freq range: 68.750 to 2200.000 Mhz
|   |   |   |   Gain range PGA0: 0.0 to 31.0 step 1.0 dB
|   |   |   |   Connection Type: IQ
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Codec: A
|   |   |   |   Name: ad9777
|   |   |   |   Gain Elements: None 



Test clock 52MHz

Perintah

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

Hasilnya kira-kira

..
..
-- Detecting internal GPSDO.... Found a Jackson Labs GPS
-- found
-- Setting references to the internal GPSDO
-- Initializing time to the internal GPSDO
  _____________________________________________________
 /
|       Device: USRP2 / N-Series Device
|     _____________________________________________________
|    /
|   |       Mboard: N210r4
|   |   hardware: 2577
|   |   mac-addr: 00:80:2f:0a:d0:9c
|   |   ip-addr: 192.168.10.2
|   |   subnet: 255.255.255.255
|   |   gateway: 255.255.255.255
|   |   gpsdo: none
|   |   serial: F306BB
|   |   FW Version: 12.3
|   |   FPGA Version: 10.0
|   |   
|   |   Time sources: none, external, _external_, mimo, gpsdo
|   |   Clock sources: internal, external, mimo, gpsdo
|   |   Sensors: gps_gpgga, gps_gprmc, gps_time, gps_locked, gps_servo, 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: WBX v3, WBX v3 + Simple GDB (0x0057)
|   |   |   Serial: F35DB9
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Frontend: 0
|   |   |   |   Name: WBXv3 RX+GDB
|   |   |   |   Antennas: TX/RX, RX2, CAL
|   |   |   |   Sensors: lo_locked
|   |   |   |   Freq range: 68.750 to 2200.000 Mhz
|   |   |   |   Gain range PGA0: 0.0 to 31.5 step 0.5 dB
|   |   |   |   Connection Type: IQ
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Codec: A
|   |   |   |   Name: ads62p44
|   |   |   |   Gain range digital: 0.0 to 6.0 step 0.5 dB
|   |   |   |   Gain range fine: 0.0 to 0.5 step 0.1 dB
|   |     _____________________________________________________
|   |    /
|   |   |       TX DSP: 0
|   |   |   Freq range: -250.000 to 250.000 Mhz
|   |     _____________________________________________________
|   |    /
|   |   |       TX Dboard: A
|   |   |   ID: WBX v3 (0x0056)
|   |   |   Serial: F35DB9
|   |   |   ID: WBX + Simple GDB, WBX v3 + Simple GDB, WBX v4 + Simple GDB (0x004f)
|   |   |   Serial: 0
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Frontend: 0
|   |   |   |   Name: WBXv3 TX+GDB
|   |   |   |   Antennas: TX/RX, CAL
|   |   |   |   Sensors: lo_locked
|   |   |   |   Freq range: 68.750 to 2200.000 Mhz
|   |   |   |   Gain range PGA0: 0.0 to 31.0 step 1.0 dB
|   |   |   |   Connection Type: IQ
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Codec: A
|   |   |   |   Name: ad9777
|   |   |   |   Gain Elements: None

Test Benchmark

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

Hasilnya kira-kira

..
..
-- Detecting internal GPSDO.... Found a Jackson Labs GPS
-- found
-- Setting references to the internal GPSDO
-- Initializing time to the internal GPSDO

UHD Warning:
    get_time: ValueError: get_nmea(): no GPRMC message found
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

Testing receive rate 10.000000 Msps on 1 channels
Testing transmit rate 10.000000 Msps on 1 channels

Benchmark rate summary:
  Num received samples:    100107777
  Num dropped samples:     0
  Num overflows detected:  0
  Num transmitted samples: 100229019
  Num sequence errors:     0
  Num underflows detected: 0 

Done!

Referensi

Pranala Menarik

Persiapan

Script

OpenBTS 2.6

OpenBTS 2.8

Multi OpenBTS 2.8

OpenBTS 3.1.x

Ettus E110

Ettus N210

RangeNetworks

GPRS

Briker OpenBTS

FreeSWITCH OpenBTS

Power Amplifier

Lain Lain

Catatan Legal dan Pendukung

Catatan Sejarah

Dokumentasi Video

Perjuangan OpenBTS