OpenBTS: 2.8 dari SVN Install

From OnnoWiki
Jump to navigation Jump to search

Instalasi Paket Pendukung dan Asterisk

Instalasi paket / library pendukung tambahan

sudo apt-get install autoconf libtool libosip2-dev libortp-dev \
libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang \
asterisk asterisk-mysql

Load GNURadio

sudo ldconfig
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/

Cek apakah USRP GNURadio terinstalasi dengan baik menggunakan

pkg-config --cflags usrp

Harus keluar informasi, misalnya,

-I/usr/local/include 

Jika tidak maka instalasi GNURadio gagal. Cara yang tampaknya baik bisa di baca di Instalasi GNURadio 3.3.0 di Ubuntu 11.10

Download Source Code OpenBTS via SVN

sudo su
cd /usr/local/src
svn co http://wush.net/svn/range/software/public openbts

Hacking Source Code 2.8.0 untuk Clock 64MHz

Untuk clock 64MHz nampaknya kia perlu menghack source code

sudo su
cd /usr/local/src/openbts/openbts/trunk/Transceiver52M

Edit file berikut & kalimat berikut

UHDDevice.cpp:  const double master_clk_rt = 52e6;
USRPDevice.cpp: const double USRPDevice::masterClockRate = 52.0e6;
USRPping.cpp:   RadioDevice *usrp = RadioDevice::make(52.0e6/192.0);

agar menjadi

UHDDevice.cpp:  const double master_clk_rt = 64e6;
USRPDevice.cpp: const double USRPDevice::masterClockRate = 64.0e6;
USRPping.cpp:   RadioDevice *usrp = RadioDevice::make(64.0e6/236.0);

Ubah TransceiverRAD1

sudo su
cd /usr/local/src/openbts/openbts/trunk/TransceiverRAD1

Edit file berikut & kalimat berikut

RAD1Device.cpp:const double RAD1Device::masterClockRate = (double) 52.0e6;
RAD1ping.cpp:  RAD1Device *usrp = new RAD1Device(52.0e6/192.0);
RAD1RxRawPower.cpp:  RAD1Device *rad1 = new RAD1Device(52.0e6/192.0);
rnrad1Core.cpp:  mFpgaMasterClockFreq = 52000000;

Agar menjadi

RAD1Device.cpp:const double RAD1Device::masterClockRate = (double) 64.0e6;
RAD1ping.cpp:  RAD1Device *usrp = new RAD1Device(64.0e6/236.0);
RAD1RxRawPower.cpp:  RAD1Device *rad1 = new RAD1Device(64.0e6/236.0);
rnrad1Core.cpp:  mFpgaMasterClockFreq = 64000000;

Install OpenBTS

Compile & Instalasi OpenBTS

sudo su
cd /usr/local/src/openbts/openbts/trunk
autoreconf -i
./configure --with-usrp1  # digunakan kalau kita pakai xtal 52MHz
make clean
make
make install
cd /usr/local/src/openbts/openbts/trunk/
cp Transceiver52M/transceiver /usr/local/src/openbts/

Instalasi Database Konfigurasi OpenBTS

cd /usr/local/src/openbts/openbts/trunk
sudo mkdir /etc/OpenBTS
rm /etc/OpenBTS/OpenBTS.db
sudo sqlite3 -init ./apps/OpenBTS.example.sql /etc/OpenBTS/OpenBTS.db
.exit

Beberapa catatan minimal yang harus di set dari database OpenBTS

  • GSM.Radio.Band - Set parameter ini untuk menentukan GSM band yang sesuai dengan hardware yang kita gunakan.
  • GSM.Radio.C0 - Ini adalah ARFCN. Set sesuai dengan band yang kita gunakan.
  • Control.LUR.OpenRegistration - Set menggunakan regular expression sesuai denan IMSI dari test phone. Parameter ini memberitahukan OpenBTS untuk tidak me-reject handset karena registration server di bawah tidak me-responds. Sehingga sangat bermanfaat untuk proses debugging dan inisialisasi sistem. Tentang regular expression dapat dibaca di http://en.wikipedia.org/wiki/Regular_expression

Contoh Error Saat Compile OpenBTS

Jika GNURadio tidak terinstalasi dengan baik akan keluar Error berikut

configure: error: Package requirements (usrp > 3.1) were not met:
No package 'usrp' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables USRP_CFLAGS
and USRP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

Alternatif solusinya

  1. Gunakan Gnuradio daro Repository
  2. Gunakan GNURADIO 3.3.0
  3. Masukan PKG_CONFIG_PATH ke .bashrc
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

Instalasi Smqueue

Smqueue dapat di instalasi dengan melakukan langkah berikut

cd /usr/local/src/openbts/smqueue/trunk
autoreconf -i
./configure 
make clean
make 
make install

Selanjutnya, inisialisasi konfigurasi database OpenBTS

cd /usr/local/src/openbts/smqueue/trunk
rm -Rf /etc/OpenBTS/smqueue.db
sudo sqlite3 -init  smqueue/smqueue.example.sql /etc/OpenBTS/smqueue.db
.exit

Instalasi Subscriber Registry

Lakukan

cd /usr/local/src/openbts/subscriberRegistry/trunk/configFiles
sudo mkdir /var/lib/asterisk/sqlite3dir
sudo sqlite3 -init subscriberRegistryInit.sql /var/lib/asterisk/sqlite3dir/sqlite3.db
.exit

Yang agak repot adalah menginstalasi Asterisk Real Time

Instalasi Sipauthserve

Sipauthserve adalah daemon yang memberikan SIP authentication services. Variabel SIP.Proxy.Registration di OpenBTS harus menunjuk pada hostname & port Sipauthserve. OpenBTS harus sudah di buat sebelum membuat Sipauthserve.

Compile Sipauthserve

cd /usr/local/src/openbts/subscriberRegistry/trunk
make

Setup database untuk Sipauthserve

rm /etc/OpenBTS/sipauthserve.db
cd /usr/local/src/openbts/subscriberRegistry/trunk
sqlite3 -init sipauthserve.example.sql /etc/OpenBTS/sipauthserve.db
.exit

Menjalankan OpenBTS

Cek USRP apakah sudah di deteksi sistem operasi

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

Harusnya akan keluar seperti

crw-rw---- 1 root usrp 189, 2 2012-02-22 07:39 003

Cek sambungan antara PC ke USRP

cd /usr/local/src/openbts/openbts/trunk/Transceiver52M
./USRPping

Harusnya keluar


Contoh jika gagal

usrp_open_interface:usb_claim_interface: failed interface 2
could not claim interface 2: Device or resource busy
usrp_basic_rx: can't open rx interface

Lakukan di tiga (3) windows yang berbeda

cd /usr/local/src/openbts/
openbts/trunk/apps/OpenBTS
cd /usr/local/src/openbts/
smqueue/trunk/smqueue/smqueue
cd /usr/local/src/openbts/
subscriberRegistry/trunk/sipauthserve

Referensi

Pranala Menarik

Persiapan Hardware

OpenBTS 2.6

OpenBTS 2.8

Ettus E110

Lain Lain

Catatan Legal dan Pendukung

Catatan Sejarah