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/configureCari:
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.ccCari:
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.ccCari:
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
LANGKAH 6: Edit file ns-2.33/Makefile.in
Cari:
CC = @CC@
Tukar kepada:
CC = @CC@-4.4
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
Sekarang, sepatutnya ns-allinone-2.33 boleh diinstallasi dengan lancar.
cd ns-allinone-2.33
./install
Sekarang, sepatutnya ns-allinone-2.33 boleh diinstallasi dengan lancar.