ubuntu 16.04上ns2+nam+GT-ITM安装笔记
因工作需要,着手搭建ns+nam+GT-ITM环境,在网上看了一些帖子,用了一天时间安装调试,现在做一个小的总结,希望给做类似工作的人有一些借鉴。
目标:在Ubuntu16.04虚拟机上安装ns2.35+nam+GT-ITM
步骤:
Step1-资源下载
VMware:http://www.vmware.com/products/player/playerpro-evaluation.html
Ubuntu:http://cn.ubuntu.com/download/
ns-2.35集成包(包含nam和GT-ITM):https://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz/download
tcl/tk版本下载:https://sourceforge.net/projects/tcl/files/Tcl/
Step2-准备NS安装环境
首先在VMware中安装Ubuntu16.04虚拟机,安装完成后运行终端,输入以下命令更新系统:
sudo apt-get update #更新源列表
sudo apt-get upgrade #更新已经安装的包
sudo apt-get dist-upgrade #更新软件,升级系统
然后安装ns2晕行时需要的三个依赖包,命令如下:
sudo apt-get install build-essential
sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev #for tcl and tk(执行此命令后注意查看tcl和tk的版本号,我的是8.5.19)
sudo apt-get install libxmu-dev libxmu-headers #for nam
Step3-安装NS
将下载的ns-allinone-2.35.tar.gz压缩包解压到“/home/用户名/”目录下,可以用“tarxvfz ns-allinone-2.35.tar.gz”命令或者图形化操作,然后进入文件夹,查看tcl和tk的文件夹是否与之前安装的版本一致,如果不一致之后安装就会出现版本冲突错误。因此需要下载与安装相同的版本替换现有的文件,例如我安装的是8.5.19,而解压出的是8.5.10,因此需要下载tcl8.5.19和tk8.5.19替换tcl8.5.10和tk8.5.10文件夹中的文件。
更改ns-allinone-2.35/ns-2.35/linkstate目录下的ls.h文件,将其第137行中 {erase(baseMap::begin(), baseMap::end()); }修改为 { this->erase(baseMap::begin(),baseMap::end()); },然后保存文件。
在在终端中进入ns-allinone-2.35文件夹,运行install安装程序:
cd ns-allinone-2.35
./install
Step4-配置环境变量
在终端中进入用户目录“/home/用户名”,运行gedit ~/.bashrc命令,打开.bashrc文件,然后在文档最后加入一下环境变量:
export NS_HOME=/home/用户名/ns-allinone-2.35
exportPATH=$PATH:$NS_HOME/bin:$NS_HOME/tcl8.5.10/unix:$NS_HOME/tk8.5.10/unix
export LD_LIBRARY_PATH=$NS_HOME/otcl-1.14:$NS_HOME/lib
export TCL_LIBRARY=$NS_HOME/tcl8.5.10/library
其中的路径根据自己的实际情况修改,修改完成后保存文件。
Step5-验证NS
重启终端,输入ns,出现%,说明ns2安装成功,否则继续在stp4中修改环境变量,此时请勿根据提示使用sudoapt-get install ns2命令安装。
Step6-安装nam并测试
终端进入nam目录并运行命令,如下:
cd ns-allinone-2.35/nam-1.15
./configure –with-tcl-ver=8.5
make
make install
命令行输入nam弹出nam console说明nam安装成功。
最后运行一个小例子查看安装结果。命令如下:
cd ns-allinone-2.35/ns-2.35/tcl/ex/
ns simple.tcl
如ns和nam完全安装正确,则弹出动画演示框。
Step7-安装GT-ITM并测试
在ns-allinone-2.35/gt-itm/sgb2ns/目录中找到sgb2ns.c文件,将其中105行“\t$nsduplex-link-of-interfaces $n(%d) $n(%d) $linkBW %dms DropTail\n”修改为“\t$nsduplex-link $n(%d) $n(%d) $linkBW %dms DropTail\n”。
然后在gt-itm/src和gt-itm/sgb2ns目录下分别执行make命令,最后将/gt-itm/bin所在目录添加到PATH环境变量中(同Step4),方便调用itm。
测试例子:
在/gt-itm/docs目录中生成一个t1.txt文件,文件内容如下:
ts 1 47
30 0
120 3 1.0
420 3 0.6
在终端中调用这个文件:
cd ns-allinone-2.35/gt-itm/bin
itm t100.txt
调用后生成一个t1.txt-0.gb文件,在运行以下命令:
sgb2ns t1.txt-0.gb t1.tcl
这样就生成了一个ns2格式的t1.tcl文件,如需要查看这个文件,需再写一个tcl的文件,内容如下:
set ns [new Simulator]
set nf [open out.nam w]
$ns namtrace-all $nf
source t1.tcl
create-topology ns node 1.5Mb
$ns run
命名为nam_show.tcl,运行如下命令调用这个文件:
ns nam_show.tcl
之后生成一个out.nam文件,通过命令namout.nam,就能看到生成的拓扑图了。
ubuntu 16.04上ns2+nam+GT-ITM安装笔记相关推荐
- Ubuntu 16.04上源码编译和安装pytorch教程,并编写C Demo CMakeLists.txt
本文首发于个人博客https://kezunlin.me/post/54e7a3d8/,欢迎阅读最新内容! tutorial to compile and use pytorch on ubuntu ...
- 如何在Ubuntu 16.04上使用ProxySQL缓存优化MySQL查询
The author selected the Free Software Foundation to receive a donation as part of the Write for DOna ...
- Ubuntu 16.04上安装SkyEye及测试
说明一下,在Ubuntu 16.04上安装SkyEye方法不是原创,是来自互联网,仅供学习参考. 一.检查支持软件包 gcc, make, vim(optional), ssh, subversion ...
- 如何在Ubuntu 16.04上使用MySQL 5.6配置Galera集群
原作者:梅丽莎安德森 转载翻译:https://www.digitalocean.com/community/tutorials/how-to-configure-a-galera-cluster- ...
- 如何在Ubuntu 16.04上创建多节点MySQL集群(MySQL-Cluster)
翻译转载:https://www.digitalocean.com/community/tutorials/how-to-create-a-multi-node-mysql-cluster-on-ub ...
- [Python] Ubuntu 16.04 上安装 python3.7 和 pip 并配置虚拟环境
文章目录 Ubuntu 16.04 自带 python 2.7 和 python 3.5 安装 python3.7 修改软链接 python3 -> python3.7(非必需) 安装 pip ...
- 关闭防火墙linux 16.04,如何在Ubuntu 16.04上配置和设置防火墙
在本文中,我们将学习–如何在Ubuntu 16.04上配置和设置UFW(防火墙),UFW代表"不复杂的防火墙",它充当IPTABLES的接口,从而简化了防火墙的配置过程,对于防火墙 ...
- python3.5安装教程linux_安装Python 3.6在Ubuntu 16.04上
在Ubuntu 16.04上安装Python 3.6并不是一件顺利的事,它和Ubuntu 14.04安装python 3.5有很大的不同. 首先需要PPA源: sudo add-apt-reposit ...
- 在 Ubuntu 16.04上安装 vsFTPd
在 Ubuntu 16.04上安装 vsFTPd Ubuntu vsFTPd 关于 vsFTPd vsFTPd 代表 Very Secure File Transfer Protocol Daemon ...
最新文章
- http://blog.csdn.net/xingfuzhijianxia/article/details/6433918
- 网络推广营销教大家有关移动端网站优化更受用户欢迎的技巧!
- vue3+TypeScript封装echarts5组件
- hibernate 调试_Hibernate调试–查找查询的来源
- 如何在android进行ltp测试,Android系统完整性度量架构IMA-EVM
- 相约金陵丨7月9日,云和恩墨大讲堂 · 南京站邀您共论数字化转型实践
- 嵌入式开发之davinci---IPIPE、IPIPEIF and ISIF这三者有什么区别
- Python(三):数
- Hadoop权威指南:知识梳理(一)
- 离散数学---循环群,左陪集,子群
- linux模拟系统宕机,Linux系统宕机的处理方法
- 你理解的精益可能是错的!——从源头重新解读精益
- oeasy教您玩转vim - 59 - # 编辑总结
- android 静音接口,android 静音方法
- 通过BACnet物联网关实现楼宇自动化的物联网解决方案
- 机器学习在算法交易中的应用现状
- Linux学习笔记(三.文件内容命令其他命令)
- 模拟浏览器操作程序(数据结构课设)
- lcg_magic算法笔记:反转单链表
- 数据库基本结构SQL语句
热门文章
- netty中的粘包和半包
- 使用D3.js构建实时图形
- qt 子窗口写到线程就卡死_微信白屏卡死?
- fastjson 报错:com.alibaba.fastjson.JSONObject cannot be cast to xxxx
- AOP(四)之After增强处理
- OSChina 双十一乱弹 ——来自单身狗的哀鸣
- 【官宣】传智教育使命升级!
- 正能量团队的人和事--传递正能量
- 大连英语培训百家雅思老师分享英语四六级四六级提分技巧
- php 上传图片 裁剪,jQuery+PHP实现上传裁剪图片