Network simulator ns-3.20 설치(tarball 설치)
ns-3이 6lowpan 지원을 한다 하여 이리로 갈아탔다.
설치방법은 나름 쉽다..(중간에 자잘한 에러만 없으면 ㅜ)
스크린샷은 엄청난 귀차니즘으로 안함!!!!!!!!!!
들어가기 전에 미리, tarball 을 이용한 직접설치임을 밝혀둔다.
1. 다운
http://www.nsnam.org여기 들어가서 ns-3.20 (14.08.08기준 가장 최근버전인듯) 다운받기
ns-allinone-3.20.tar.gz
2. 압축풀기
tar -zxvf ns-allinone-3.20.tar.gz3. Prerequisite 설치
뭐 이리 미리 설치하라는게 많은지 모르겠지만..대충 몇 번 재설치 해 본 결과
$sudo apt-get install gcc g++ python
$sudo apt-get install gcc g++ python python-dev
이정도만 있으면 별 에러 안나는거 같다.
4. 빌드하기
ns-3부터는 새로운 waf 라는 builder를 사용하는거 같다.......으어ns-2의 후속이 아닌, 그냥 새로운 시뮬레이터를 생각하면 될 것 같다(문법도 바뀜..)
기존의 tcl언어도 안쓰고 python을 사용한다.
여튼 build를 해야하는데, waf라는 빌더를 configuration 해주어야 한다.
$cd ns-allinone-3.20/ns-3.20
./waf configure --enable-tests --enable-example
./waf shell
대충 이렇게 하면 되는거 같다.
--enable-tests, examples를 해주어야 나중에 ns-3가 제대로 설치되었는지 확인(validation)할 때 용이하다.
ns-2에서는 default로 enable 이었는데 ns-3에서는 default가 disable이므로..
$cd ~/ns-allinone-3.20
$./build.py
5. Eclipse IDE 사용하기
ns는 이클립스 위에서 쓸 수 있다.일단 이클립스 홈페이지에 가서 C/C++용 IDE를 다운받는다.~
workspace는 ns-allinone-3.20으로 설정.
New->C++ project 로 프로젝트를 생성한 후
프로젝트 이름을 ns-3.20으로 한다.
Project type은 Makefile project로, toolchain은 Linux gcc 로 한다.
Next를 누른후, Advance Setting으로 프로젝트 설정에 들어간다.
왼쪽 메뉴에서 C/C++ build 메뉴에 들어간다.
use defauilt build command 에 체크를 풀어주고,
make 대신에 아래와 같이 적어준다
${workspace_loc:/ns-3.20}/waf
build directory는
${workspace_loc:/ns-3.20} 대신에
${workspace_loc:/ns-3.20}/build
라고 적어준다.옆에 behavior 탭에 들어가서,
밑에 build(incremental build): all 로 되어 있는 곳에, all 을 지우고 build라고 적어준다.
그리고 finish를 누르면 끝
6. RUN
환경변수로Run->Run configuration 에 가서 새로운 C++ application configuration을 만든다
C/C++ application 항목에는 browse를 눌러서, 내가 실행하고자 하는 binary를 불러오면 된다(아까 빌드한거)
~/ns-allinone-3.20/ns-3.20/build/examples/tutorial/ns3.20-first-debug
난 일단 이걸로 테스트해보았다. 그냥 패킷 주면 다시 반송하는 기초 튜토리얼 1번이다ㅋㅋ
environment 탭에 가서
new를 눌러, 아래와 같이 추가해준다
name: LD_LIBRARY_PATH
value: ${workspace_loc:ns-3.20}/build
7. 참고
더 많은 자료는http://www.nsnam.org/wiki/Installation
http://www.nsnam.org/wiki/HOWTO_configure_Eclipse_with_ns-3
여기에서 확인할 수 있다. (물론 English)
여튼 대충 끝. ㅠ
댓글남기기