实验需要用到 ns2 和 VanetMobiSim 来做仿真,折腾了几天总算是完成了,把详细的过程记录在下面,供大家参考。
NS2 安装过程
下载 NS2
首先在网址:https://www.isi.edu/nsnam/ns/ns-build.html 下载 ns-allinone-2.35.tar.gz,下载完成后手动解压到 home/NS2/
将文件夹 ns-allinone-2.35 更名为 ns,方便操作。下图是解压后的路径,供大家参考。
NS2 安装
1. 执行以下命令
#安装依赖包:
sudo apt-get install build-essential
sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev
sudo apt-get install libxmu-dev libxmu-headers
2. 修改 ns/ns-2.35/linkstate/ls.h 中代码的第137行
将
void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
修改为
void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }
3. 安装合适的 gcc 版本
ls /usr/bin/gcc* #查看系统已经安装的 gcc 版本
一般来说 ubuntu 18.04 自带的编译器版本为 gcc 7,ns2 不支持这么高的版本,需要把它修改为 gcc 5。
sudo apt-get install gcc-5 gcc-5-multilib g++-5 g++-5-multilib #安装gcc 5
安装完成后输入:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50
sudo update-alternatives --config gcc
会看到 3 个候选项,当前值前面会带 [*] ,我们选择gcc 5 对应的项就可以了。
同理设置一下 g++。
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 40
sudo update-alternatives --config g++
进入我们 NS2 的安装目录,执行命令开始安装。
sudo ./install
配置环境变量
打开 home/用户名下的./bashrc 文件添加如下内容:
export PATH="$PATH:/home/用户名/NS2/ns/bin:/home/用户名/NS2/ns/tcl8.5.10/unix:/home/用户名/NS2/ns/tk8.5.10/unix"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/用户名/NS2/ns/otcl-1.14, /home/用户名/NS2/ns/lib,"
export TCL_LIBRARY="$TCL_LIBRARY:/home/用户名/NS2/ns/tcl8.5.10/library"
打开一个新的终端,输入:ns,如果出现:%,就是安装成功了。如果提示 “command not found” 就重新启动试试。
VanetMobiSim 安装过程
安装 Java
请安装 sun jdk,openjdk 可能会出现问题。为了防止后续实验出现奇奇怪怪的问题,我这里选用的是JDK7。
1. 下载
去Oracle 官网找一下下载链接就好,可能需要注册一个账号。
这里我选择了 jdk-7u80-linux-x64.tar.gz。
安装
sudo mkdir /usr/lib/jvm
sudo tar zxvf ./jdk-7u80-linux-x64.tar.gz -C /usr/lib/jvm
cd /usr/lib/jvm
sudo mv jdk1.7.0_80/ java-7-sun
配置环境变量
vi /etc/environment
添加
export JAVA_HOME=/usr/lib/jvm/java-7-sun
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
输入命令使配置文件生效:
source /etc/environment
配置默认JDK
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-sun/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-sun/bin/javac 300
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java-7-sun/bin/jar 300
sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java-7-sun/bin/javah 300
sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java-7-sun/bin/javap 300
sudo update-alternatives --config java
查看安装是否成功
java -versio
安装 ANT
注意:使用命令安装可能会出现一些问题,因此我们手动安装。
1. 到Apache官网下载 ant:http://ant.apache.org/bindownload.cgi
2. 解压下载下来的.tar.gz文件:
tar -xf apache-ant-1.9.16-bin.tar.gz
这里有个要注意的问题是 1.10 往上的版本不再支持 JDK8 以下的 Java 版本了,所以请下载 1.9.16 版本。
3. 将解压出来的文件移动到 /用户名/ 下:
sudo mv apache-ant-1.9.16 /home/用户名/
4. 配置环境变量
sudo gedit /etc/profile
添加:
export ANT_HOME=/home/song/apache-ant-1.9.16
export PATH=:$ANT_HOME/bin
5. 验证是否安装成功
ant -version
这里如果没有的话需要执行以下命令:
source /etc/profile
如果发现每打开一个终端都要用这条命令可以参考这篇博客解决:
https://blog.csdn.net/washingtin/article/details/121017073
安装 VanetMobiSim
1. 下载源码 VanetMobiSim-1.1.zip,解压后目录 VanetMobiSim-1.1 中的内容为:
jar/
manual/
build.xml
VanetMobiSim-src.jar
VanetMobiSim-samples.jar
mypackages.lst
README
2. 下载 CanuMobiSim 的源码 CanuMobiSim_1_3_4_src.zip,将其解压到 VanetMobiSim-1.1目录中,此时目录内容为:
jar/
manual/
src/
build.xml
VanetMobiSim-src.jar
VanetMobiSim-samples.jar
mypackages.lst
README
3. 进入 VanetMobiSim-1.1 目录,输入以下命令将 VanetMobiSim 对 CanuMobiSim 的扩展部分合并到 CanuMobiSim 源码中:
ant patch
此时当前目录内容为:
jar
manual/
samples/
src/
build.xml
mypackages.lst
README
4. 执行下面命令编译源码并打包成 jar 文件,一切顺利的话最后会有编译成功的提示:
ant all
5. 生成的 VanetMobiSim.jar 就是我们最终需要的可执行文件,运行以下命令运行 example 中的IDM_IM.xml 场景:
cd jar
java -jar VanetMobiSim.jar ../samples/IDM_IM.xml
以上就是在 Ubuntu 18.04.6 LTS 下搭建 ns2 和 VanetMobiSim 仿真环境的全过程。