Chinaunix首页 | 论坛 | 博客
  • 博客访问: 710649
  • 博文数量: 112
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 1192
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-12 16:46
文章分类

全部博文(112)

文章存档

2009年(4)

2008年(108)

我的朋友

分类: 系统运维

2008-04-02 19:48:08

2008-03-16 10:29:16
标签:杂谈
 本来这篇文章应该是昨天写的,但是昨天把手头拖欠很久了老师布置的任务做了一些,就推到今天来写,一个礼拜的研究成果,一定要写些东西才对得起这一周的时间,中午明白为什么做完一项工作领导都要写总结,真正做了东西即使领导不要求你写你也会自己想写的!这是体会一。
真的发现人不逼到份上是干不出什么的,一旦有些力量爆发真的什么都可以做到,体会二。
努力+坚持=成功,这是体会三,就是成功的两个充要条件,缺一不可!
下面转入正题,我希望我的这篇文章能在众多类似文章中为菜鸟提供一些帮助,因为我也是从菜菜鸟到现在的菜鸟的
 
在老师的催促下,不得不研究一下无线传感器网络组网协议了,自己定的题目是改进现有leach协议,因为要想自己做出来一个协议,犹如在太阳系创造一个星球,好像不可能吧所以在现有协议上的改进,应该比较显示,而且开题报告已经确定是这个方向了,老师要是再让我做定位我和他拼了
 
对于无线传感器网络的仿真模拟器有很多,大家最熟悉的matlab也可以做,但是本人对这个东西不懂(其实我对什么都不懂),网上搜索的结果好像用ns2做的比较多,因此也没考虑,搜了一个步骤开始做了起来,但是结果和很多人抱怨的一样,10天的,半个月的,一个月都搞不出来的很正常,我在一周弄好已经算很快了,幸好碰到高人,而且我觉得网上步骤对于菜菜鸟来说,有几个地方没有说明白,算是误导,可能也会有人犯和我同样的错误,如果大家知道了,就像窗户纸一样一捅就破,只需一天时间全部搞定。下面我想把整个安装过程和其中要注意的地方,也就是自己的经验写下来,供大家交流!
【黑色字迹是字迹的话,蓝色字迹是特别需要注意的地方!】
 
首先向大家提供两个网页,是专门教安装的,大家可以作为参考,一下的步骤也是来自这上面
(英文)
(中文)
(leach协议部分比较详细)
【以下图片部分来自互联网】
这里提醒大家一下,你的电脑里需要有这样的一些东西,VC或者VC++,因为ns2是在VC的环境下编写的,因此没有这个,ns2会不好使(有人说只要把gcc升级了就可以,但我不懂这个地方,还是按的vc++);另外需要按一个代码编辑器,我用的是UltraEdit,建议你在安装之前把这写都按好,一面之后出问题!
现在开始:
一、安装cygwin
这是一个虚拟平台,本身ns2实在linux下开发的,但由于很多人对linux不熟悉,因此需要装cygwin来模拟linux这个环境,但就是因为不是真正的linux,使得安装会有问题。
首先下载cygwin,下载地址:,点击Install or Update now (using setup.exe)
下载完后,执行setup.exe
点下一步
这里面两个页面给的选项不一样,我选的第一个,下一步
 
 这里可以选择安装目录,建议大家使用默认的C:\,其他两项也用默认值即可,下一步
可以自己选择下载cygwin所需要的文档目录,我也是放在C盘下了,这个好像用不着,只要你知道在哪就可以,下一步
 

选择网络连接方式。第一种是直接连接,第二种使用IE5的设定,第三种使用HTTP/FTP Proxy的方式。网上建议学校学生使用第三种,我也在学校,但用第一种,可能国内和台湾的学校不一样吧。

选择一个下载路径,例子上的这个学校我以前试过,挺快,但后来这个就没有了,其他地址曾经有一个网站都介绍过是什么地方,我不记得了,大家可以试试,好像结尾是tw(台湾的网站),都挺快的,你试一下如果速度不快就退到上一步重新选择,不定哪个就贼快!下一步
这个地方有点麻烦,对于刚开始的可能不太明白,我尽量讲清楚。
注意看右上红框的地方。先点右上角的View,使得Category变成Full。左下我也用红框圈出来了,这个图片上面没有,正常一半咱们用的在这个地方有一个选项,前面是一个可选的对号,好像是隐藏什么东西,我没注意看,把这个对号勾掉,在最后一栏Package就出来要选的东西了,否则下一项很多人会找不到在哪,我就犯过这个错误。
安装leach协议需要选11项,XFree86-base XFree86-binXFree86-progXFree86-libXFree86-etcmakepatchperlgccgcc-g++gawkgnuplottargzip
可能做其他的这个地方选择的会有不一样的,应该依情况而定。这些东西就在Package下面对应的,例如要选择XFree86-base,就点它前面对应的Skip,使Skip变成4.3.0-11。这里说一下,当时我按的时候,一个高人建议我把带gcc-的全按上,我也这样做了,反正没出什么毛病,如果大家怕有意外可以选上。还有人说可以把所有的选项都选上,直接在最上面的ALL选择状态安装,这个我不推荐,因为要是全按,在你网络保持连通的情况下估计一天都够呛,如果中途掉线,前功尽弃!下一步
正在安装,请等待,如果你只选了11项,大概20分钟到半小时,如果你全选了,真佩服你的耐心!
 安装好以后,默认两个对号都选上,完成,cygwin安装完毕。这个过程其实挺简单的,但我最开始在按这个的时候就花了能有两三天的时间,关键的是那11项不知道去哪找,主要是那个隐藏项的对号没勾掉,这里大家要注意!
二、安装ns2
我用的是ns2.27版本的,现在最高好像到了2.32版本,之前由于2.27没安装成功,安了2.32,确实安成功了,但leach协议好像都是2.27版本的,在ns2.30版本以上安装好像有问题,所以推荐大家,如果你要按leach协议的话,建议你安ns2.27,而2.28 2.29好像也可以,有人试验成功过,2.30版本以上的请不要安装了,如果你就想试试,那我是完全支持的!
双击桌面上的cygwin图标,打开,
出现一下类似DOS的一个窗口

第一次执行的时候,会根据使用者和电脑名称,在cygwin的home目录下产生一个使用者的文件夹,并放入环境变量等相关文档(.bashrc、.bashrc_profile和.inputrc)。

以我自己的为例,我是在windows XP系统下,用户名为Administrator,则cygwin会在家目录下建立Administrator目录(/home/Administrator),对应路径为C:\cygwin\home\Administrator

这张图片是我自己电脑里的,大家可以看一下

下载ns2,地址:

在这里大家要看到,下载好的是一个类似压缩文件的,这里一定不要用右键的解压缩,而是要用命令来解压,这个文件要放在C:\cygwin\home\Administrator目录下,这个是我的例子,大家看上图,就看到了,那个压缩的文件就是,放到这里就可以了。

下面我们要使用命令解压,在刚才的cygwin窗口里,输入tar xvfz ns-allinone-2.27.tar.gz,回车

看到一堆东西在走,走完之后跳出到输入命令的状态,就说明你解压完了,而且在C:\cygwin\home\Administrator下面对了一个解压好的文件夹,然后要进入ns-allinone-2.27目录下,这里使用的命令和DOS的命令一样,在cygwin中输入

cd ns-allinone-2.27回车

发现那行绿字后面多了一行黄字,就是说明你现在在ns-allinone-2.27目录下,然后在这个目录下安装ns2,还是在cygwin中输入命令

./install回车

等待,有一堆东西在执行,如下图

这里会有一个选择的东西,要选择y,回车,继续安装,这个要等很长时间,不到一个小时,如果安装顺利的话,安装好的会出现下图这个样子,就说明安装成功了

 安装完之后先别急着高兴,这里需要设置环境参数,本人在这个地方由于理解错误,造成了后段进行停滞,由高人指点,才发现自己有多笨,这里一定要和菜菜鸟们说清楚,以免发生类似我的笑话。

参考网页上面都说,请编辑家目录下的.bashrc,把ns2相关的路径加入PATH中

export NS_HOME=‘pwd’/ns-allinone-2.27

export PATH=$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.8:$NS_HOME/lib:$LD_LIBRARY_PATH

export TCL_LIBRARY=$NS_HOME/tcl8.4.5/library

【第一句的‘pwd’要换成自己的对应目录,如我的是export NS_HOME=/home/Administrator/ns-allinone-2.27,这个要根据自己的改

就是在这个设置环境变量的时候,我开始以为是在cygwin中输入这些命令,到最后才知道,其实应该是用代码编辑器打开你的.bashrc文件,然后把这4句话写到.bashrc文件的最后一行,然后保存,这里大家要自己一个一个自己打,因为你复制粘贴的可能会多一个或少一个空格,好像都有影响,我给大家看一下

其实应该是这个样子的,这四句就是这上面从111-114行的东西,而115.116行的命令在后面会遇到,大家到这里先写入这4句,然后保存。

这样基本就安装正确了,然后下面可以检查一下ns2是否安装正确

参考网页上说有一个检查方法,但是时间很长,我这里不推荐,我推荐那个出现例子的方法。

在cygwin中的ns-allinone-2.27目录下,如果你不知道怎么进入这个目录下,就先把cygwin窗口关掉,然后再打开,然后还是cd ns-allinone-2.27回车,之后输入startxwin.bat回车,稍等,出来一个Xwin窗口在这个窗口中输入cd ns-allinone-2.27/ns-2.27/-ns-tutorial/examples回车,然后输入ns example2.tcl回车

之后会跳出一个例子

然后按右图上面的播放键,会看到有运行的过程

这样就说明你安好了,挺有成就感的吧,已经2/3了。

三、安装mit

这步也就是安装leach协议了,下载leach 2.27,地址:获取mit.tar.gz。【到现在一共下载了三个东西,大家尽量将下载好的文件备份一下,以免出现错误重装的时候再重新下载】

将mit.tar.gz放在ns-allinone-2.27/ns-2.27目录下

这个图是我的,一样的,这种压缩文件,不要右键解压,还是用命令解压的。

打开cygwin,进入到ns-allinone-2.27/ns-2.27目录下,就是如果你是重新打开的cygwin,那么输入命令cd ns-allinone-2.27/ns-2.27回车,便进入到ns-allinone-2.27/ns-2.27目录下了。

下面解压mit.tar.gz。

输入命令gunzip mit.tar.gz回车
        tar -xvf mit.tar回车

等待一会,又是一堆东西在执行,等跳出来以后,需要修改ns-allinone-2.27/ns-2.27目录下的makefile文件,这里还是要注意,是用代码编辑器打开makefile文件,这个文件在C:\cygwin\home\Administrator\ns-allinone-2.27\ns-2.27里

添加-DMIT_uAMPS到DEFINE列表中;
 添加-I./mit/rca -I./mit/uAMPS到INCLUDES列表中;
 将下列内容添加到gaf/gaf.o \这一行之前
 mit/rca/energy.o mit/rca/rcagent.o \
 mit/rca/rca-ll.o mit/rca/resource.o \
 mac/mac-sensor-timers.o mac/mac-sensor.o mit/uAMPS/bsagent.o \
这里给个参考

或者大家看我的图

DEFINE和INCLUDES在60和62行

这行是60行DEFINE的结尾修改完的

这个是62行INCLUDES后面修改完的,大家也是自己打,不要复制粘贴

OBJ_CC = \这行在149,里面找到gaf/gaf.o \这句,在它的前面打mit/rca/energy.o mit/rca/rcagent.o \
 mit/rca/rca-ll.o mit/rca/resource.o \
 mac/mac-sensor-timers.o mac/mac-sensor.o mit/uAMPS/bsagent.o \

也就是202-204行,下面是我的例子

这些修改好之后保存,回到cygwin窗口,输入make clean清除以前的编译结果,等待一会,执行完之后,再输入nohup make 2>error.log >make.log &进行编译,这里可能会出现错误,按照错误提示对应的文件和对应的行,自己修改,没有错误就可以编译成功。

修改test文件,和刚才的makefile文件同目录

还是用代码编辑器打开这个文件,修改的结果是
#!/bin/bash
  cd tcl/ex
  ns wireless-demo-csci694.tcl
  sleep 2
  cd ../../
  ./leach_test
好像是第6行的位置串了一下,反正这是最后结果

添加leach协议运行所需的环境参数,还是这个文件夹里,找到lech_test文件

用代码编辑器打开它,在ns tcl/ex/wireless.tcl  \前增加以下语句
  RCA_LIBRARY=mit/rca
  export RCA_LIBRARY
  uAMPS_LIBRARY=mit/uAMPS
  export uAMPS_LIBRARY

37-40句,见图

之后保存,然后向上返回两级目录,到C:\cygwin\home\Administrator下,找到最开始的.bashrc,添加环境参数

用代码编辑器打开它,在最后面加入

export RCA_LIBRARY=$(NS的安装目录)/mit/rca
export uAMPS_LIBRARY=$(NS的安装目录)//mit/uAMPS

我的就是输入

export RCA_LIBRARY=$home/Administrator/ns-allinone-2.27/ns-2.27/mit/rca
export uAMPS_LIBRARY=$home/Administrator/ns-allinone-2.27/ns-2.27/mit/uAMPS

 

然后保存,这样leach基本就是按好了

在cygwin中,进入到ns-2.27目录下(会进了吧),输入./test回车,会看到运行结果

看到没,这个就是说明你成功了,读读上面的内容,反正我是不明白什么意思,还需继续学习。

这就是我一周的成果,也不知道以后能不能用上,也不明白其中的道理,但好像我是会了,不管怎样,只要坚持就好。这个过程我是经历了从55555555到哈哈的过程,其中也搅扰了他人,在此很不好意思的感谢一下,继续努力,偶是需要鼓励和支持还有安慰的,而不能激我,老子吃软不吃硬,牙口不好

好了,文章写完了,希望这个能对初次安装的人有所帮助,可以减少一些时间,如果有什么不明白的地方可以问我,但太高深的我就不行了,推荐给研究ns2的朋友们一个群,我就是在上面得到帮助的,群号是:16961937,群主仁镜是为高手,在这里要特别感谢仁镜的帮助,还要感谢珠珠,风的轻吟等各位,希望大家一起努力,多多交流经验和心得,一起学习,共同努力

阅读(4020) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

25829012008-05-06 10:36:50

ns2