2016년 5월 11일 수요일

RPi 보드에 node.js 설치하기


Node.js 를 사용하려고 했는데 PC에 설치하려고 했더니 왠지 모를 불안감에

Raspberry Pi 보드에 설치하여 사용하려고 한다.

약간의 시간이 걸리는 작업이지만 설치하는 방법은 간단하다.

pi@raspberrypi:~ $ sudo apt-get install node.js

설치가 완료되면 이제 제대로 동작하는지 확인해 본다. 우선은 버전확인부터

pi@raspberrypi:~ $ node -v
v0.10.29

나에게 설치된 버전은 0.10.29 버전인가 보다. 이제 동작을 확인한다.

pi@raspberrypi:~ $ node
> console.log('hello world');
hello world
undefined
(^C again to quit)

node.js 가 설치되어 있다면 node 명령어를 사용할 수 있고,

node 명령어를 통해 동작을 확인한다. 간단하게 콘솔로 hello world 를 출력하는 코드다.

위의 방법으로도 뭔가 부족하다면 이 방법도 해보자. 우선은 파일을 하나 생성한다.

pi@raspberrypi:~/webServer $ vi test.server.js

======================================
// 모듈 추출
var http = require('http');

// 웹 서버를 생성 및 실행
http.createServer(function (request, response) {
    response.writeHead(200, { 'Content-Type': 'text/html'});
    response.end('<h1>Hello World ...!</h1>');
}).listen(52273, function() {
    console.log('Server running at http://127.0.0.1:52273/');
});
======================================

test.server.js 파일의 내용은 웹 서버를 동작시켜서 Hello World 를 출력하는 간단한 내용이다.

위의 소스는 node 명령어를 통해서 동작된다.

pi@raspberrypi:~/webServer $ node test.server.js
Server running at http://127.0.0.1:52273/

소스코드에 문제가 있다면 오류 메시지가 나온다. 

문제가 없다면 위와 같이 웹 서버에 접속하기 위한 주소와 포트 문자가 출력된다.


RPi 보드의 IP주소에 포트번호를 입력하여 동작을 확인할 수 있다. 

이것으로 RPi 보드에 Node.js 설치 완료~!

2016년 4월 15일 금요일

리눅스 사용자 계정삭제


매번 수업서버를 재설치 했었는데 너무 비효율적인거 같아서

사용자 계정을 삭제하고 새로 만들기로 했다.

그냥 삭제하면 계정만 삭제되고 사용자의 파일들이 남기 때문에

사용자를 지우면서 해당 사용자의 파일도 같이 지우도록 옵션을 설정한다.

    deluser --remove-all-files [사용자계정명]

2016년 4월 10일 일요일

Linux 프로세스 정지시키기


일반적으로 많이 쓰이는 kill 명령어로 프로세스를 정지 시킬 경우

   kill -9 [pid]

입력하여 하나씩 정지 시켜야 한다.

프로세스명을 이용하여 정지 시킬 경우 pkill 명령어를 사용한다.

이 경우에는 같은 프로세스명을 사용하는 프로세스가 모두 정지된다.

같은 이름의 프로세스가 많이 동작될 경우 이 방법을 사용하면 편하게 정리할 수 있다.

   pkill [프로세스명(CMD)]

프로세스명은 "ps -ef" 명령어를 통해서 나오는 CMD 부분의 명칭을 입력하면 된다.

실행 파일의 경우 예를 들어 "./a.out" 일 경우

   pkill a.out

이라고 입력하면 ./a.out 이라는 명칭의 프로세스들이 모두 정지된다.

2016년 3월 20일 일요일

RPi를 고정 ip 주소로 설정하기(No use GUI)

RPi 보드에 Raspbian을 올려서 처음 동작하게 되면 IP 주소가 자동으로 설정되어 동작하게 되어 있다.

자신이 사용해야 하는 환경에 따라서나 보드의 IP 주소가 고정되어야 하는 경우라면

이 글이 도움이 되기를 바라며 (나도 좀 까먹거나 헷갈리지 않도록) 설정하는 방법을 소개한다.

GUI 환경에서 설정이 아닌 파일을 조작하여 설정하는 것이기 때문에 GUI 환경이 궁금하다면 다른 것을 참고하기를.

우선 나의 환경은 이렇게 되어 있다.


하나의 공유기를 통해서 작업 PC와 RPi 보드가 연결되어 사용하는 환경이다.

RPi 보드에 Raspbain 올리는 동작은 생략하고, Raspbain을 SD 카드에 쓰고 처음 동작시키는 설정으로 설명한다.

우선은 공유기를 제어하는 웹 페이지에 접속한다. 이 부분은 각자의 공유기가 다르니까

자세한 설명은 생략하고, 여유분의 모니터가 있다면 과감히 넘어가도록 하자.
(모니터에 연결해서 IP 주소를 설정하면 된다.)


raspberrypi 라는 이름으로 IP 주소가 할당되어 있는 것을 확인할 수 있다.

나는 PuTTY를 사용하여 RPi 보드로 접속한다. 각자의 방법으로 RPi 보드로 접속하자.

RPi 보드에 처음으로 접속한 경우 ID와 Password는 RPi 공식 홈페이지에서 확인하도록 하자.
("LOGGING INTO YOUR RASPBERRY PI"부분을 참고하자.)

처음 접속을 하고 자신의 홈 디렉터리에서 vi를 통해서 파일을 수정하여 IP 주소를 설정한다.

우리가 수정할 파일은 '/etc/network/interfaces' 파일이다. 이 파일을 수정하려면 sudo 권한이 필요하다.

    $ sudo vi /etc/network/interfaces

해당 파일을 열어보면 eth0 라는 단어가 보이는데 이 부분이 유선 설정을 의미한다.

    iface eth0 inet manual

manual 이라고 되어 있으면 RPi 보드의 IP 주소가 자동으로 설정되어 동작한다.

    auto eth0
    iface eth0 inet static
        address [설정하고자 하는 ip 주소]
        netmask [사용하는 서브넷 마스크(Subnet mask)]
        gateway [사용하는 게이트웨이]

auto eth0 부분을 삽입하고 manual 부분을 static 이라고 수정한다.

address, netmask, gateway 부분을 자신이 사용하는 환경에 맞게 수정하여 저장해주면 된다.

수정을 마쳤다면 보드를 다시 시작시켜 보자.


보드가 다시 켜지고 수정한 IP 주소로 접속하여 IP 주소를 확인하면 

RPi 보드의 주소가 바뀐 것을 확인할 수 있다. 이것으로 RPi 보드의 IP 주소 변경 완료!

2016년 1월 29일 금요일

RPi(Raspberry Pi B+) I2C

Raspberry Pi 보드에서 I2C를 사용하기 위해서 설정하는 방법.

사용된 보드는 B+ 모델이며 사용하는 커널 버전은 4.1.13+ 이다.



RPi 보드에 설정을 불러온다.

   $ sudo raspi-config


 
RPi 설정에서 9 Adevanced Options 메뉴를 선택한다.



I2C를 사용하기 위해서 A7 I2C 메뉴를 선택한다. 

이후에 나오는 대답들은 모두 Yes 나 Ok 를 선택한다.



모든 대화상자에 대한 대답을 완료한 후에는 Finish를 선택하고 RPi 보드를 reboot 한다.




보드가 다시 시작되면 제대로 적용되었는지 확인한다.

처음에 입력한 명령은 RPi 보드에 디바이스 장치를 검색하는 것으로 i2c 장치 파일이 있는지 확인하는 것이고

lsmod 는 RPi 보드가 사용하는 운영체제에 삽입되어 있는 모듈을 살펴보는 명령어이다.

   $ ls /dev/i2c*

   $ lsmod



i2c 장치 파일과 i2c 관련 모듈이 있다면 설정은 완료되었다.

i2c 소스코드를 작성하기 전에 유틸리티를 하나 설치한다.

   $ sudo apt-get install i2c-tools



유틸리티를 설치한 후에 명령어를 통해 RPi 보드와 연결된 장치의 주소를 확인할 수 있다.

   $ i2cdetect -y 1



이제 RPi 보드와 장치간의 i2c 통신을 할 수 있다.