通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  列兵

注册:2006-1-11
跳转到指定楼层
1#
发表于 2010-1-8 15:02:08 |只看该作者 |倒序浏览
近安装了NS2-2.33,由于版本过新,安装过程中出现了很多问题,经过反复试验和总结,终于安装成功,现在记录安装步骤如下,以供参考:(注意,对于NS2-2.33,请严格按照以下步骤安装,因为有些涉及补丁之类的无法正常安装)

1.先去http://www.cygwin.com/下载安装cygwin的最新版本

如果默认安装会安装一些基本的包,但是如果要继续安装NS2需要安装一些必备的包,安装过程中有一个“Select Packages”可以选择备选的安装包,点击“view”按钮,使得后面的状态显示为FULL,然后找到并选中以下必须的包:
gcc
gcc-g++
gnuplot
make
patch
perl
tar
X-startup-scripts
xorg-x11-base
xorg-x11-bin
xorg-x11-devel
xorg-x11-bin-dlls
xorg-x11-bin-lndir
xorg-x11-etc
xorg-x11-fenc
xorg-x11-fnts
xorg-x11-libs-data
xorg-x11-xwin
然后继续安装,cygwin会从你选择的镜像站点下载所需要的包,然后自动进行安装。

2.下载NS2-2.33,建议下载allinone版本,下载下来的文件是ns-allinone-2.33.tar.gz

在cygwin目录下创建目录 /home/yourname/,这里yourname代表你的用户名,可以随便起一个名字,用过Linux的人都知道其实这个就是类似于一个Linux操作系统的目录,然后把这个tar.gz文件拷贝到/home/yourname/目录下,然后使用tar命令进行解压缩,注意:这里不要使用winrar或者winzip进行解压缩,否则安装过程会出错的
使用tar解压缩的命令是: tar zxvf ns-allinone-2.33.tar.gz

然后解压缩后进入目录ns-allinone-2.33,注意:这里要开始打补丁了,由于有个bug,在安装完成以后nam运行是有错误的,所以这里一定要先打补丁才能再开始安装NS2,打补丁的方法如下:
先新建一个文件“tk-8.4.18-tkBind.patch”,用记事本输入这个文件的内容并保存,内容如下:
--- tk8.4.18-orig/generic/tkBind.c 2006-07-21 08:26:54.000000000 +0200
+++ tk8.4.18/generic/tkBind.c 2008-07-05 12:17:10.000000000 +0200
@@ -586,6 +586,9 @@
/* ColormapNotify */ COLORMAP,
/* ClientMessage */ 0,
/* MappingNotify */ 0,
+#ifdef GenericEvent
+ /* GenericEvent */ 0,
+#endif
/* VirtualEvent */ VIRTUAL,
/* Activate */ ACTIVATE,
/* Deactivate */ ACTIVATE,
保存文件后,运行命令: patch -p0 <tk-8.4.18-tkBind.patch
即可完成打补丁
然后输入命令 ./install进行安装
基本上安装2~3个小时

这时还需要修改路径信息,把可执行文件的路径加到PATH环境变量中
在/home/yourname下新建文件.bashrc,这里应该是使用VI或者vim来新建的,输入以下内容:

export NS_HOME=/home/hct/ns-allinone-2.28
export PATH=$NS_HOME/nam-1.11:$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/bin:$PATH
export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/otcl-1.9:$NS_HOME/lib:$LD_LIBRARY_PATH
export TCL_LIBRARY=$NS_HOME/tcl8.4.5/library

.bashrc文件可以用记事本打开,不过最好用UE,因为它是unix格式的文本

3.测试安装是否成功
先exit出当前的cygwin控制台,然后重启一个控制台,定位到目录/home/yourname/ns-allinone-2.33
先查看bin目录下是否存在ns.exe和nam.exe,一般ns安装成功就会存在ns.exe,如果不存在nam.exe表示nam没有编译安装成功,需要进入ns-allinone-2.33\nam-1.13目录下对name进行编译和安装,命令为:./configure && make && make install,如果安装失败可能缺少需要的包,查看错误提示再利用cygwin下载相应的包即可
输入X&启动一个X-server
然后输入xterm -display localhost:0.0启动一个xterm
这里你要准备一个tcl文件,我发现2.33版本里面好像是没有NS2-TOURIAL-example的,所以大家可以自行准备一个tcl文件,这里给出一个示例,你可以用记事本新建一个“sample.tcl”文件,内容如下:
#Create a simulator object
set ns [new Simulator]
#Define different colors for data flows (for NAM)
$ns color 1 Blue
$ns color 2 Red
#Open the NAM trace file
set nf [open out.nam w]
$ns namtrace-all $nf
#Define a 'finish' procedure
proc finish {} {
global ns nf
$ns flush-trace
#Close the NAM trace file
close $nf
#Execute NAM on the trace file
exec nam out.nam &
exit 0
}
#Create four nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
#Create links between the nodes
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
$ns duplex-link $n2 $n3 1.7Mb 20ms DropTail
#Set Queue Size of link (n2-n3) to 10
$ns queue-limit $n2 $n3 10
#Give node position (for NAM)
$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right
#Monitor the queue for link (n2-n3). (for NAM)
$ns duplex-link-op $n2 $n3 queuePos 0.5

#Setup a TCP connection
set tcp [new Agent/TCP]
$tcp set class_ 2
$ns attach-agent $n0 $tcp
set sink [new Agent/TCPSink]
$ns attach-agent $n3 $sink
$ns connect $tcp $sink
$tcp set fid_ 1
#Setup a FTP over TCP connection
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ftp set type_ FTP

#Setup a UDP connection
set udp [new Agent/UDP]
$ns attach-agent $n1 $udp
set null [new Agent/Null]
$ns attach-agent $n3 $null
$ns connect $udp $null
$udp set fid_ 2
#Setup a CBR over UDP connection
set cbr [new Application/Traffic/CBR]
$cbr attach-agent $udp
$cbr set type_ CBR
$cbr set packet_size_ 1000
$cbr set rate_ 1mb
$cbr set random_ false

#Schedule events for the CBR and FTP agents
$ns at 0.1 "$cbr start"
$ns at 1.0 "$ftp start"
$ns at 4.0 "$ftp stop"
$ns at 4.5 "$cbr stop"
#Detach tcp and sink agents (not really necessary)
$ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink"
#Call the finish procedure after 5 seconds of simulation time
$ns at 5.0 "finish"
#Print CBR packet size and interval
puts "CBR packet size = [$cbr set packet_size_]"
puts "CBR interval = [$cbr set interval_]"
#Run the simulation
$ns run

然后保存,在我们新建的那个xterm界面下定位到这个文件,然后ns sample.tcl执行,只要能出现最后的一个nam的灰色的图形,就表示安装成功了!

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-11-16 04:26 , Processed in 0.161298 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部