반응형

OS: Ubuntu 14.04.2 LTS (64-bit)

Eclipse: Eclipse IDE for C/C++ Developers, Mars Release (version 4.5.0)

QualNet: QualNet 5.0.1


QualNet 매뉴얼([QUALNET_HOME]/documentation 아래에 위치)에 보면 윈도우(Windows) 환경에서 MS Visual Studio와 연동해서 개발 환경을 구축하는 방법은 스크린샷과 함께 설명되어 있다.

리눅스 환경에서는 MS Visual Studio가 없는 대신 유명한 Eclipse가 있는데, Eclipse CDT와 연동하는 방법은 매뉴얼에 설명되어 있지 않다. (QualNet 5.2 이하 버전 기준)


그런데 Eclipse와 연동하는 방법이 의외로 간단해서 금방 설정할 수 있다. 자세한 방법은 일본어로 된 QualNet 관련 웹사이트(http://www33.atwiki.jp/ku240/pages/16.html)를 참고하였다.


0. 우선 gcc, g++ 등 C/C++ 컴파일러와 함께 QualNet이 설치되어 있어야 한다.

gcc, g++이 없으면 $ sudo apt-get install build-essential로 gcc, g++ 외에도 개발에 필요한 여러가지 도구와 라이브러리들을 한꺼번에 설치해 두면 편하다.



1. 최신 버전의 Eclipse C/C++을 다운로드 받고 설치한다. 다운로드 받은 압축파일을 적당한 곳에 압축만 풀어 두면 된다.

 - http://www.eclipse.org/downloads/

 - Eclipse IDE for C/C++ Developers

 


2. [QUALNET_HOME] 디렉토리에 가서 "Makefile" 이름의 텍스트 파일을 만들고 아래와 같이 작성한다.

all:

cd main; make -f Makefile

clean:

cd main; make clean -f Makefile

cd 글자 앞에는 반드시 탭문자(tab)를 써서 들여쓰기를 해야 한다.


참고로 [QUALNET_HOME]/main 디렉토리 밑에 gcc, glibc 버전과 32/64비트 여부에 따라 여러가지 Makefile이 구비되어 있으므로, 필요에 따라 구체적인 Makefile을 지정해도 된다. 예를 들면:

all:

cd main; make -f Makefile-linux-x86_64-glibc-2.3-gcc-4.0

clean:

cd main; make clean -f Makefile-linux-x86_64-glibc-2.3-gcc-4.0

cd 글자 앞에는 반드시 탭문자(tab)를 써서 들여쓰기를 해야 한다.



3. File > New > C++ Project 선택하고, 대화상자가 뜨면 아래와 같이 입력한다.

 - Project name: 원하는 이름으로 아무 거나

 - Location: QualNet이 설치된 디렉토리 (QUALNET_HOME의 위치)

 - Project type: Makefile project에서 Empty Project 선택

 - Toolchains: Linux GCC 선택




4. Finish 버튼을 누른다. 

Eclipse에서 초반에 소스코드 파일들 인덱싱을 하고 나면 개발환경이 완료된다. Project Explorer에서 방금 추가한 QualNet 프로젝트 이름에 마우스 오른쪽 버튼으로 클릭하고, Clean Project 또는 Build Project를 선택하면 빌드가 진행된다.

사실은 이클립스에서 빌드하는 것이나 콘솔 터미널에서 [QUALNET_HOME]/main에 가서 make 명령 수행하는 것이나 똑같기 때문에 편한 방법을 쓰면 되고, 무엇보다 리눅스 GUI 환경에서도 윈도우와 마찬가지로 소스코드를 편하게 확인할 수 있는 것이 이득이라고 생각된다.






반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 14.04.2 LTS (64-bit)

QulNet version: 5.0.1


리눅스에서도 QualNet GUI를 쓸 수 있고,

[QUALNET_HOME]/bin/QualNetGUI 파일을 실행하면 된다.

(더블클릭하거나, 콘솔에서 명령어 입력)


그런데 더블클릭해도 아무것도 실행되지 않고, 콘솔에서 시도해 보면 아래와 같은 에러가 나면서 실행이 안될 때가 있다.


user@Linux:~/qualnet/5.0/bin$ ./QualNetGUI 

/home/user/qualnet/5.0/gui/lib/linux64/QualNetGUI: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory


이 때 간단히 libjpeg 라이브러리를 설치하면 해결된다.

$ sudo apt-get install libjpeg62



반응형
블로그 이미지

Bryan_

,
반응형

(환경) QualNet 5.0.1, Windows 7 64bit, Visual Studio 2008


경험으로 볼 때, 리눅스에서는 gcc에서 디버그 옵션을 지정하기 때문에 별다른 설정 없이 그냥 빌드해도 gdb qualnet 명령으로 디버그가 가능했다. 하지만 윈도우 환경에서는 QualNet Makefile에서 기본 설정으로 디버깅 옵션이 꺼져 있다. 매뉴얼에는 runtime efficiency를 위해서 그렇게 했다고 적혀 있다.


윈도우 환경에서 디버깅 옵션을 켜려면, [QUALNET_HOME]\main\Makefile을 열고 아래와 같이 고쳐 준다.

[QUALNET_HOME]\main\Makefile 중에서...


#DEBUG = /Zi  ---------->  DEBUG = /Zi

OPT = /Ox /Ob2  ---------->  #OPT = /Ox /Ob2


만약 main 폴더 안에 Makefile이 없을 경우, 윈도우 버전 및 Visual Studio 버전별로 호환되는 Makefile 예시가 여러 개 있으니(Makefile-windows-vc8, Makefile-windows-x64-vc9 등) 그 중에서 현재 시스템과 호환되는 파일을 복사해서 Makefile로 이름을 변경한다.


추가로, Visual Studio에서 "빌드 > 솔루션 빌드"를 눌렀을 때 수행되는 Makefile은 위의 것이 아니고 [QUALNET_HOME]\Makefile이다. (Programmer's guide에 적힌 visual studio 연동 방법대로 진행한다면 이 위치에 텍스트파일을 만들게 된다.) 그 파일에서 nmake 명령 뒤에 참고하는 파일 이름이 방금 main 폴더에서 새로 복사해서 만든 Makefile인지 확인할 것. 내용이 아래와 같아야 한다.

[QUALNET_HOME]\Makefile

all:

cd main

nmake -f Makefile

rebuild: clean

nmake -f Makefile

clean:

cd main

nmake -f Makefile clean



그리고 Visual Studio에서 다시 빌드하고 나서 "프로젝트 ---> [QualNet 프로젝트 이름] 속성..."에 들어간다.

왼쪽 메뉴에서 "구성 속성 > 디버깅"으로 들어간다.

작업 디렉터리는 실행하고자 하는 시나리오 config 파일이 있는 폴더 위치,

명령 인수에서는 시나리오 config 파일의 이름을 입력한다.



이제 Visual Studio 메뉴에서 "디버그 > 디버깅 시작(F5)" 으로 특정 시나리오에 대해서 디버그할 수 있다.




반응형
블로그 이미지

Bryan_

,
반응형

QualNet 5.0에서 propagation fading model을 None 대신 Rayleigh, Fast Rayleigh 등 다른 것을 선택하고 시뮬레이션을 돌리면  아래 그림과 같이 "PROPAGATION-FADING-GAUSSIAN-COMPONENTS-FILE is missing" 에러가 발생한다.




이 때는 config 파일을 열어서 "Channel Properties" 영역에 아래와 같이 propagation fading model이 필요로 하는 파일을 명시해 주면 되며, 이것은 퀄넷 설치시 테스트용으로 들어 있는 default 시나리오에서 가져올 수 있다.

PROPAGATION-CHANNEL-FREQUENCY[0] 2400000000

PROPAGATION-MODEL[0] STATISTICAL

PROPAGATION-PATHLOSS-MODEL[0] TWO-RAY

PROPAGATION-SHADOWING-MODEL[0] CONSTANT

PROPAGATION-SHADOWING-MEAN[0] 4.0

PROPAGATION-FADING-MODEL[0] FAST-RAYLEIGH

PROPAGATION-LIMIT[0] -111.0

PROPAGATION-MAX-DISTANCE[0] 0

PROPAGATION-COMMUNICATION-PROXIMITY[0] 400

PROPAGATION-PROFILE-UPDATE-RATIO[0] 0.0

PROPAGATION-FADING-GAUSSIAN-COMPONENTS-FILE [QualNet의 home directory]/5.0/scenarios/default/default.fading



또는 QualNet GUI 환경에서 좌측 상단의 Scenario Properties를 눌러서 나오는 대화상자에서 "Channel Properties"에 들어간 후 맨 아래의 "Specify Gaussian Components File" 메뉴 선택을 Yes로 변경하고 default.fading 파일을 선택해 주면 된다.



반응형
블로그 이미지

Bryan_

,
반응형

QualNet License Server는 윈도우용과 UNIX (Linux)용이 있으며, 윈도우에서는 lmadmin, 유닉스 계열에서는 lmgrd를 통해서 실행된다. 윈도우용 라이센스 서버는 설치 및 실행이 비교적 쉽게 되지만, 리눅스에서는 (Ubuntu desktop 12.04 64bit) 잘 안되는 경우가 더러 있다.


경험상, 리눅스에서 라이센스 서버가 실행되지 않는 경우와 해결 방법을 나열해 보겠다.

(Note: 아래 나열된 경우 외의 문제도 충분히 있을 수 있지만 여기서는 Ubuntu를 새로 설치하고 처음 license server를 실행하는 과정에서 겪는 문제들 위주로만 작성하였다.)


1. 32bit 프로그램을 실행할 수 없는 경우

  lmgrd를 쓰는 소프트웨어가 퀄넷 외에도 MATLAB 등 여럿이 있는 것 같은데, lmgrd가 64bit 프로그램이 있는지는 아직 모르겠다. 아무튼 Qualnet에서는 (정확히 말해서 퀄넷 제조사인 Scalable networks에서는) 32bit 버전의 lmgrd를 제공하고 있다. (2013년 3월 19일 기준)

이로 인해 64bit Ubuntu에서 lmgrd가 "no such file or directory" 메세지를 내면서 실행되지 않는 문제가 있는데, 이 때는 예전 포스팅 (http://skylit.tistory.com/entry/Linux-64bit-%ED%94%8C%EB%9E%AB%ED%8F%BC%EC%97%90%EC%84%9C-32bit%EA%B8%B0%EB%B0%98-%EC%8B%A4%ED%96%89-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%B4-%EC%8B%A4%ED%96%89%EB%90%98%EC%A7%80-%EC%95%8A%EC%9D%84-%EB%95%8C)에서 작성한 것과 같이 64bit Ubuntu에서 32bit 프로그램을 실행하도록 하는 몇 가지 라이브러리를 설치한다.


2. 권한이 제대로 주어지지 않는 경우

  QualNet에서 제공하는 라이센스 서버 설치 매뉴얼대로 따라하면 /usr/qlm/ 디렉토리에 라이센스 서버 프로그램 및 라이센스 파일이 위치하게 되면서 루트, 관리자 권한으로 실행하지 않으면 필요한 임시 파일 생성이나 로그 파일 생성이 안돼서 진행하지 못하는 경우가 있다.

/usr/qlm/linux/ 디렉토리로 가서 "sudo ./qlmd" 또는 "sudo /usr/bin/nohup ./lmgrd -c .. -l ../lmgrd.log -x lmdown" 명령을 수행해서 문제없이 실행되는지 확인해볼 것. 만약 관리자 권한에서 실행이 잘 된다면 리눅스 시작시 자동 실행도 이상없이 되어야 정상이다. (아직 자동 실행이 정상적으로 되는지는 테스트하지 못함...ㅜㅜ)


/usr/qlm/ 디렉토리에서 lmgrd.log 파일이 새로 생성되었다면 라이센스 서버가 정상 실행중임을 의미한다.

반응형
블로그 이미지

Bryan_

,