How to install latest nsmiracle.

nsmiracle is apparently stuck at version 1.2.2 published in 11-07-2008 as shown on his official website.

but that’s not true because is still in development and a currently updated version can be retrieved by using subversion (svn).

let’s see how to proceed.

1) install subversion if miss it and litbool too. libtool is an automated tool that create makefile and configures. open terminal and type

sudo apt-get install subversion libtool

2) download the latest version (actually rev 97) from nsmiracle repository

svn co --username nsmiracle-dev-guest --password nsmiracleguest https://telecom.dei.unipd.it:/tlcrepos/nsmiracle-dev/trunk

3) go inside trunk: main is the nsmiracle latest release and inside addon folder there are sandbox, umts, wimax and other supplementary modules
4) copy main folder and paste wherever you want (i put it inside ns-allinone directory). i suggest to rename main folder to something that you can easily remember (“nsmiracle” for example)
5) open terminal and inside nsmiracle directory type in order (configure need your actually paths. i left mine just for example)

$ ./autogen.sh
$ ./configure --with-ns-allinone=/home/lotti/Scrivania/ns/ns-allinone-2.34 --prefix=/home/lotti/Scrivania/ns/ns-allinone-2.34 --disable-static --with-dei80211mr=/home/lotti/Scrivania/ns/ns-allinone-2.34/dei80211mr-1.1.4
$ make
$ make install

6) now you’re ready to use nsmiracle

if you need to use also addons here there is an example

1) copy the wanted addon directory inside nsmiracle directory
2) open a terminal and go to the addon freshly pasted directory
3) type (always use your actual paths!):

$ ./autogen.sh
$ ./configure --with-ns-allinone=/home/lotti/Scrivania/ns/ns-allinone-2.34 --with-nsmiracle=/home/lotti/Scrivania/ns/ns-allinone-2.34/nsmiracle
$ make

that’s all.

run some samples to check if everything works. (some samples are broken – most errors are on loading libraries because of wrong paths)

51 thoughts on “How to install latest nsmiracle.

  1. jfsanchez

    It is the problem:

    root@jimmy-laptop:/home/ns-allinone-2.34/nsmiracle/main# sh autogen.sh
    configure.ac:31: installing `./install-sh’
    configure.ac:31: installing `./missing’
    aodv/Makefile.am: installing `./depcomp’

  2. jfsanchez

    I have a problem that I can not solve, could you help me please:

    root@jimmy-laptop:/home/ns-allinone-2.34/nsmiraclerep/addons/umts/samples# ns umts_cbr.tcl
    couldn’t load file “libMiracle.so”: libMiracle.so: cannot open shared object file: No such file or directory
    while executing
    “load “[dynlibname ${name}]””
    (procedure “dynlibload” line 4)
    invoked from within
    “dynlibload Miracle”
    (file “umts_cbr.tcl” line 65)

    There is in most library….I do not know what the problem.
    Thank’s

  3. Lotti Post author

    the script can’t load the library probably because the path isn’t correct.

    see trough other miracle example (maybe that with load and nor dynlibload) or adjust the path manually.

  4. jfsanchez

    @Lotti

    Could you tell me how to make the correct installation path? I have performed the installation to nsmiracle as shown in post
    Thank’s

  5. Sterii

    Hello, I have the following problem:
    checking for ns-allinone installation… FAILED!
    configure: error: Could not find NS headers. Is –with-ns-allinone set correctly?
    Although my ns-2 works correctly, I am unable to install nsmiracle

  6. Lotti Post author

    check the path passed to –with-ns-allinone and –prefix and –with-dei80211mr

  7. Sterii

    All paths are valid and unfortunately ./configure doesn't work.
    I use Ubuntu 10.04.

  8. Lotti Post author

    paste here what you exactly digit on terminal when you're trying to configure nsmiracle

  9. Sterii

    ./configure –with-ns-allinone=/home/ster/NS-my/ns-allinone-2.34 –prefix=/home/ster/NS-my/ns-allinone-2.34 –disable-static –with-dei80211mr=/home/ster/NS-my/ns-allinone-2.34/dei80211mr-1.1.4
    checking for a BSD-compatible install… /usr/bin/install -c
    checking whether build environment is sane… yes
    checking for a thread-safe mkdir -p… /bin/mkdir -p
    checking for gawk… gawk
    checking whether make sets $(MAKE)… yes
    checking for g++… g++
    checking whether the C++ compiler works… yes
    checking for C++ compiler default output file name… a.out
    checking for suffix of executables…
    checking whether we are cross compiling… no
    checking for suffix of object files… o
    checking whether we are using the GNU C++ compiler… yes
    checking whether g++ accepts -g… yes
    checking for style of include used by make… GNU
    checking dependency style of g++… gcc3
    checking whether make sets $(MAKE)… (cached) yes
    checking build system type… i686-pc-linux-gnu
    checking host system type… i686-pc-linux-gnu
    checking for gcc… gcc
    checking whether we are using the GNU C compiler… yes
    checking whether gcc accepts -g… yes
    checking for gcc option to accept ISO C89… none needed
    checking dependency style of gcc… gcc3
    checking for a sed that does not truncate output… /bin/sed
    checking for grep that handles long lines and -e… /bin/grep
    checking for egrep… /bin/grep -E
    checking for fgrep… /bin/grep -F
    checking for ld used by gcc… /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld… yes
    checking for BSD- or MS-compatible name lister (nm)… /usr/bin/nm -B
    checking the name lister (/usr/bin/nm -B) interface… BSD nm
    checking whether ln -s works… yes
    checking the maximum length of command line arguments… 1572864
    checking whether the shell understands some XSI constructs… yes
    checking whether the shell understands "+="… yes
    checking for /usr/bin/ld option to reload object files… -r
    checking for objdump… objdump
    checking how to recognize dependent libraries… pass_all
    checking for ar… ar
    checking for strip… strip
    checking for ranlib… ranlib
    checking command to parse /usr/bin/nm -B output from gcc object… ok
    checking how to run the C preprocessor… gcc -E
    checking for ANSI C header files… yes
    checking for sys/types.h… yes
    checking for sys/stat.h… yes
    checking for stdlib.h… yes
    checking for string.h… yes
    checking for memory.h… yes
    checking for strings.h… yes
    checking for inttypes.h… yes
    checking for stdint.h… yes
    checking for unistd.h… yes
    checking for dlfcn.h… yes
    checking whether we are using the GNU C++ compiler… (cached) yes
    checking whether g++ accepts -g… (cached) yes
    checking dependency style of g++… (cached) gcc3
    checking how to run the C++ preprocessor… g++ -E
    checking for objdir… .libs
    checking if gcc supports -fno-rtti -fno-exceptions… no
    checking for gcc option to produce PIC… -fPIC -DPIC
    checking if gcc PIC flag -fPIC -DPIC works… yes
    checking if gcc static flag -static works… yes
    checking if gcc supports -c -o file.o… yes
    checking if gcc supports -c -o file.o… (cached) yes
    checking whether the gcc linker (/usr/bin/ld) supports shared libraries… yes
    checking whether -lc should be explicitly linked in… no
    checking dynamic linker characteristics… GNU/Linux ld.so
    checking how to hardcode library paths into programs… immediate
    checking whether stripping libraries is possible… yes
    checking if libtool supports shared libraries… yes
    checking whether to build shared libraries… yes
    checking whether to build static libraries… no
    checking for ld used by g++… /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld… yes
    checking whether the g++ linker (/usr/bin/ld) supports shared libraries… yes
    checking for g++ option to produce PIC… -fPIC -DPIC
    checking if g++ PIC flag -fPIC -DPIC works… yes
    checking if g++ static flag -static works… yes
    checking if g++ supports -c -o file.o… yes
    checking if g++ supports -c -o file.o… (cached) yes
    checking whether the g++ linker (/usr/bin/ld) supports shared libraries… yes
    checking dynamic linker characteristics… GNU/Linux ld.so
    checking how to hardcode library paths into programs… immediate
    checking for NS_LDFLAGS and NS_LIBADD type… none needed
    checking for ns-allinone installation… FAILED!
    configure: error: Could not find NS headers. Is –with-ns-allinone set correctly?

    I hope so long comment can be removable:)

  10. Lotti Post author

    mmm don't know what can it be… actually i'm using 10.04 too, but it isn't a clean install, i have updated from 9.10.

    so… what about restart from ns2 installation? 🙂

  11. Lotti Post author

    this morning i formatted my laptop and installed ubuntu 10.04, ns2, nsmiracle with this two guides without any problem!

  12. ashwini

    Hi,

    I installed nsmiracle correctly, so far this is what the running examples are telling. I was trying to install umts addon. I copied the folder from addon directory to main directory, run ./autogen.sh and then run the
    ./configure –with-ns-allinone=/home/ashwini/tools/ns-allinone-2.34 –with-nsmiracle=/home/ashwini/tools/ns-allinone-2.34/nsmiracle

    and got stuck with the error , unable to locate the nsmiracle.
    configure: error: Could not find nsmiracle,
    is –with-nsmiracle set correctly?

    when I looked into the ns-allinone-2.34 directory , i had not find any folder name nsmiracle.

    Can you sort that out? Also I want to know is there any extension for LTE in ns2 or nsmiracle ?

    Thanks,
    Ashwini

  13. Lotti Post author

    Hi ashwini!
    first: you have to copy the main directory of nsmiracle inside the nsallinone and rename it to nsmiracle if you want to use my example as is.

    this is the only way to get a nsmiracle directory inside the nsallinone. then do the autogen&configure&make&makeinstall of nsmiracle directory inside nsallinone.

    after that, copy the addon inside the nsallinone/nsmiracle and to the autogen&configure&make.

    leave the directory tree downloaded with svn as is. don’t use directly those directory to compile/make/install. copy them as i did.

    tell me if you encounter other problems, and no, never heard about LTE in ns2, i don’t even know what LTE is!

  14. Pingback: nsmiracle 1.2.2 installation steps « Openbook

  15. Rajeshwari

    Hi i am new to nsmiracle .
    I installed miracle and wimax addon. i tried running example tcl programs ,but i got the following errors!!!
    please help me solving this problem!

    rajeshwari@rajeshwari-laptop:~/ns-allinone-2.34/nsmiracle/samples$ ns bpsk_aloha.tcl
    invalid command name “Module/MMac/ALOHA”
    while executing
    “Module/MMac/ALOHA create _o17 ”
    invoked from within
    “catch “$className create $o $args” msg”
    invoked from within
    “if [catch “$className create $o $args” msg] {
    if [string match “__FAILED_SHADOW_OBJECT_” $msg] {
    delete $o
    return “”
    }
    global errorInfo
    error “class $…”
    (procedure “new” line 3)
    invoked from within
    “new Module/MMac/ALOHA”
    (procedure “createNode” line 8)
    invoked from within
    “createNode 1”
    (file “bpsk_aloha.tcl” line 158)

    please help me i am struck and dont know how to debug this !!!
    Thanks in advance!!!

  16. Lotti Post author

    i think that this sample script is broken, same output here. try to ask them by their mailing list!

  17. Rajeshwari

    ok !! i’l mail them!!!
    thanks for your reply !
    plz let me know if u get solution:)

  18. batuhan

    hi Lotti.

    I installed Ns-2.33 correctly, then I followed your steps. Here is the error I encounter when I try to open first sample called “ns link_with_errors_cbr.tcl”

    simulation. floating point exception.

    I’m going mad and mad cause I’ve tried everything, except for the way will lead me to the solution. 🙁

    Can you help me?

  19. Lotti Post author

    hi! i have freshly installed ns2 with nsmiracle @ office’s computer and i don’t have problems running that script..

    have you modified it? floating point exception is a common message for errors like “divided by 0”

  20. batuhan

    Hi Lotti. I fixed it, thanks. 🙂

    But, I have another question. If you can help me, I appreciate it.

    While I was trying to make this simple example: http://telecom.dei.unipd.it/ns/miracle/doxygen/basic_samples.html

    I’ve faced this error:

    couldn’t load file “libMiracleSandbox.so.0.0.0”: libMiracleSandbox.so.0.0.0: cannot open shared object file: No such file or directory
    while executing
    “load libMiracleSandbox.so.0.0.0”

    (It finds libMiracle.so.0.0.0 and libTrace.so.0.0.0 file, but libMiracleSandbox…)

    I’ve installed addons/sandbox according to your way(./autogen.sh + configure.. + make)

    So, what am I missing? Should I also make “make install” under nsmiracle/addons/sandbox ?

  21. Lotti Post author

    @batuhan
    ehehe 🙂 i always put the “addons” directly inside nsmiracle directory! so i don’t have to correct “include”/load path of libraries!

  22. ome

    hi lotti – just wondering if you are working with Cross layer messaging in ns-miracle?

  23. Lotti Post author

    yes, but only to know what is the right sap id to senddown or sendup packets to the right layer on the same level. i just found that example over the ns-miracle library and reused.. so i don’t know how cross layer messages work.

  24. Michelle

    Thanks for the useful information about nsmiracle. I used the steps provided and add on wimax miracle directory in nsmiracle.
    However when I tried to make, I encountered the following error.
    initlib.cc: At global scope:
    initlib.cc:52: error: conflicting declaration ‘packet_t PT_WIMAXBS’
    /home/ns-allinone-2.34/ns-2.34/common/packet.h:186: error: ‘PT_WIMAXBS’ has a previous declaration as ‘const packet_t PT_WIMAXBS’
    initlib.cc: In function ‘int Wimax_Init()’:
    initlib.cc:80: warning: deprecated conversion from string constant to ‘char*’
    initlib.cc:80: error: assignment of read-only variable ‘PT_WIMAXBS’
    initlib.cc:81: warning: deprecated conversion from string constant to ‘char*’
    initlib.cc:82: warning: deprecated conversion from string constant to ‘char*’
    make[2]: *** [libwimax_la-initlib.lo] Error 1
    make[2]: Leaving directory `/home/miracle/main/wimax/src’
    make[1]: *** [all] Error 2
    make[1]: Leaving directory `/home/miracle/main/wimax/src’
    make: *** [all-recursive] Error 1
    FYI, I installed ns-2.34 which include the latest wimax module from NIST. Is there any way for me to debug or incorporate the add on but with latest wimax module?

  25. Lotti Post author

    i didn’t understand where do you encountered the problem.. on the NS2.34 installation or on NSMIRACLE library installation? however last revision of NSMIRACLE (rev 111) and his wimax module compile with NS-2.34 without problems.

  26. ome

    do you happen to know how to access a particular module metric/ parameter, without modifying the actual module – ie. how to get the metric id? many thanks in advance!

  27. nans

    hi all i am new to this group.I am trying to adopt wimax in ns2 miracle.

    can anyone suggest how to start? plz help this is urgent..

  28. Rodrigo

    This tutorial is perfect.

    I have used ubuntu 11.10 with ns-allinone-2.35.

    Where can i find documentation, for example for the addon wimax?

    thanks in advance

  29. guna

    @Lotti
    hi sir,

    before that u sent me fhmipv6 patch thanks for your response, actually me and my friends trying to install ns2.31 on ubuntu 10.04 since 1 month but not good results came yet.this is the error came when i install and validate….

  30. Valerio Riva Post author

    @guna
    i didn’t understand what error appears on your console! please be more detailed!

  31. Buddhika

    Hi,
    I’m new to Ns Miracle. I installed the Ns Miracle and some of the samples files working with my installation( ex:-link_with_errors_cbr.tcl ) but tcpsample.tcl which is available under samples/sample1 gives me a error.
    couldn’t load file “libMiracleSandbox.so”: libMiracleSandbox.so: cannot open shared object file: No such file or directory
    while executing
    “load libMiracleSandbox.so”
    i have setup other library paths according to my installation and i was not able to find the “libMiracleSandbox.so” file anywhere in my hard disk. i installed the sandbox using the procedure given above. Please help me to solve this problem

    Thanks

  32. Petrika

    Hi guys i have basically the same problem as described here:
    “I installed Ns-2.33 correctly, then I followed your steps. Here is the error I encounter when I try to open first sample called “ns link_with_errors_cbr.tcl”

    simulation. floating point exception.

    I’m going mad and mad cause I’ve tried everything, except for the way will lead me to the solution. ”

    Can you help me?”

  33. Valerio Riva Post author

    It’s been a lot that i don’t work with nsmiracle, but i remember that 4 or 5 examples didn’t work. Try an other example before thinking about a faulty installation.

  34. Petrika

    I tried different examples, the problem persist. in another example the error is the following:
    invalid command name “Module/MMac/ALOHA”
    …..
    The problem might be the path althought i rechecked and it seems ok. i saw the same problem above and maybe i get a reply from they who solved them.
    B.R

  35. Petrika

    Tryed other examples,mostly the problem of floating point persist..i think it has something to fix because batuhan had the same problem and fixed it,but i cant get a contact of him

  36. Petrika

    Solved, the problem was at the ld library path,i was defining another one ..Following this tutorial use lib of ns allinone also for ns miracle now floating error exception disapered..
    BR

  37. Manjula

    While installing nsmiracle in ns-allinone-2.33, the configure command is giving the following error, so how to debug it.
    initlib.cc: In function ‘int Miraclecbr_Init()’:
    initlib.cc:64: error: ‘addPacket’ is not a member of ‘p_info’
    make[3]: *** [libmiraclecbr_la-initlib.lo] Error 1
    make[3]: Leaving directory `/home/user/nslab/ns-allinone-2.33/nsmiracle/cbr’
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/home/user/nslab/ns-allinone-2.33/nsmiracle/cbr’
    make[1]: *** [all] Error 2
    make[1]: Leaving directory `/home/user/nslab/ns-allinone-2.33/nsmiracle/cbr’
    make: *** [all-recursive] Error 1

  38. mai

    please, i need documentation describe more about nsmiracle
    i read the documentation (MIRACLE How-To) and i need to know more about how to make two interface in tcl script in nsmiracle
    if any one can help me to find documentation describes the tcl script in nsmiracle ????

  39. Valerio Riva Post author

    @Manjula
    Please, install NS2 and NS-Miracle using only the tutorial provided here:
    http://www.valerioriva.it/2009/12/install-ns-allinone-2-34-on-ubuntu-9-10/
    http://www.valerioriva.it/2009/12/how-to-install-latest-nsmiracle

    PS: the NS2 v2.33 is outdated. try v2.34 (see my link) or the latest v2.35

    @mai
    Hi! i’m sorry to say that there’s no such “friendly” documentation for NS-MIRACLE. you have to dig it by yourself. Or you can ask to their official mailing list!
    https://mail.dei.unipd.it/mailman/listinfo/nsmiracle-users

    also the doxygen documentation can help you, but you have to read every single class and their methods!
    http://telecom.dei.unipd.it/ns/miracle/doxygen/

  40. Manjula

    Sir Thank you for your reply. I have installed ns-2.35 and as per the installation procedure of nsmiracle I have installed it. But I am not able to find the path for libMiracleSandbox.so.0.0.0 even after adding addons folder to nsmiracle and following 3 steps autogen + configure + make. So can you suggest me how should I proceed. Thank you.

  41. hamid

    hello
    first: I install ns-allinone-2.33 correctly
    second: I download trunk and copy main folder of it inside ns-allinone-2.33 and then rename it with nsmiracle.
    three: I inside in directory /home/hamid/ns-allinone-2.33/nsmiracle and type ./autogen.sh and ./configure –with-ns-allinone-2.33=/home/hamid/ns-allinone-2.33 –prefix=/home/hamid/ns-allinone-2.33 –disable -static –with-dei80211mr=/home/hamid/ns-allinone-2.33/dei802.11mr-1.1.4 and make and make install . I install nsmiracle correctly but I will use sandbox of addons. therefore I add sandbox folder to ns-allinone-2.33/nsmiracle/sandbox and doing
    ./autogen.sh
    ./configure –with-ns-allinone=/home/hamid/ns-allinone-2.33 –with-nsmiracle=/home/hamid/ns-allinone-2.33/nsmiracle
    make
    and run sampel1.tcl of it. but libMiracleSandbox.so.0.0.0 find not and it is not, can you say where is it?
    It is not in home/hamid/ns-allinone-2.33/lib
    please reply to me.
    tanks alot

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.