網頁

2011年9月8日 星期四

2011.09.08 NS-3的奇幻旅程 on Windows XP

先說明一下這篇,然後也希望網路上若有高手看到我的問題,

且知道如何解決希望能告訴我是哪個環節出了差錯。

這篇是依照我安裝的順序所寫的,以用來記錄自己在安裝過程中,

是否有哪個步驟是錯的,或者順序上有問題以致於造成NS-3無法順利運行的原因

因為是在Windows XP 之下進行安裝NS-3

所以,需要使用Unix-Like,而Cygwin正是Unix-Like,且可安裝在Windows XP

安裝方法是使用NS-3官方網站所提供的ns-3-tutorial.pdf來進行的

由於對於整個系統的運作模式並不是太清楚,只憑著教學裡面的順序來操作

教學文件裡是英文敘述,所以著實的有點頭大,但也不是全看不懂

只是看了後面忘了前面就有點囧了。





--

先說我第一次做錯的經歷,一開始要安裝就看到教學裡告訴我要用Mercurial版本管理工具

來下載NS-3,這時我還沒安裝Cygwin,所以也未想到前面有說要在Unix-Like底下做

上網稍微做了一下安裝Mercurial的功課之後就開始著手安裝了

所以就Mercurial網站上下載MSI封裝檔來下載

安裝過程無疑就是Next, Next, Finish,

然後還要安裝TortoiseHg,這個是由Tortoise為Mercurial所創建的視窗介面管理工具

下載TortoiseHg 2.1.3 with Mercurial 1.9.2 - x86 Windows這個版本

安裝過程一樣是Next和Finish

完成這階段後會看到右下角出現圖示如下

TortoiseHg Overlay Icon Server
 
Mercurial 在安裝後最好先進行設定,否則會不能進行 commit 的動作,

設定時必須設定 %HOME% 這個路徑,然後在 %HOME% 路徑下建立一個 Mercurial.ini 檔,

接著在 Mercurial.ini 檔中加入使用者資訊,以及像 Proxy 等資訊,

如此才能正常的使用 Mercurial


Windows XP 當中設定 HOME 環境變數的方法,

是在「開始/控制台/系統/進階/環境變數」當中按下新增,如下圖所示。

設定環境變數
 
在上圖中,我們將 HOME 變數設定到 C:\HG\ 這個目錄中,

因此我們必須在電腦中建立此目錄,然後再於此目錄中建立一個名為 Mercurial.ini 的文字檔,

並加入設定內容,像是使用者資訊,以及像 Proxy 等資訊,以下是我的設定檔內容。

檔案:C:\HG\Mercurial.ini
[ui]
username = WCJuan CYCU
[http_proxy]
host = proxy.cycu.edu.tw:3128
 
由於我的學校具有 proxy 管制,因此一定要設定 http_proxy host 資訊,

一般使用 ADSL 或無線網路者是不需要設定 http_proxy 的。

但是 ui (User Interface Control) 中的 username 則是一定要設定的,

否則將會在後續的 commit clone 的動作中遭到失敗的命運。

 然後使用命令提示字元開啟的畫面如下

 看起來應該是有安裝成功

做的簡單的測試,測試是否能成功從Mercurial網站上取回一個名叫Hello的專案
成功取得Hello專案
接著因為記得之前看過NS-3使用的兩個語言,一個是Python另一個是C++

C++我有VS 2010了,所以來安裝Python

一樣到官網去下載,仍然是英文的,國際語言是無可避免的。

也稍微做了一點安裝Python的功課

然後下載3.2.1版的MSI封裝檔

一樣是Next和Finish
然後設定環境變數

Python設定環境變數
測試Python是否運作正常

有三種方式可以使用Python

分別是命令提示字元、Python(command line)和Python GUI IDE,全都可以正常啟用。

--

接著終於可以開始使用Merurial來下載NS-3了

鍵入

cd C:\HG\

mkdir repos

cd repos

hg clone http://code.nsnam.org/ns-3-allinone

cd ns-3-allinone

download.py

download的情形
在「Get PyBindGen」和「Get NSC」的部分有點問題

PyBindGen的部分,我的解讀是藉由網路下載的線路有問題,所以沒載到,
 
也因此這部分是可能無法使用的。

NSC的部分,這部份似乎是跟Mercurial有關,下載沒有問題,

但是xt_mark.h和xt_MARK.h產生碰撞,應該是有兩個一樣的檔案的問題,

不過打開C磁碟槽去資料夾底下看,並沒有發現兩個檔案,有點奇怪

一樣它告知我可能此項目無法正常使用。

我假設我已經在先前安裝了Mercurial和Python了,應該是沒問題才對。

於是我先不管這些訊息,鍵入

build.py --enable-examples --enable-tests 

結果它跳出一個視窗要我選怎啟動的程式,然後我就知道這肯定是python沒安裝的問題

只是也在這時候我從另一個網站想起了它必須在Unix-Like的環境下使用,

如不想另外灌Linux系統的話,也可以使用VMware,這也是我後來選擇的方式之一。

另外還要提一下,文件裡面有提到羅技的產品可能會使Cygwin或MinGW當掉

須盡量避免掉。

因此,轉向下載Cygwin來使用。

--

安裝Cygwin(最新版1.7.9-1)一開始實在很囧,因為我用學校網路下載Cygwin的Package,

因為懶得一個一個挑,所以就選了全部來下載,結果竟然跑到99%的時候,

跳出「Download Incomplete,Try again?」 的訊息,且即使Try again結果還是一樣

簡直就是無窮迴圈了

猜測可能有被學校網路擋下來了,所以就用宿舍的網路來下載,很順利的完整載下來

然後再帶來LAB安裝,順利的完成Cygwin的安裝。

安裝的Packages
Cygwin安裝完成
安裝過程中我有注意看到裡面有安裝Python和Mercurial的套件

所以我假設應該是能夠順利得到我所要的結果吧!

一樣重複剛剛用Hg下載的過程一樣

Cygwin 下載NS-3
結果似乎比剛剛更不妙,它告訴我Cygwin不支援PyBindGen和NSC!

這樣的結果雖然削減了我許多的戰力,但仍然不能灰心啊!

改從NS-3的網站上直接下載它的source檔來builld

我下載了ns-allinone-3.12.1這個版本

檢查相依的工具

./waf -d debug configure

Build

./waf

./waf
這結果顯示,不支援!?

很是糟糕

然後試了

./test.py -c core

./waf --run hello-simulator

test
第一行指令的部分和文件裡所描述的結果不同,怎麼會通通都是零?

而Hello專案結果則是正常。

這樣的安裝下來,花了我許多的時間,這樣的結果,我的猜測是,

只有部分是可運行的,但我所需要的部分看起來是沒有安裝成功,

一個無法確定是否可運行的物件,怎能確定之後的研究是否正確,

所以我覺得轉攻Linux來嘗試。

使用VitualBox來安裝。

沒有留言:

張貼留言