반응형

데비안 계열 리눅스에서 /etc/rc.local 파일에 고칠 부분이 있어서 고쳤는데, 막상 재부팅을 하기는 싫고 그냥 rc.local에서 수정된 부분만 적용하는 방법이 없는지 잠깐 고민을 했는데, 부질없는 짓이었다. -_-;;


만약 예를 들어 /etc/sysctl.conf 와 같은 "설정 파일"의 경우에는 내용을 고치고 나서 새로 적용할 때, 해당하는 서비스나 프로세스를 재시작하는 것이 맞다.


하지만 /etc/rc.local 파일은 그 자체가 실행 스크립트이고, 파일에 기록하는 내용 또한 쉘 명령들이니까 그냥 파일 자체를 실행하면 되는 거였다. ㅡㅡ;;


$ sudo /etc/rc.local



다만 rc.local 파일에 원래부터 적혀 있었던 연유로 기존의 특정 명령어가 중복 실행되지 않도록 하고 싶으면, 그냥 방금 수정한 라인들을 쉘에다 복사해서 실행해야 된다. 다른 신기한 방법이 있기라도 하겠는가?


밤에 정신없이 작업하니 스크립트 파일을 설정 파일로 착각하는 일도 생기는 것 같다. ㅜㅜ 하지만 인터넷에는 나같은 바보짓(...)을 똑같이 시도하는 사람들도 많이 있다는 데서 위안을 삼는다. ㅋㅋ [1]



<참고자료>

[1] http://www.linuxquestions.org/questions/slackware-14/execute-rc-local-without-reboot-of-linux-server-467282/



반응형
블로그 이미지

Bryan_

,
반응형

Host OS: Ubuntu 14.04 Desktop (amd64)

Guest OS: Windows 10 (64-bit)


우분투 머신에 원격 접속을 하게 되면, XRDP를 쓰든 VNC Server 종류를 쓰든 상관없이 키보드 키의 연속 입력이 안 되는 문제를 경험한다. 사실 문제가 있어어 안 되는 것이 아니고, 의도적으로 연속 키 입력을 꺼 놓아서 그렇다.


콘솔을 제외하고 (콘솔은 어차피 로컬 게스트 머신의 접속 프로그램에 의해 좌우되기 때문에) 리눅스 머신에 그래픽 기반의 원격 접속을 하면, 내부적으로는 VNC가 가장 밑단에서 작동하기 때문에 VNC에서 연속 키 입력 옵션이 꺼져 있으면 RDP 클라이언트에서 별 짓을 다 해도 소용없다. 확인해 보니 VNC에서 옵션으로 켜고 끌 수 있다. [1]


VNC 서버 입장에서 연속 키 입력을 켜는 방법:

$ x11vnc -R repeat


반대로 연속 키 입력 기능을 끄는 방법:

$ x11vnc -R norepeat



*추가

참고로 우분투에 x11vnc 패키지를 설치하고 나면 시스템 부팅 시 자동실행 되는데, 이 때 키입력 연속 설정을 켜려면 /etc/init/x11vnc.conf 파일을 고쳐야 한다.


/etc/init/x11vnc.conf 파일

start on login-session-start

script

x11vnc -xkb -noxrecord -noxfixes -noxdamage -R repeat -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.pass -rfbport 5900 

end script



다만 버그가 있는데, 괄호 문자 '(' 또는 ')'를 입력하면 연속으로 입력하지 않는데도 계속 입력되는 현상이 있다. 가만히 두면 계속 타이핑되기 때문에 백스페이스 키를 눌러서 중단시켜야 한다. 전체적으로 연속 키 입력이 안되는 것보다는 약간의 불편을 감수하고 쓰는 편이 나을 것 같다.

<2016.05.24 수정> 괄호 문자가 반복 입력되는 버그는 다음에 재접속할 때는 또 발생하지 않았다. 그때그때 다른 것 같은데 원인은 아직 모르겠다.




<참고자료>

[1] https://lighttomorrow.wordpress.com/2015/04/16/vnc-server-setup-guide-for-ubuntu/


반응형
블로그 이미지

Bryan_

,
반응형

Client OS: Ubuntu Desktop 14.04.1 LTS (amd64)

Host OS: Ubuntu Server 14.04 LTS (amd64)


우분투 데스크탑에서 원격 컴퓨터에 SSH로 로그인하면서 X윈도우를 통한 앱을 쓰려면 서버와 클라이언트 양쪽 모두 X11 forwarding 옵션을 켜야 한다.  서버 쪽에서는 /etc/ssh/sshd_config 파일에서 X11Forwarding yes 항목이 주석 없이 적혀 있어야 한다. 클라이언트 쪽에서는 간단하게 "-X" 옵션만 추가하면 되지만, 이 때 에러 메세지가 발생하는 경우가 있는데, 그 중에 다음과 같이 .Xauthority 파일에 접근을 하지 못하는 에러가 발생할 때가 있다.


/usr/bin/xauth: /home/[로그인 사용자 계정]/.Xauthority not writable, changes will be ignored



일단 위와 같은 에러 메세지가 뜨더라도 SSH 로그인은 되기 때문에, /home/[로그인 사용자 계정]/.Xauthority 파일을 확인해 보니 권한이 600 (루트만 읽고 수정가능)으로 되어 있었다. 그래서 일단 이 파일의 권한을 모든 사용자가 읽고 쓸 수 있게 바꾸어 보았다.

$ sudo chmod 666 /home/[로그인 사용자 계정]/.Xauthority



다시 ssh -X로 로그인해 보니 위의 에러는 사라졌지만, 로그인 과정에서 잠시 멈춰 있다가 아래와 같은 에러 메세지를 보여 주면서 어쨌든 기본 SSH로 로그인은 되었다. 여전히 X윈도우 관련 어플리케이션은 실행되지 않았다.

/usr/bin/xauth: timeout in locking authority file /home/[로그인 사용자 계정]/.Xauthority



이 경우에는 lock에 관여하는 .Xauthority-c, .Xauthority-l 파일들을 삭제하면 된다.


$ sudo rm -fr /home/[로그인 사용자 계정]]/.Xauthority-*


SSH 세션에서 빠져나온 후, 다시 ssh -X를 이용하여 로그인해 보면 에러 없이 로그인이 되고, X윈도우 앱들도 정상적으로 실행됨을 확인할 수 있다.



반응형
블로그 이미지

Bryan_

,
반응형

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_

,