Friday 20 June 2014

Installasi ns-allinone-2.33 ke dalam Ubuntu 10.10

Walaupun Ubuntu telah memasuki versi yang lebih terbaru, Ubuntu 10.10 telah dipilih kerana saya mahukan ns dan Evalvid saya berada di dalam satu OS yang sama.  Evalvid telah diinstall seperti pada posting yang lepas.  Leceh kalau ns di OS lain, Evalvid di OS lain pulak.  Kenapa pulak ns-allinone2.33 dipilih untuk digunakan? sebab versi 2.33 ni adalah versi yang paling baru yang boleh compatible dengan EDCA patch (versi ns yang terbaru sewaktu blog ni ditulis adalah versi 2.35).

Masalah sekarang adalah Ubuntu 10.10 masih menggunakan compiler yang lama, manakala ns yang nak saya gunakan ni, iaitu ns-allinone-2.33 pula ditulis menggunakan compiler baru.  maka ada beberapa konfigurasi yang perlu dilakukan supaya ns-allinone-2.33 compatible dengan Ubuntu 10.10.   Langkah-langkahnya ditunjukkan di bawah.

LANGKAH 1:  Download/ install library yang diperlukan
Ubuntu 10.10 sudah tidak disokong lagi.  Maka untuk update library Ubuntu 10.10, sourcelist mesti dikonfigurasi.  Boleh rujuk posting yang lepas.
sudo apt-get install g++ autoconf automake make libtool patch xgraph libx11-dev libxmu-dev libxmu-headers libxt-dev build-essential
sudo apt-get install gcc-4.4 g++-4.4

LANGKAH 2:  Download ns-allinone-2.33

wget http://nchc.dl.sourceforge.net/sourceforge/nsnam/ns-allinone-2.33.tar.gz


LANGKAH 3:  Untar (Decompress) ns-allinone-2.33.tar.gz

Pastikan ns-allinone-2.33.tar.gz telah diletakkan ke dalam folder yang anda mahukan.  Dalam kes ini, saya letakkan dalam /home/najwan

tar xvf ns-allinone-2.33.tar.gz

LANGKAH 3:  Edit file configure
gedit /home/najwan/ns-allinone-2.33/otcl-1.13/configure
Cari:
Linux*)
SHLIB_CFLAGS="-fpic"
SHLIB_LD="ld -shared"
SHLIB_SUFFIX=".so"

Tukar kepada:

Linux*)
SHLIB_CFLAGS="-fpic"
SHLIB_LD="gcc -shared"
SHLIB_SUFFIX=".so" 

LANGKAH 3:  Edit file ranvar.cc
gedit /home/najwan/ns-allinone-2.33/ns-2.33/tools/ranvar.cc
Cari:
if (alpha_ < 1) {
   double u = rng_->uniform(1.0);
   return GammaRandomVariable::GammaRandomVariable(1.0 +      
alpha_, beta_).value() * pow (u, 1.0 / alpha_);  
}


Tukar kepada:
if (alpha_ < 1) {
   double u = rng_->uniform(1.0);
   return GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);
}

LANGKAH 4:  Edit file nakagami.cc
gedit /home/najwan/ns-allinone-2.33/ns-2.33/mobile/nakagami.cc
Cari:

if (int_m == m) {
resultPower = ErlangRandomVariable::ErlangRandomVariable(Pr/m, int_m).value();
} else {
resultPower = GammaRandomVariable::GammaRandomVariable(m, Pr/m).value();
}

Tukar kepada:

if (int_m == m) {
resultPower = ErlangRandomVariable(Pr/m, int_m).value();
} else {
resultPower = GammaRandomVariable(m, Pr/m).value();
}


LANGKAH 5:  Edit file tcl8.4.18/unix/Makefile.in

gedit /home/najwan/ns-allinone-2.33/tcl8.4.18/unix/Makefile.in

Cari:
CC = @CC@ 
Tukar kepada:
CC = @CC@-4.4

LANGKAH 6: Edit file ns-2.33/Makefile.in
gedit /home/najwan/ns-allinone-2.33/ns-2.33/Makefile.in

Cari:
CC = @CC@ 
CPP = @CXX@

Tukar kepada:
CC = @CC@-4.4
CPP = @CXX@-4.4


LANGKAH 7:  Install ns-allinone-2.33
cd ns-allinone-2.33
./install




Sekarang, sepatutnya ns-allinone-2.33 boleh diinstallasi dengan lancar.

Tuesday 17 June 2014

Installasi Evalvid ke dalam Ubuntu 10.10 Maverick Meerkat

Untuk mensimulasi video frame I, P dan B ke dalam environment NS-2, ada beberapa tools yang perlu kita install dahulu termasuklah encoder/ decoder untuk convert video kita kepada frame-frame tersebut.  Tool set ini dibangunkan oleh penyelidik di Eropah dan dinamakan sebagai Evalvid.

Evalvid boleh diinstall ke dalam Ubuntu 10.10.  Saya cuba mencari kaedah untuk install Evalvid ke dalam Distro Linux yang lain atau Ubuntu versi yang lebih terkini tetapi gagal.  Adalah sukar sebenarnya untuk menggunakan Ubuntu 10.10 kerana ianya sudah tidak lagi disokong.  Malahan, untuk install Evalvid dan NS-2, kita mesti modify beberapa konfigurasi Ubuntu 10.10 tersebut supaya boleh download, update dan install library yang diperlukan.

Bagaimanapun, setelah mencari di merata-rata web, forum, mailist, dibawah merupakan langkah-langkah installasi Evalvid ke dalam Ubuntu 10.10 yang telah saya kumpulkan dan susun mengikut turutan.  Dalam proses ini, beberapa masalah telah dijumpai tetapi penyelesaiannya juga telah ditulis di bahagian bawah page ini.

LANGKAH 1:  Modify sourcelist Ubuntu 10.10.
Ini adalah supaya Ubuntu boleh mencari server yang sepatutnya untuk download library yang diperlukan.

sudo vi /etc/apt/sources.list

Dalam vi:
:%s/archive/old-releases/g:%s/cl\.//g:wq

* jika ada error, gunakan us berbanding cl

$ sudo apt-get update
$ sudo apt-get upgrade




LANGKAH 2:  Download/ Install pre-requisites
sudo apt-get install ffmpeg 
sudo apt-get install zlib1g-dev xulrunner-1.9.2-dev libfreetype6- dev libjpeg62-dev libpng12-dev libopenjpeg-dev libmad0-dev libfaad-dev libogg-dev libvorbis-dev libtheora-dev liba52-0.7.4- dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libxv-dev x11proto-video-dev libgl1-mesa-dev x11proto-gl-dev linux-sound-base libxvidcore-dev libwxbase2.8-dev libwxgtk2.8- dev wx2.8-headers libssl-dev libjack-dev libasound2-dev libpulse-dev libsdl1.2-dev dvb-apps


LANGKAN 3:  Download/ Install pre-requisites
sudo apt-get install libssl0.9.8
sudo apt-get install zlib
*Mungkin jumpa error:


Error:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package zlib

Penyelesaian:
wget http://www.zlib.net/zlib-1.2.3.tar.gz
tar -zxf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make
sudo make install
------------------------------------------------



LANGKAH 4:  Download Gpac
wget http://nchc.dl.sourceforge.net/project/gpac/GPAC/ GPAC%200.4.5/gpac-0.4.5.tar.gz 

wget http://nchc.dl.sourceforge.net/project/gpac/GPAC%20ex tra%20libs/GPAC%20extra%20libs%200.4.5/gpac_extra_libs-0.4.5.tar.gz


LANGKAH 5:  Configure Gpac
tar -zxf gpac-0.4.5.tar.gz
tar -zxf gpac_extra_libs-0.4.5.tar.gz
cd gpac_extra_libs/
cp -r * ../gpac/extra_lib
cd ../gpac


LANGKAH 6:  Install Gpac
chmod +x configure
./configure
make lib
sudo make apps
make install lib
make install

*Untuk test sama ada MP4Box dah di install, taip:
which MP4Box.  
Output sepatutnya: /usr/bin/MP4Box

sudo apt-get install --reinstall libgpac-dev


LANGKAH 7:  Download Evalvid
Pilih salah satu versi yang ingin digunakan

wget http://www2.tkn.tu-berlin.de/research/evalvid/EvalVid/evalvid- 2.7.tar.bz2
wget http://www2.tkn.tu-berlin.de/research/evalvid/EvalVid/evalvid- 2.6.tar.bz2
wget http://www2.tkn.tu-berlin.de/research/evalvid/EvalVid/evalvid- 2.5.tar.bz2
wget http://www2.tkn.tu-berlin.de/research/evalvid/EvalVid/evalvid- 2.4.tar.bz2


LANGKAH 8:  Install Evalvid
sudo ./configure

* Mungkin jumpa error

Error:
bash: ./configure: No such file or directory

Penyelesaian:
Boleh skip langkah ni. Tak penting.
----------------------------------------------------------------------------------------------------------------------------------

sudo make

* Mungkin jumpa error

Error
In file included from read.c:6:
def.h:6: error: #elif with no expression
make: *** [read.o] Error 1

Penyelesaian
gedit def.h
replace #elif with #else
save


----------------------------------------------------------------------------------------------------------------------------------
sudo make install

EVALVID TELAH PUN DI INSTALL.  Command seperti MP4Box, psnr dan lain-lain sudahpun boleh digunakan.