天天看點

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,就能看到生成的拓撲圖了。