En los últimos meses y como ya os conté en el post sobre Redes de sensores inalámbricos (Wireless Sensor Networks) estoy trabajando en mi Proyecto Fin de Carrera. Este post incluirá los pasos que debemos seguir para la instalación de ns2.34 en Ubuntu 11.10. Asimismo incorporaré una serie de enlaces en los que se explica detalladamente como instalarlo en versiones anteriores.
Actualmente hay muchos investigadores trabajando en redes de sensores inalámbricos puesto que su campo de aplicación es amplísimo y de ahí que multitud de universidades, estados y empresas a lo largo y ancho del planeta estén destinando grandes sumas de dinero a desarrollar esta tecnología.
NS2 es un simulador de redes basado en eventos discretos muy utilizado en investigación a lo largo de los últimos años para cualquier protocolo de red. Al ser muy popular y eso unido a que se trata de software libre hace que tenga una gran acogida y que haya multitud de protocolos de cualquier tipo implementados y con soporte en este simulador. Por eso que yo personalmente me decanté por esta elección para la realización de mi PFC.
Como desventajas citar que es muy inestable arrojando multitud de errores inesperados y también que para la depuración en esta herramienta debes usar depuradores externos relegándote a un nivel primitivo.
NS2 no es ni mucho menos la única herramienta para simulación que se está empleando en WSN y tenemos OMNeT++, con un entorno más moderno y que incorpora depurador, de ahí que haya cada día más proyectos de investigación desarrollados usando este software.
Desde el lado de software propietario tenemos OPNET, pero precisamente el hecho de que no sea libre hace que no posea para WSN tantos protocolos implementados como los dos anteriores.
Vista esta pequeña introducción a NS2 y debido a la ausencia en castellano de tutoriales para su instalación me he animado a escribir los pasos que debemos seguir para la instalación de NS2.34 en Ubuntu 11.10.
1.- Instalación de los ficheros de desarrollo para Windows W y del compilador g++, necesario para ns2.
sudo apt-get install xorg-dev g++ xgraph
2.- Corregir el error en la vinculación de otcl mediante la edición de la línea 6304 en otcl-1.13/configure de manera que quede así:
SHLIB_LD="gcc -shared"
donde antes teníamos:
SHLIB_LD="ld -shared"
3.- A continuación, editamos el fichero ns-2.34/tools/ranvar.cc y cambiamos la línea 219 donde tenemos
return GammaRandomVariable::GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);
y la sustituimos por:
return GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);
4.- Luego, cambiamos las líneas 183 y 185 en el archivo s-2.34/mobile/nakagami.cc y ponemos:
resultPower = ErlangRandomVariable(Pr/m, int_m).value();
y
resultPower = GammaRandomVariable(m, Pr/m).value();
5.-Añadimos una línea después de la línea 64 en ns-2.34/mac/mac-802_11Ext y ponemos:
#include stddef.h
6.-Ahora compilaremos usando la orden
./install
. Sin embargo, puede ocurrir que la orden ns no se pueda ejecutar todavía. Si tienes un error que ha sido de este tipo *** buffer overflow detected ***. Entonces necesitamos realizar lo siguiente para que la instalación termine con éxito:
6.a Instalar gcc-4.4 y g++-4.4 incluyendo sus dependencias, para ello usamos el siguiente comando:
$ sudo apt-get install gcc-4.4 g++-4.4
6.b Cambiamos la línea 270 en tcl8.4.18/unix/Makefile.in y ponemos:
CC = gcc-4.4
en lugar de:
CC = @CC@
7. Instalamos usando en comando
./install
en la carpeta ns-allinone-2.34.
8. Una vez que la instalación ha sido un éxito, añadimos las rutas al fichero ~/.bashrc
Para ello abrimos un editor de texto, por ejemplo gedit.
$ gedit ~/.bashrc
9. Añadimos las siguientes líneas a dicho fichero.
# LD_LIBRARY_PATH OTCL_LIB=/home/usuario/ns-allinone-2.34/otcl-1.13 NS2_LIB=/home/usuario/ns-allinone-2.34/lib X11_LIB=/usr/X11R6/lib USR_LOCAL_LIB=/usr/local/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB # TCL_LIBRARY TCL_LIB=/home/usuario/ns-allinone-2.34/tcl8.4.18/library USR_LIB=/usr/lib export TCL_LIBRARY=$TCL_LIB:$USR_LIB # PATH XGRAPH=/home/usuario/ns-allinone-2.34/bin:/home/usuario/ns-allinone-2.34/tcl8.4.18/unix:/home/usuario/ns-allinone-2.34/tk8.4.18/unix NS=/home/usuario/ns-allinone-2.34/ns-2.34/ NAM=/home/usuario/ns-allinone-2.34/nam-1.14/ PATH=$PATH:$XGRAPH:$NS:$NAM
10. Para que dichos cambios, surtan efecto inmediatamente, insertamos:
$ source ~/.bashrc
Si tenéis otra distribución de Linux los pasos son ligeramente diferentes, para ello os dejo estos enlaces:
Instalación NS2 Ubuntu 10.10
Instalación NS2 Ubuntu 11.04
Para la realización de este tutorial me he basado en este enlace.
Me atrae el esquema del sitio. Te la elaboraron o utilizaste algo ya pre-disenado?