'라즈베리파이'에 해당되는 글 38건

  사실 웹캠 스트림 서버라는게 지난 포스트 CCTV 만들기-1, CCTV 만들기-2를 통해 알아본 CCTV와 크게 다를 바 없다. 실제로 motion프로그램에게 웹캠 스트림 기능을 제공하므로 기능 측면에서 다른점이라고 하면 CCTV에 있는 저장하는 기능이 웹캠 스트림 서버에 없다는 정도 일 것 같다. 그럼에도 불구하고 따로 웹캠 스트림 서버 프로그램을 설명하는 이유는 이번 포스트에서 설명할 mjpg-streamer라는 프로그램이 motion 프로그램의 여러 플랫폼에서 웹캠 스트림을 확인하지 못하는 단점을 보완하기 때문이다. 이에 대한 자세한 얘기는 이번 포스트 마지막 부분에서 하겠다.

 

  우선 mjpg-streamer라는 프로그램을 설치하자. 이 프로그램은 apt-get 을 이용해서 설치 할 수 있지 않다. 소스코드를 받아서 컴파일을 해서 실행 시켜야하는데 어렵지 않으니 그냥 따라 하면 된다. 우선 svn으로 소스코드를 받자. 아래와 같이 'svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer'를 입력하면 mjpg-streamer라는 폴더가 생기고 그 안에 mjpg-streamer 소스코드가 다운로드 받아진다.

웹캠 스트림 서버

 

  mjpg-streamer 폴더에 들어가서 make를 입력하면 스스로 프로그램을 컴파일한다. 중간에 에러가 발생할 수도 있는데 그때는 에러 내용이 무엇인지 판단해서 고쳐야 한다. 필요한 라이브러리가 없을 경우 에러가 발생할 가능성이 있으니 에러를 확인해서 없는 라이브러리를 설치한 뒤 다시 make로 컴파일 하면 된다.

웹캠 스트림 서버

 

  기본적으로 이 프로그램을 실행시키는 명령어는 './mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"' 이다. 여기에 여러 옵션을 넣을 수 있다. 그 옵션은 다음 표와 같다. 

 

 

  WebCam 옵션

-d

video device to open (your camera)

-r

the resolution of the video device, can be one of the following strings:
QSIF QCIF CGA QVGA CIF VGA SVGA XGA SXGA or a custom value like: 640×480

-f

frames per second

-y

enable YUYV format and disable MJPEG mode

-q

JPEG compression quality in percent (activates YUYV format, disables MJPEG)

-m

drop frames smaller then this limit, useful if the webcam produces small-sized garbage frames may happen under low light conditions

-n

do not initalize dynctrls of Linux-UVC driver

-l

switch the LED on, off, let it blink or leave it up to the driver using the value auto

 

 

  HTTP 출력 옵션

-w

folder that contains webpages in flat hierarchy (no subfolders)

-p

TCP port for this HTTP server

-c

ask for username:password on connect

-n

disable execution of commands

 

출처 : Wolf Paulus Journal

 

 

  옵션 사용이 조금 독특하다. WebCam 옵션은 -i 뒤에 나오는 따옴표 안에, HTTP 옵션은 -o 뒤에 나오는 따옴표 안에 넣어야 한다. 여기서 중요한 옵션 몇개만 간략히 소개하자면 WebCam 옵션의 -r은 해상도, -f는 초당 프레임수 -q는 jpg 퀄리티를 설정하는 옵션이다. -d는 웹캠이 두개 이상 설치되어 있을 때 그 중 원하는 웹캠을 선택하는 옵션으로 기본값으로 /dev/video0를 가진다. HTTP 옵션의 -w는 웹페이지가 담겨있는 폴더의 위치, -p는 TCP 포트를 설정하는 옵션이다. 포트 설정이 없을 경우 8080 포트를 기본값으로 사용하는데 XBMC등 8080포트를 사용하고 있으면 bind 할 수 없다는 에러 메시지가 뜬다. 예를들어 아래 사진 속 명령어를 보면 640*480 해상도로 초당 15프레임을 찍어서 8083포트로 스트리밍하고 있는 것을 알 수 있다.

웹캠 스트림 서버

 

  이제 웹브라우저로 http://아이피주소:8083/에 접속하면 아래와 같은 화면을 볼 수 있다. 아래 페이지는 프로그램에서 제공하는 샘플 페이지로 여러 가지 방법으로 웹캠 화면을 보는 것을 구현 해 놓았다. 기본적인 방법으로 html의 img 태그를 이용할 수 있다. 예를들어 <img src="http://아이피주소:8083/?action=snapshot">이라고 하면 정지된 사진을, <img src="http://아이피주소:8083/?action=stream">이라고 하면 동영상을 볼 수 있다. 이런 방법으로 동영상을 스트림 하는 경우는 익스플로러에서 작동하지 않는다.

웹캠 스트림 서버

 

웹캠 스트림 서버

 

웹캠 스트림 서버

 

  익스플로러에서도 동영상 스트리밍을 보려면 자바스크립트를 이용하는 방법을 사용하면 된다. 자바스크립트를 이용하는 방법 또한 제공되는 샘플 코드를 보면 그리 복잡하지 않기 따문에 쉽게 이용할 수 있을 것으로 보인다.

웹캠 스트림 서버

 

  마지막으로 VLC 프로그램이나 웹브라우저에 스트리밍 주소를 집접 적는 방법에 있는데 이때 주소는 'http://아이피주소:8083/?action=stream' 이고 motion과 마찬가지로 익스플로러와 크롬은 지원하지 않고, 파이어폭스는 지원한다.

웹캠 스트림 서버

 

  지난 포스트에서 소개한 motion 프로그램으로도 웹캠 스트리밍을 할 수 있음에도 불구하고 mjpg-streamer를 소개한 이유는 정말 다양한 플랫폼에서 사용할 수 있기 때문이다. 우선 인터넷 익스플로러, 크롬, 파이어폭스 모두 사용이 가능하다. 스냅샷은 모든 웹브라우저에서 가능하고, 스트림은 익스플로러에서는 제대로 작동하지 않지만 자바 스크립트를 이용한 방법으로는 익스플로러에서도 라이브 스트리밍을 볼 수있다. 또한 소스코드가 공개되어 있기 때문에 프로그래밍을 할 줄 아는 사람이라면 소스코드 분석을 통해 배울 점도 많아 보인다.

 

참조 : Wolf Paulus Journal

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 CCTV 만들기-1에서 motion 프로그램을 설치하고 daemon으로 실행하는 것 까지 알아보았다. 이번 포스트에서는 실제로 CCTV 화면을 확인하기 위해 필요한 설정들을 알아보자. (이번 포스트에 있는 그림에서 보면 8081번 포트로 접속하는데 이는 지난 포스CCTV 만들기-1 에서 설정한 것과 다른 설정에서 화면캡쳐를 했기 때문이다. 8082번으로 접속한 것으로 보기 바란다.)

  이제 프로그램도 돌아가니 웹브라우저에서 CCTV 화면을 확인해보자. 웹브라우저 주소창에 http://아이피주소:8082/를 입력하면 아래와 같이 페이지에 접속할 수 없다는 메시지가 나온다. 웹캠 서버가 localhost에서 접속만 허용하도록 설정되어 있기 때문이다. '/etc/motion/motion.conf' 파일에서 'webcam_motion' 값과 'control_localhost' 값을 모두 off로 설정해줘야 한다. 지금까지 인터넷에 돌아다니는 자료에는 'control_localhost'에 대한 언급이 없는데 프로그램이 수정되면서 추가된 것으로 추정된다.

라즈베리파이 CCTV

 

  다시 웹브라우저에서 스트리밍 주소로 접속을 하면 인터넷 익스플로러의 경우 웹캠 화면이 보이는 것이 아니라 아래와 같이 다운로드하는 창이 뜰 것이다. 크롬을 사용할 경우는 다운로드하는 창도 뜨지 않을 것이다. motion 서버에서 뿌려주는 화면을 표시하려면 mjpeg stream을 제공해야 하는데 인터넷 익스플로러와 크롬은 이를 지원하지 않기 때문이다. 크롬은 오래된 버전의 경우 지원을 했었기 때문에 제대로 표시 할 수도 있다.

라즈베리파이 CCTV

 

   다행히 파이어폭스는 mjpeg stream을 지원하기 때문에 파이어폭스를 이용하면 아래와 같이 CCTV 화면을 확인할 수 있다.

라즈베리파이 CCTV

 

  이렇게 확인을 했지만 여전히 문제는 있다. 바로 계속 motion 서버가 죽는 것이다. 이는 사진을 저장할 때 권한 문제로 에러가 나는 것으로 추정된다. 따라서 폴더를 하나 만들어서 사진을 저장하도록 하자. 예를 들어 '/home/pi/motion/'이라는 폴더를 만들면 'target_dir /home/pi/motion/'라고 값을 변경하자. 그러면 아래와 같이 motion 폴더에 사진들이 저장되는 것을 알 수 있다.

라즈베리파이 CCTV


  이제 라즈베리파이를 CCTV로 쓰는데 큰 문제는 없다. 지난 포스트에서도 언급했듯 '/etc/motion/motion.conf' 파일에는 여러가지 설정을 변경 할 수 있다. 그 중에 몇가지만 소개하자면 width와 height 값을 변경하면 아래와 같이 더 큰 화면을 얻을 수도 있고, brightness, contrast, saturation, hue 등을 통해 화면의 밝기, 대비, 채도 등을 설정할 수도 있다. output_normal 값을 off로 바꾸면 움직임이 감지되더라도 저장하지 않고, 라이브로 감시만 가능해지기도 한다. 이 외에도 많은 설정이 가능하기 때문에 꼭 하나하나 읽어보길 추천한다.

라즈베리파이 CCTV

 

 

  지금까지 파이어폭스로 CCTV 화면을 확인하는 법을 알아봤는데 안드로이드 앱을 통해서 CCTV를 확인 하는 법을 알아보는 것으로 이번 포스트를 마치도록 하자.


  구글스토에서 mjpeg으로 검색을 하면 여러 앱이 검색된다. 이 중 어느 것을 사용하나 무방하지만 가장 위에 올라와 있는 MJpeg Viewer 앱을 선택해서 설치, 실행해보자.

Mjpeg Viewer Mjpeg Viewer


  실행하면 아래와 같이 매우 단순한 화면이 나온다. URL을 클릭하면 주소를 입력할 수있는 창이 뜨고, 주소를 넣고 확인을 누르고, Show 버튼을 클릭하면 CCTV화면이 나온다. 

Mjpeg Viewer Mjpeg Viewer


Mjpeg Viewer

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  이번 포스트에서는 라즈베리파이를 이용하여 간단한 CCTV를 만드는 법을 알아보자. 인터넷에 이와 관련해서 여러 블로그 자료가 있는데 그대로 따라했음에도 불구하고 제대로 작동하지 않아 답답한 사람들이라면 이번 포스트를 통해를 해결 할 수 있길 바란다.

 

  우선 CCTV를 만들기 위해서는 카메라가 필요하다. 카메라는 아래 왼쪽과 같은 라즈베리파이용 카메라 모듈을 사용할 수 있지만 일반 웹캠을 사용해도 무방하다. 사용할 수 있는 웹캠의 종류는 여기서 확인 할 수 있다. 이 포스트는 아래 오른쪽 사진에서 보이는 마이크로소프트사의 HD-3000을 기준으로 설명한다. 

라즈베리파이 CCTV라즈베리파이 CCTV

 

  일반 usb웹캠을 사용하게 되면 전력이 부족해서 라즈베리파이가 작동되지 않는다. 따라서 웹캠에 전원을 공급할 수 있도록 usb 허브를 사용해야한다. 필자는 지난 포스트에서 소개했던 MBF-H04 USB 허브를 이용하였다. 

USB 허브

 

  카메라를 usb 허브를 통해 라즈베리파이에 연결한 후, 제대로 연결되었는지 lsusb 명령어로 확인해본다. 아래 그림에서 웹캠이 Device 006으로 인식된 것을 확인 할 수 있다. 

라즈베리파이 CCTV

 

  라즈베리파이를 CCTV로 만들기 위해 사용되는 프로그램은 몇가지 있지만 그 중에 가장 많이 사용되는 것으로 보이는 motion 프로그램을 설치해보자. motion은 리눅스용으로 개발된 mjpeg 스트리밍 프로그램으로 카메라에 움직임이 포착될 때 사진을 저장하는 기능이 있어 CCTV 프로그램으로 쓰기에 좋다. 아래와 같이 'sudo apt-get install motion'을 입력하면 설치가 완료되는데 설치 전에 'sudo apt-get update' 명령으로 업데이트를 먼저 할 것을 추천한다.

라즈베리파이 CCTV

 

  프로그램 설치가 끝났으면 프로그램을 실행하기 전에 'nmap localhost' 명령으로 지금 사용되고 있는 네트워크 포트를 확인해 보자. nmap이 설치되어 있지 않다면 apt-get으로 쉽게 설치가 가능하다. 아래 그림에서 22, 80, 3389, 8080, 9090번 포트가 열려있는 것을 알 수 있다. 

라즈베리파이 CCTV

 

  이제 'sudo service motion start' 라고 입력하여 프로그램을 실행시켜보자. 원래 프로그램이 daemon 으로 실행, 즉, 백그라운드에서 실행되야 하지만 아래에서 보듯 실행되지 않는다. daemon 실행이 되지 않도록 기본값이 설정되어 있기 때문이라 설정을 바꿔줘야 한다.

라즈베리파이 CCTV

 

  우선 '/etc/default/motion' 파일을 열어서 'start_motion_daemon' 값을 yes로 바꾼다.

라즈베리파이 CCTV


  둘째로 '/etc/motion/motion.conf' 파일을 변경해야 하는데 이 파일에는 프로그램의 모든 설정사항들이 포함되어 있으므로 하나씩 읽어보길 권장한다. 우선 daemon으로 실행하기 위해 'daemon' 값을 on으로 바꾼다. 또한 포트 8080번은 xbmc에서 사용하고 있으므로 다른 포트로 사용해야 두 프로그램을 모두 원활하게 사용할 수 있다. 필자는 webcam_port 8082, control_port 8081으로 설정했다.

라즈베리파이 CCTV


  이제 다시 프로그램을 실행시켜보면 실행이 된다. 'nmap localhost' 명령으로 확인해보면 8081, 8082포트가 새로 열린 것을 알 수 있다. 8082 포트는 라이브 웹캠 화면을 볼 때 사용하는 포트이고 8081 포트는 http를 통해 컨트롤하는데 사용된다.

라즈베리파이 CCTV

 

  우선 192.168.1.9:8081에 접속하면 아래와 같은 화면을 볼 수 있다. 이 간단한 페이지를 통해 motion 프로그램의 설정 값을 가져오고 설정할 수 있다.

  이번 포스트에서는 motion 프로그램을 실행시키는 것 까지 알아보았다. 다음 포스트에서는 실제로 CCTV화면을 확인하고, motion 프로그램을 설정하는 법을 알아보자.

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 PWM으로 RGB LED 다양한 색깔 표현에서 PWM 방식으로 RGB LED의 밝기를 조절해서 다양한 색깔의 빛을 표현하는 방법을 알아보았다. 이번 포스트에서는 가변저항을 이용하여 같은 일을 아날로그 방식으로 처리하는 방법을 알아보자.


  우선 가변저항이 무엇일까? 말그대로 변화가 가능한 저항, 즉 저항의 값이 하나로 고정된 것이 아니라 변할 수 있는 저항을 말한다. 다양한 가변저항이 있는데 기본적인 성질과 원리는 거의 비슷하다. 아래와 같이 생긴 가변저항을 로터리식 가변저항이라 부르는데 스피커의 볼륨조절기를 생각하면 된다. 그 원리는 아래 사진의 우측하단에 표시된 바와 같이 1과 3에 전체 저항이 연결되어 있고, 스위퍼(sweeper)라고 불리는 2번이 옮겨다니면서 저항 값이 변하게 되는 것이다. 즉 노브를 돌리면 1번과 2번사이의 저항, 2번과 3번사이의 저항의 값이 변화하게 되는 것이다. 참고로 1번과 2번 사이의 저항값이 최저일때, 2번과 3번사이의 저항값은 최고이고, 1번과 2번 사이의 저항값이 커지면 2번과 3번 사이의 저항값이 작아진다.


  이제 아래와 같이 회로를 구성한다. 스위치는 필자의 가변저항이 스위치 기능이 되는 것이 아니라 저렇게 따로 연결 했으나 없어도 불을 끄지 못하는 점 외에는 큰 상관 없다. 가변저항의 2번을 GND와 연결하고 1번이나 3번을 LED의 R, G, B 다리에 연결한다. 1번을 연결하느냐 3번을 연결하느냐에 따라 오른쪽으로 노브를 돌렸을 때 LED의 밝기가 밝아지느냐 어두워지느냐가 달라진다. 그리고 LED의 커먼 애노드(+)에 5V 전압을 연결하면 된다.


  이제 스위치로 LED를 켜고 노브를 돌리면 아래 동영상에서 처럼 LED의 밝기가 변화하는 것을 확인 할 수 있다.


블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 LED로 간단한 신호등 만들기에서 빨간색, 노란색, 초록색 세개의 LED를 사용해서 신호등을 만드는 법을 알아보았다. 이번 포스트에서는 RGB LED 하나로 신호등을 만드는 법을 알아보자.


  아래 사진에 보이는 LED가 RGB LED 혹은 3색 LED이다. 일반적인 LED와 달리 RGB LED는 다리 네개가 각각 아래 사진에서 처럼 빨간색 녹색 파란색 그리고 커먼 애노드(+) 로 구성된다. 커먼 애노드 RGB LED는 아래 사진에서 처럼 가장 긴 다리에 5V 전압을 넣고 Red에 Low 접압을 넣으면 빨간색 불이 들어오고 High 전압을 넣으면 빨간불이 꺼지고 G와 B에 대해서도 같은 방식으로 작동한다. 커먼 캐소드(-) RGB LED도 있는데 커먼 애노드(+) RGB LED와 달리 캐소드 다리에 0V를 넣고, R, G, B 다리에 High 전압을 넣어주면 각각 빨간, 녹색, 파란불이 들어온다.

RGB LED


  신호등을 만들기에는 빨간, 초록, 파란 불이 충분하지 않다. 노란색 불이 필요하다. 노란색 불을 켜기위해서 빛을 혼합해야 한다. 위 사진의 왼쪽 상단에 빛의 삼원색 혼합 다이어그램이 있는데 이를 참조하면, 빨간색 빛과 초록색 빛을 섞으면 노란색이 된다. 즉, 빨간색과 초록색 불을 동시에 켜면 노란색 불을 얻을 수 있는 것이다. 


  신호등을 만들기 위해서 아래와 같이 RGB LED를 연결하면 된다. 필자는 G04, G17, G18에 차례대로 R, G, B를 연결했다. 신호등을 만들기 위해서는 파란 빛이 필요하지 않으므로 B를 연결할 필요는 없다.

RGB LED

#include <stdio.h>
#include <wiringPi.h>

int main (void)
{
  int i = 0;
  printf("Traffic Light");

  if (wiringPiSetup () == -1)
    return 1 ;

  pinMode (7, OUTPUT) ;
  pinMode (0, OUTPUT) ;

  for(;;){
    for (i = 0; i < 3; i++){
      switch(i) {
      case 0:
        digitalWrite(7, 0);
        digitalWrite(0, 1);
        delay(3000);
        break;
      case 1:
        digitalWrite(0, 0);
        delay(800);
        break;
      case 2:
        digitalWrite(7, 1);
        delay(3000);
        break;
      }
    }
  }
  
  return 0 ;
}

  위 코드는 지난 포스트의 LED 신호등 코드를 조금 수정 한 것이다. 수정된 부분을 보면 19번째 줄에서 이전 프로그램에는 7번 핀에 1을 출력해서 빨간 불을 켰었는데 여기서는 0을 출력해서 빨간 불을 켠다. 위에서 설명했듯, 필자의 RGB LED가 커먼 애노드 이기 때문이다. 20번째 줄은 반대로 0번 핀에 1을 출력해서 초록색 불을 끈다. 24번째 줄은 빨간 불이 켜진 상태에서 초록색 불을 켜서 노란색 불이 켜지게 된다. 마지막으로 28번째 줄은 빨간색 불을 꺼서 초록색 불만 켜지게 만든다. 이 코드를 실행하면 아래 동영상 같이 하나의 LED로 신호등을 볼 수 있다.



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트에서 WiringPi로 GPIO 핀을 제어하여 LED를 깜빡이는 방법을 알아보았다. 이번 포스트에서는 조금 수정해서 신호등을 만드는 법을 알아보자.


  우선 아래 사진처럼 LED와 저항을 연결한다. 빨간색, 노란색, 초록색 LED +극에 저항을 연결하고 G04, G17, G18을 차례대로 연결하고, -극에는 접지를 연결한다.

라즈베리파이 신호등


라즈베리파이 신호등

#include <stdio.h>
#include <wiringPi.h>

int main (void)
{
  int i = 0;
  printf("Traffic Light");

  if (wiringPiSetup () == -1)
    return 1 ;

  pinMode (7, OUTPUT) ;
  pinMode (0, OUTPUT) ;
  pinMode (1, OUTPUT) ;
  for(;;){
    for (i = 0; i < 3; i++){
      switch(i) {
      case 0:
        digitalWrite(7, 1);
        digitalWrite(1, 0);
        delay(3000);
        break;
      case 1:
        digitalWrite(0, 1);
        digitalWrite(7, 0);
        delay(800);
        break;
      case 2:
        digitalWrite(1, 1);
        digitalWrite(0, 0);
        delay(3000);
        break;
      }
    }
  }
  
  return 0 ;
}

  위 코드는 WiringPi를 이용하여 신호등을 만든 간단한 프로그램이다. 조금씩 살펴보자. 2번째 줄은 wiringPi 헤더파일을 불러와서 WiringPi 라이브러리를 사용하기 위해서는 꼭 필요하다. 9번째 줄은 WiringPi를 시작하기 전에 셋업 하는 함수이다. 12-14줄은 7, 0, 1 핀을 출력핀으로 만들어 주는 것이다. 참고로 WiringPi 핀넘버 7, 0, 1은 순서대로 BCM 핀넘버 4, 17, 18이다. 19번째 줄은 7번핀에 1을 출력해서 빨간색 LED에 불을 켜는 것이고, 20번째 줄은 1번 핀에 0을 출력해서 초록색 LED의 불을 끄는 것이다. 21번째 줄은 3초동안 현재 상태를 유지 즉, 빨간불을 3초동안 켜고 있는 것이다. 따라서 case0 일때는 빨간불을 켜고, case1 일때는 노란불을 켜고, case2 일때는 초록불을 켜는 것으로 아래 동영상 같은 간단한 신호등이 완성 된다.



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 LED 불 켜기에서 스위치로 LED 불을 켜고 끄는 것을 알아봤다. 이번 포스트에서는 GPIO를 이용해서 LED를 깜빡이는 방법을 알아보자.


  GPIO를 컨트롤 하는 가장 쉽고 편한 방법은 WiringPi 라이브러리를 사용하는 것이다. Git가 설치되어 있으면 WiringPi를 설치하기가 수월하다. Git이 설치되어 있지 않다면 'sudo apt-get install git-core'를 입력해서 설치한다. Git이 설치되어 있으면 'git clone git://git.drogon.net/wiringPi'를 입력해서 WiringPi를 다운 받는다. 다운 받은 디렉터리에 들어가서 './build'를 입력하면 설치 끝.

 

  제대로 설치되었는지 확인하기 위해서는 'gpio readall'을 입력한다. 아래 사진과 같은 화면이 나온다. 제일 왼쪽행(BCM)은 Broadcom의 BCM2835 칩에서 사용하는 핀번호, wPi는 WiringPi 라이브러리의 핀번호, Name은 GPIO의 이름, Mode는 핀이 입력모드인지 출력모드인지를 알려주고, V는 핀의 값으로 1은 전압이 High상태 0은 Low상태, 그리고 Physical은 라즈베리파이 핀헤더의 번호이다. 예를들어 밑줄 친 열을 보면 11번 헤더핀이 출력모드이고 값은 0인 것을 알 수 있다. 유튜브(http://www.youtube.com/watch?v=Wr49ia3oID4)에 올라온 실험에 따르면, 핀이 입력모드일 때 전압이 0-1.19v는 0, 1.34-3.3v는 1으로 인식된다고 한다.


  라즈베리파이의 GPIO 핀을 이용해서 전압을 넣으면 LED가 켜지고 전압을 없애면 LED가 꺼지는 것으로 매우 단순하다. LED 불 켜기에서와 같이 LED를 저항과 GND에 연결하고 3.3v 에 연결되어 있던 부분을 GPIO핀으로 연결해주면 세팅이 완료 된다. (예제를 그대로 사용하려면 NS-GPIO의 G17 이나 라즈베리파이의 11번째 핀에 연결해야한다.)


  아래 wiringpi.com에 올라와 있는 예제인 'blink.c'의 코드이다. 이것을 복사해서 라즈베리파이에 'blink.c'로 저장하고 'gcc -o blink blink.c -lwiringPi'를 입력해서 컴파일 하고 'sudo ./blink' 명령으로 실행하면 아래 동영상과 같이 LED가 깜빡이는 것을 확인 할 수 있다.

#include <wiringPi.h>
int main (void)
{
  wiringPiSetup () ;
  pinMode (0, OUTPUT) ;
  for (;;)
  {
    digitalWrite (0, HIGH) ;
	delay (500) ;
    digitalWrite (0,  LOW) ;
	delay (500) ;
  }
  return 0 ;
}




  다음 포스트에서는 'blink.c' 프로그램의 코드를 살펴보고, 수정해서 LED로 신호등을 만드는 것을 알아보자.


참조

WiringPi.com

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  라즈베리파이를 사용하다보면 딱히 필요하지는 않지만 또 하나 있으면 하는거, 아마 USB 허브가 아닐까 싶다. 그렇다고 일반적으로 쓰는 전원이 없는 허브를 쓸 수도 없다. 필자의 경험에 의하면 무선마우스 리시버 두개와 키보드 하나를 연결하니 전원이 딸려서 꺼져버렸다. 따라서 전원이 따로 들어가는 USB 허브가 필요하다. 이번 포스트에서는 유전원 USB허브인 MBF-H04를 알아보자.

 

  아래 사진에서 알수 있듯이 MBF-H04가 다른 USB허브랑 차이나는 점이라면 바로 각 USB포트마다 전원 스위치가 달려 있다는 점이다. 스위치가 달려있기 때문에 USB 주번기기를 쓸 때만 켤수 있다는 장점이 있다. 게다가 스위치를 켜면 불까지 들어오는게 참 마음에 든다.

 

 

  사실 USB허브라는게 다 거기서 거기라서 포스팅할 거리가 되지 않지만 포스팅을 한 이유가 있다. 아래 사진을 보자. 이상한 점이 보이는가? 뭔가 이상하지 않나?

 

  그렇다. 전원부에 전원 케이블이 꽂혀있지 않았는데 라즈베리파이에가 작동하고 있다. 이는 라즈베리파이 USB 포트로도 전원이 들어간다는 사실을 방증한다. 사진에서는 잘 보이지 않지만 지금 USB 포트에 USB 허브가 연결되어 있고, USB 허브는 전원 어댑터로 연결되어 전원을 공급하므로 라즈베리파이가 켜지는 것이다. 이는 라즈베리파이 전원 어댑터와 USB허브 어댑터 두개를 한벌에 쓸 필요없이 USB 허브 어댑터 하나만 있어도 된다는 얘기다. 또한 불의의 사고로 라즈베리파이의 전원부가 망가지는 불상사가 생기더라도 USB에 전원을 넣음으로 라즈베리파이를 켤수 있다는 사실이기도 하다.

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  라즈베리파이가 널리 사용되는 이유 중 하나가 GPIO를 사용해서 많은 재미난 프로젝트들을 할 수 있다는 점 일 것이다. GPIO가 무엇인지 간단히 설명하자면 General Purpose Input/Output의 줄임말인데 말그대로 일반 목적으로 사용되는 입출력 핀을 이야기 한다. 즉, GPIO를 이용하면 LED를 켜고 끄고, 센서에서 값을 읽어오는 일에서 부터 LCD 패널에 출력하고 로봇의 모터를 제어하는 일 까지 다양한 일들을 할 수 있다. 라즈베리파이 모델B Rev2는 26개의 기본 GPIO 핀과 8개의 추가 GPIO 핀을 사용할  수 있다. 아래 사진에서 ⑧이 기본 GPIO핀이고 ⑨는 추가 GPIO 핀이다.


  아래 두 테이블은 라즈베리파이 모델B Rev2의 GPIO 핀번호를 나타낸 것이다.


기본 GPIO 핀

기본 GPIO 핀


추가 GPIO 핀

추가 GPIO 핀


참조

Gordons Projects



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  라즈베리파이에는 PC와 달리 전원 스위치나 리셋 버튼이 없다. 리셋 버튼이 꼭 필요한 것은 아니지만 없으면 조금 성가실 정도로 불편하다. 특히 라즈베리파이가 뻗어서 재시작해야 할 경우나, 지난 포스트 라즈베리파이 종료하기에서 알아본 halt 명령어로 라즈베리파이을 종료했을때 라즈베리파이를 다시 켜려면 전원 뽑았다가 다시 연결해야한다. 이번 포스트에서는 이런 성가신 일을 해결해줄 리셋 버튼 다는 법을 알아보도록 하자.


  위에서 언급했듯 라즈베리파이에는 리셋버튼이 없다. 하지만 리셋버튼을 달 수 있는 핀을 빼 놓았다. 바로 P6핀인데 아래 사진에서 빨간색으로 테두리쳐진 부분이다. 두개의 구멍이 있는데 도체로 이 두개를 연결하면 라즈베리파이가 꺼지고 연결을 끊으면 라즈베리파이가 재시작된다. 이를 이용하면 라즈베리파이에 리셋버튼을 달 수 있다.


라즈베리파이 리셋 버튼


  스위치를 라즈베리파이에 직접 달아도 상관 없지만 필자의 경우 케이스로 덮어서 사용할 것이기 때문에 아래 사진에서 보이듯 두 선을 P6에 연결 해서 케이스 밖으로 리셋 버튼을 빼냈다. 

라즈베리파이 리셋 버튼


  버튼은 Self-Lock이 되는 버튼을 사용해도 되고, Self-Lock이 되지 않는 버튼을 사용해도 된다. Self-Lock이 되는 버튼의 경우 PC의 전원 버튼 처럼 한번 누르면 켜지고 또 한번 누르면 꺼지는 식으로 사용할 수 있고, Self-Lock이 안되는 버튼은 리셋 버튼처럼 사용할 수 있다. 필자는 TS-1109 라는 Self-Lock이 되지 않는 자그마한 버튼을 사용했는데 이는 전원버튼이 더 유용하겠지만 일반적으로 Self-Lock이 되는 버튼이 크기가 커서 라즈베리파이에 어울리지 않다고 판단했기 때문이다. 리셋 버튼은 아무래도 전원 옆에 있는게 맞는 것 같아서 아래와 같이 전원부 근처로 자리를 잡았다. 생각보다 잘어울리고 유용하다. 참고로 필자의 케이스는 엘레파츠에서 구입한 라즈베리파이 전용케이스 H타입이다.

라즈베리파이 리셋 버튼



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  이번 포스트에서는 지난 포스트 라즈베리파이에 GUI로 원격 접속 (XRDP)에서 XRDP를 이용한 원격 접속에 이어 VNC를 이용하는 방법을 알아보자.


1. 라즈베리파이에 VNC 서버 설치

  vnc를 이용하기위해서 tight vnc sever를 라즈베리파이에 설치해야 한다. 이를 위해 'sudo apt-get install tightvncserver'를 입력한다. tight vnc server가 설치 되어 있다면 아래와 같이 표시된다.

VNC


2. VNC 서버 실행

  vnc 서버를 실행하기 위해 'vncserver'를 입력하면 아래와 같이 비밀번호를 넣으라고 하는데 비밀번호를 두번 입력하면 vnc 서버가 실행된다.

VNC


   vnc 서버가 실행되는지 그리고 몇번 포트를 사용하는지 알아보기 위해 'sudo netstate -tulpn'을 입력하면 아래와 같이 나오는데 이를 보면 포트 5901와 66001이 vnc 서버에 의해 사용되고 있음을 확인할 수 있다.

VNC


3. 윈도우에서 원격 접속

  윈도우에서 vnc로 라즈베리파이에 원격 접속 하기 위해서는 윈도우에 vnc 클라이언트 프로그램이 설치되어 있어야 한다. 여러 종류의 VNC가 있는데 이중에 TightVNC를 사용해보자. TightVNC는 여기에서 무료로 다운받을 수 있다.

VNC


  다운받은 프로그램을 설치하고난 후에 vnc 클라이언트 프로그램 실행하면 아래와 같은 화면이 표시된다. Remote Host에 라즈베리파이의 IP 주소와 위에서 알아낸 포트번호를 아래와 같이 입력해주고 접속 버튼을 누르 비밀번호를 누르는 창이 나온다. 비밀번호를 입력하면 아래와 같이 라즈베리파이의 데스크탑 화면을 확인할 수 있다.

VNC


VNC


VNC


4. 안드로이드 폰에서 원격접속

  VNC도 스마트폰에서 접속할 수 있다. 여러 종류의 vnc 클라이언트 앱이 있는데 이중 무료인 android-vnc-viewer 앱을 사용해보자.

① 구글플레이에서 android-vnc-viewer를 찾아서 설치한다.

VNC


② 처음 실행하면 아래와 같은 화면이 뜨는데 'Don't show again' 버튼을 클릭한다.

VNC


③ 아래와 같은 화면이 뜨면 IP 주소, 포트, 비밀번호 등을 입력하고 접속 버튼을 누르면 라즈베리파이에 접속된다.

VNC


VNC


VNC


④ 텍스트를 입력할 수 도 있다. 메뉴키를 누르면 아래와 같은 메뉴들이 나오는데 여기서 Send Text 버튼을 누르면 문자를 입력할 수있는 창이 뜨는데 문자를 입렵하고 Send Text를 클릭하면 아래와 같이 문자열이 입력되는 것을 확인 할 수 있다.

VNC


VNC


VNC



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  가장 기본적인 라즈베리파이를 재시작하고, 끄는 방법은 매우 간단하지만 포스팅한적이 없는 것 같아서 이번 포스트에서 알아보도록 하자.


  알다시피 라즈베리파이에는 다른 컴퓨터들에 있는 파워스위치나 리셋 버튼이 없다. 리셋 버튼을 만들수는 있는데 이건 다음에 알아보자. 따라서 재시작 하거나 라즈베리파이를 끄려면 리눅스 명령어를 사용해야한다.


1. 라즈베리파이 종료

  ssh를 통해서나 라즈베리파이에 직접 연결을 해서 'sudo shutdown -h now'를 입력하면 즉시 라즈베리파이가 종료된다. sudo 권한이 없이는 시스템을 종료할 수 없다. 'sudo halt' 또한 같은 역할을 한다.


2. 라즈베리파이 재시작

  재시작을 하기 위해서는 'sudo shutdown -r now'를 입력하면 즉시 라즈베리파이가 재시작 된다. 'sudo reboot' 또한 같은 역할을 한다.

라즈베리파이 재시작



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트에서 라즈베리파이에서 DVD 사용하는 방법을 알아봤다. 하지만 소리만 나오고 영상이 나오지 않는 문제에 봉착했다. 그 이유는 라즈베리파이 재단에서 라즈베리파이를 만들때 주 목적이 엔터테인먼트 센터가 아닌 교육용이고. 싸게 보급을 하려고 MPEG-2와 VC-1 코덱 라이센스를 라즈베리파이에 포함시키지 않았기 때문이다. 다행히 많은 사람들이 MPEG-2와 VC-1 코덱을 원해서 라즈베리파이 재단에서 비싸지 않은 가격에 개별로 두 코덱에 대한 라이센스를 팔기 시작했다. 필자는 MPEG-2 코덱 라이센스만 샀는데 2파운드였는데 원화로 3601원이 결제되었다. 이번 포스트에서는 라이센스를 사고 라즈베리파이에 라이센스를 설치하는 방법에 대해 알아보자.


1. 라즈베리파이 시리얼 알아내기

  라즈베리파이 재단에서 라이센스 문제를 어떻게 해결할 것인지는 힘들었다고 한다. 기술팀의 Dom이라는 기술자의 제안으로 모든 라즈베리파이에 라이센스를 설치하지 않고 고유한 시리얼 번호와 라이센스를 묶어서 개별로 라이센스를 살 수 있도록 하는 지금의 방식을 만들었다고 한다. 그래서 라즈베리파이용 MPEG-2 라이센스를 사려면 라즈베리파이의 시리얼 번호를 알아내야한다. 참고로 이런 방식으로 라이센스를 팔기 때문에 라즈베리파이당 라이센스를 사야한다. 애플스토어에서 앱 하나 사면 같은 아이디로 등록된 모든 기기에서 앱을 사용할 수 있는 방식이 아니다. 시리얼 번호를 알아내는 것은 쉽다. 'cat /proc/cpuinfo'를 입력하면 제일 밑에 시리얼 번호가 나온다.

라즈베리파이 MPEG-2 라이센스


2. 라이센스 구입하기

① 시리얼 번호를 알아냈다면 MPEG-2 라이센스를 클릭해서 MPEG=2 라이센스 구입 화면으로 들어간다. 아래와 같은 화면이 나오면 위에서 알아둔 시리얼 번호를 넣고 'Add to Cart'버튼을 누른다.

라즈베리파이 MPEG-2 라이센스


② 아래와 같은 창이 뜨면 'Proceed to Checkout'을 클릭한다.

라즈베리파이 MPEG-2 라이센스


③ 아래와 같이 필요한 정보를 넣고 페이팔로 결제한다. 페이팔 외의 다른 옵션이 없는 것은 조금 아쉽다.

라즈베리파이 MPEG-2 라이센스


라즈베리파이 MPEG-2 라이센스


라즈베리파이 MPEG-2 라이센스


④ 72시간 안에 입력한 이메일로 라이센스가 온다고 적혀있는데 실제로 한 두시간안에 아래와 같은 이메일을 받았다. 아래 사진에서 흐리게 처리된 부분이 라이센스 키다. 'decode_MP2=0x00000000' 부분을 복사해둔다.

라즈베리파이 MPEG-2 라이센스


3. 라즈베리파이에 라이센스 설치하기

① 라즈베리파이의 SD카드를 윈도우 PC에서 읽어온다. 아래의 G드라이브 같이 드라이브가 잡히면 config.txt 파일을 메모장에서 연다.

라즈베리파이 MPEG-2 라이센스


② 'config.txt' 파일의 제일 마지막 부분에 위에서 복사해둔 'decode_MP2=0x00000000'를 삽입하고 저장한다.

라즈베리파이 MPEG-2 라이센스


4. 라이센스가 제대로 설치되었는지 확인

  라즈베리파이에 MPEG-2 라이센스가 잘 설치되었는지 확인하기 위해서는 아래와 같이 'vcgencmd codec_enabled MPG2'를 입력한다. 아래와 같이 'MPG2=enabled'가 출력되면 제대로 설치된 것이다.

라즈베리파이 MPEG-2 라이센스


  지난 포스트 에서 알아본 방법 대로 DVD를 플레이 하면 이제 영상도 제대로 나오는 것을 확인 할 수 있다. 고마해라~ 마이 적었다아이가.

고마해라. 마이 무따이가.


참조

NEW VIDEO FEATURES! MPEG-2 AND VC-1 DECODE, H.264 ENCODE, CEC SUPPORT

How to Add MPEG-2 and VC-1 Video Codec Support to Your Raspberry Pi


블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

 이번 포스트에서는 라즈비안 XBMC에서 DVD 재생하는 법을 알아보자. 우선 DVD를 재생하기 위해서 DVD 드라이브가 필요하다. 그래서 외장형 USB DVD 플레이어를 사려고 알아보니 4~5만원 정도에 판다. 살까 말까 고민할때 혹시 노트북에 달려있는 DVD를 쓸수 없나 하는 생각이 들었다. 빙고! 윈도우에서 DVD 장치도 공유가 되는 것이다. 그렇다면 XBMC에서 SMB를 이용해서 DVD를 재생시킬 수 있을 것이라는 판단에 외장형 DVD는 사지 않기로 했다.


1. 윈도우에서 DVD 드라이브 공유하기

① DVD 드라이브에 오른쪽 클릭을 해서 고급 공유를 클릭한다.

라즈베리파이 DVD


② 공유탭에서 고급 공유를 클릭한다.

라즈베리파이 DVD


③ 아래와 같은 창이 뜨면 '이 폴더 공유'의 체크박스를 클릭하고 공유 이름을 정해주고 확인을 누르면 공유가 된다.

라즈베리파이 DVD


라즈베리파이 DVD



2. XBMC에서 DVD 불러오기

  기본적으로 DVD를 추가하는 방법은 지난 포스트 네트워크 공유 비디오 파일 재생하기에서 알아본 방법과 거의 같다. 그래서 아주 간단히 넘어가도록 한다.


① 비디오 추가를 누른다.

라즈베리파이 DVD


② 탐색을 눌러서 윈도우즈 네트워크 (SMB)를 클릭해서 공유된 PC의 DVD를 찾는다.

라즈베리파이 DVD


라즈베리파이 DVD


라즈베리파이 DVD


라즈베리파이 DVD


③ 위 과정을 모두 마치게 되면 아래와 같이 DVD가 추가된다.

라즈베리파이 DVD


④ DVD안에 들어가서 원하는 파일을 클릭하면 비디오가 시작된다.

라즈베리파이 DVD


그런데 뭔가 이상하다. 소리는 나오는데 아래와 같이 영상은 나오지 않는다. 다음 포스트에서는 어떻게 이 문제를 해결하는지 알아보자.

라즈베리파이 DVD


블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  라즈베리파이라고 라즈베리파이라고 다 똑같은 제품이 아니다? 중요할 수도 있고 중요하지 않을 수도 있는 라즈베리파이 보드 제조사에 대한 이야기를 알아보도록 하자.


  라즈베리파이는 같은 곳에서 만들어졌을 것이라고 생각했었는데 의외로  세개의 제조사(Sony, Qisda, Egoman)가 라즈베리파이를 만들고 있다. 뭐 제조사가 다른건 중요하지 않다. 일부 매니아들이 안성표 신라면과 안양표 신라면을 비교하는 것도 아니고 제조사가 달라서 라즈베리파이가 다르다는 말을 하려는 것이 아니다.


  우선 다들 알겠지만 라즈베리파이는 A모델과 B모델이 있다. A모델과 B모델은 구별하기 쉽다. Ethernet포트가 없고 USB포트가 하나인 녀석이 바로 A모델이니까 쉽게 구별 가능하다. 하지만 B모델도 Rev1과 Rev2로 나뉜다. 또 Rev2는 256MB 램과 512MB 램으로 나누니다. 2012년 10월 이후 라즈베리파이 B모델은 램이 512MB로 바뀌어서 나왔다. 즉 2012년 10월 이후에는 새 제품을 사면 혹시 256MB일까 걱정하지 않아도 된다. 하지만 중고로 산다면 살때 램의 크기를 물어봐야 하고 도착한 물건이 Rev1인지 Rev2인지 확인하는 과정이 필요하다. (램이 512MB이냐 256MB 이냐는 정말 큰 차이다.) 또한 Rev1과 Rev2의 GPIO 핀번호가 다르니 개발자 입장에서는 자신의 보드의 버젼을 알아볼 필요가 있다.


1. 라즈비안에서 알아보기

라즈비안으로 부팅해서 CPU 정보를 보면 라즈베리파이 보드의 버전을 확일 할 수 있다. 'sudo /proc/cpuinfo/'를 입력하면 아래와 같이 정보가 출력되는데 Revision을 보면 된다. 필자의 라즈베리파이 보드의 Revision 번호는 000e이다. 아래의 표를 참고하면 000e인 필자의 라즈베리파이는 소니에서 만들어진 B 모델 Rev2(512MB) 임을 알 수 있다.



'Beta' => 'Beta Board'

'0002' => 'Model B Revision 1.0',

'0003' => 'Model B Revision 1.0 + Fuses mod and D14 removed',

'0004' => 'Model B Revision 2.0 256MB', (Sony)

'0005' => 'Model B Revision 2.0 256MB', (Qisda)

'0006' => 'Model B Revision 2.0 256MB', (Egoman)

'0007' => 'Model A Revision 2.0 256MB', (Egoman)

'0008' => 'Model A Revision 2.0 256MB', (Sony)

'0009' => 'Model A Revision 2.0 256MB', (Qisda)

'000d' => 'Model B Revision 2.0 512MB', (Egoman)

'000e' => 'Model B Revision 2.0 512MB', (Sony)

'000f' => 'Model B Revision 2.0 512MB', (Qisda) 


2. 라즈베리 파이 보드를 보고 구별하기

  위에서 알아봤듯이 A모델과 B모델은 생김새가 달라서 알아보기 쉽다. 그러나 B모델이 512MB인지 256MB인지 한눈에 알아보기는 쉽지 않다. 하지만 조금 자세히 들여다 보면 그 차이를 알 수 있다. 아래 두 사진의 중간에 보이는 검은색 네모박스가 메모리다. 큰 그림으로 보면 붉은색으로 밑줄 쳐놓은 곳을 볼 수 있는데 이게 2G(왼쪽) 이냐 4G(오른쪽)이냐에 따라서 왼쪽은 256MB, 오른쪽은 512MB로 구별할 수 있다.

   


참조

RPi.GPIO basics 2 – how to check what Pi board Revision you have

GERTBOARD! AND HOW TO TELL HOW MUCH RAM YOUR PI HAS WITHOUT TURNING IT ON


블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지금까지 22개의 포스트를 통해서 라즈베리파이에 라즈비안을 설치하고 XBMC를 설치하는 등 몇가지 세팅을 해왔다. 한번 세팅을 해놓고 계속 쓴다면 문제될 것 없지만 PC를 포맷하듯 초기화 시키고 싶을 때 혹은 여러대의 라즈베리파이를 세팅해야 할 때 등 전에 세팅해 놓은 것을 그대로 쓰고 싶을 때가 있다. 예를 들어 라즈베리파이 10대에 라즈비안과 XBMC를 설치하고 한글 설정 등 이런 저러 기본 설정을 해야한다고 할 때 하나하나 일일이 세팅을 한다면 매우 오랜 시간이 걸릴 것이다. XBMC 뿐 아니라 다른 기본 프로그램을 설치해야 하고 설치해야하는 라즈베리파이가 10개가 아니라 100개라면 그 일의 양은 기하급수적으로 늘어 날 것이다. 이럴 때 커스트마이즈된 라즈비안 이미지를 이용하면 문제가 쉽게 풀린다. 이번 포스트에서는 라즈비안 백업이미지를 만드는 방법에 대해서 알아보자.


① 백업하기 원하는 SD카드를 윈도우 PC에 마운트 한다.


② Win32 Disk Imager를 실행시킨다. Win32 Disk Imager는 지난 포스트 라즈비안 설치하기에서 라즈비안을 SD카드에 설치하는데 사용했던 프로그램으로 여기에서 다운 받을 수 있다.


③ 아래 그림에서 폴더모양을 클릭해서 이미지를 백업하고자 하는 디렉토리를 찾아 가서 My_Raspbian.img를 입력하고 열기 버튼 누른다.



④ 장치는 에서 마운트한 SD카드를 선택하고 읽기 버튼을 누르면 이미지 백업이 시작된다.


⑤ SD카드의 용량에 따라 십여분 정도 기다리면, 끝!



⑥ 작업이 제대로 완료되었다면 ③에서 지정한 폴더에 My_Raspbian.img가 생성된 것을 확인할 수 있다.


⑦ 이제 생성된 이미지를 이용해서 복구하기만 하면 된다. 복구하는 방법은 지난 포스트 라즈비안 설치하기를 참조하면 된다.


※ 그런데 이미지 파일의 크기가 무려 15기가다.(이것은 SD카드의 용량에 따라 다르다). 압축을 하니 3기가로 줄었지만 여전히 크다. 하드디스크에 백업해놓을때 용량을 더 차지하는 문제 보다 큰 문제는 이렇게 15기가 짜리 이미지를 만들어 놓으면 나중에 8기가나 4기가짜리 적은 용량의 SD 카드에 사용할 수 없다는 문제가 있다. 적은용량의 SD카드가 있다면 이를 이용해서 백업 이미지를 만들어두는 것을 권장한다.

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 스마트폰을 XBMC 리모컨으로 사용하기에서는 XBMC 공식 리모컨 사용법에 대해서 알아봤다. 그리고 XBMC에서 쉽게 유튜브 비디오 재생하기에서는 무슨 이유에서인지 XBMC 공식 리모컨에서 유튜브 동영상 재생하는데 문제가 있어서 Yatse를 이용해서 쉽게 유튜브 비디오를 재생하는 법을 알아봤다. 처음에는 당연히 XBMC 공식 리모컨이 더 좋을 거라 생각해서 받아서 썼었는데 Yatse를 써보니 더 많은 기능을 지원하고 좀 더 사용자를 배려한 것 같아서 마음에 들었다. 모든 기능이 무료가 아니라는 점이 아쉬움에도 불구하고 Yatse를 더 선호하게 되었다. 이번 포스트에서는 Yatse가 XBMC 공식 리모컨 보다 나은 점에 대해서 알아보자.

 

1. 유튜브 동영상 플레이

  이거는 XBMC 공식 리모컨에서도 지원하는 기능인데 무슨 이유인지 필자의 스마트폰으로 제대로 돌아가지 않았기 때문에 객관적으로 Yatse가 낫다고 할 수는 없겠지만 필자 사적으로는 Yatse를 사용하게 된 이유이다.

 

2. 잠금화면 제어

  잠금화면 제어는 아이스크림 샌드위치 이후로 생긴 기능으로 알고 있는데 팟캐스트 앱과 같이 미디어플레이어 기능을 사용하는 앱에서 재생중인 미디어를 정지시키거나 일시 정지된 미디어를 다시 재생하는 등 간단한 제어를 아래와 같이 잠금 화면에서 할 수 있게 해주는 기능이다. 감사하게도 Yatse에 이 기능이 옵션으로 들어가 있다. 설정-일반설정-잠금 화면 제어에 체크를 하면 된다.

잠금화면 제어

 

3. 추가기능 라이브러리

  두개의 앱 모두 라이브러리 기능을 제공한다. 하지만 XBMC 공식 리모컨에는 없는 추가기능 라이브러리가 Yatse에는 있다. 왼쪽 아래 사진은 앱에서 XBMC에 깔려있는 추가기능을 불러온 화면이고, 오른쪽 아래는 그중 YouTube 추가기능을 선택했을 때 화면이다. XBMC에서 사용하는 방법 그대로 Yatse에서 쉽게 YouTube 추가기능을 사용할 수 있다.

Yatse 추가기능 Yatse 추가기능

 

4. 가상키보드(한글입력)

  가상키보드를 사용할 수 있다는 점도 Yatse의 큰 장점이다. 아래 사진의 가운데 윗부분을 보면 키보드 같은 모양이 있는데 이를 클릭하면 키보드가 나오고 이걸 이용해서 입력할 수 있다. 이로서 무선 키보드를 사지 않고도 무선 키보드를 이용하는 셈이 되고, 더욱이나 한글 입력이 가능해서 정말 좋다.

 

Yatse 가상 키보드(영문) Yatse 가상 키보드(한글)

 

5. 전원 동작

  또하나 강력한 기능이 바로 종료 기능이다. XBMC 공식 리모컨에서는 XBMC 종료기능만 지원한다. 하지만 Yatse에서는 시스템 종료, 최대 절전, 다시 시작 등 여러 모드의 종료를 지원한다. 시스템 종료나 다시 시작과 같이 sudo 권한이 필요한 기능은 XBMC가 sudo 권한으로 실행되었을 때만 가능하다. 모르는 사람은 이전 글 부팅시 XBMC sudo로 자동 실행을 참조하자.

Yatse 전원 동작

 

  위의 다섯가지 기능 외에도 Yatse에는 좋은 기능들이 많이 있다. 그 중 일부는 돈을 주고 사야해서 사용해보지 못했다. 특히 폰에 있는 동영상을 바로 XBMC로 볼 수 있는 기능은 쓰고 싶은데 무료로 쓰고 있는지라 아쉽다. 리모컨의 음소거 버튼 같이 작은 것에서도 Yatse가 XBMC 공식 리모컨 보다 사용자를 더 배려했다는 점을 알 수 있다. 그리고 마지막으로 Yatse의 디자인이 훨~씬 낫다. 미적감각이라고는 찾기 힘든 필자가 봐도 확연히 드러난다. 이러한 이유로 어떤 리모컨 앱을 써야하는지 고민하는 사람들에가 필자는 Yatse를 추천한다.

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트에서 알아봤듯 sudo로 XBMC를 시작하거나 다른 계정으로 새로 시작할 때 또는 새로운 라즈베리파이에 XBMC를 깔 때 설정을 모두 다시 해줘야한다. 하나하나 세팅을 다시하면 시간도 걸리고 귀찮을 것이다. 이럴때 한번에 예전 세팅을 그대로 가져올 수 있다면 얼마나 좋을까? 역시나 사람들의 생각이 비슷한지 이미 그런 기능을 하는 추가기능이 존재했다. 이번 포스팅에서는 이에 대해 알아보자.

 

1. XBMC Backup 추가기능 설치

① 프로그램에 들어가서 아래와 같이 XBMC Backup 추가기능을 찾아서 클릭한다.

 

 

 

② 추가기능 정보 창에 설치를 클릭하면 설치 끝.

 

 

2. XBMC Backup 추가기능 설정 하기

① XBMC Backup에 오른쪽 클릭을 하여 추가기능 설정을 클릭한다.

 

② 원격 경로 유형을 경로 탐색으로 바꾸고 밑에 원격 경로 탐색을 클릭해서 세팅을 저장하고자 하는 디렉토리를 설정해준다.

 

③ 파일 선택에서 백업을 원하는 항목들을 선택한다.

 

3. 백업 하기

 

 

4. 복구 하기

① 새로 세팅하고자 하는 XBMC에 위에서와 같은 방법으로 XBMC Backup을 설치하고 XBMC Backup 설정을 한다.  

② 이번에는 백업이 아닌 복구를 클릭한다.

 

③ 백업된 디렉토리중 원하는 세팅이 백업된 디렉토리를 선택하면 백업이 시작된다.

 

 

④ 복구가 끝났다.

 

  위에 사진에 보니 라이브러리와 디렉토리 설정등이 모두 복구되었다. 그런데 이상한점이 하나 있다. 라즈베리파이를 재시작 했는데도 언어 설정이 영어에서 한국어로 바뀌어야 하는데 그렇지 않다. 확인해보면 XBMC 시스템에서 설정한 모든 것이 복구되지 않았다. 원인을 모르겠다. XBMC Backup 추가기능에 문제가 있는 것인지. 그렇다고 포기할 수는 없다.

 

5. 시스템 세팅 복구 하기

  XBMC Backup 추가기능이 어떤 일을 하는지를 알면 해결의 실마리를 찾을 수 있다. XBMC Backup은 단순히 '.xbmc/userdata/' 밑의 모든 파일을 저장했다가 원하는 곳으로 복사해주는 기능만 하는 듯 보인다. 시스템 세팅이 바뀌지 않았다는 말은 이 중에 어떤 파일을 제대로 복사해주지 못한다는 뜻이다. 바로 그 파일이 'guisettings.xml' 이다.

 

  아래 사진 첫줄에 'sudo find / -name guisettings.xml'는 guisettings.xml이 어느 디렉토리에 있는지 알려주는 명령이다. 아래에서 첫번째 두개는 백업데이터 안에 들어있는 것이고, 세번째는 사용자 pi가 그냥 'xbmc-standalone'으로 XBMC를 실행, 네번째는 사용자가 'sudo xbmc-standalone'으로 XBMC를 실행, 마지막은 부팅시 sudo 권한으로 실행시켰을 때 읽어 오는 세팅 파일이다. 그래서 'sudo cp /home/pi/.xbmc/userdata/guisettings.xml /.xbmc/userdata/guisettings.xml'와 그 밑의 명령어로 복사를 시켜주고 라즈베리파이를 재시작하면 설정이 적용된 것을 확인할 수 있다.

 

 

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 부팅시 XBMC 자동 실행에서 XBMC를 부팅시 자동 실행하는 법에 대해서 알아 보았다. 이번에는 sudo로 XBMC를 자동 실행 하는 방법을 알아 보도록 하겠다. 우선 sudo로 실행하는 것이랑 그냥 실행하는 것이랑 무슨 차이가 있길래 sudo로 실행하려고 하는 것일까? 필자가 sudo로 실행시키려고 하는 이유는 한가지 이다.

 

  필자는 라즈베리파이에 키보드를 항상 달아 놓기를 원하지 않았다. 마땅히 놓을 곳도 없고 아무래도 전기도 조금 더 쓸것이고, 게다가 키보드 하나를 별 쓸일 없는 곳에 묶어두는 것이 못마땅 해서이다. 거의 모든 작업은 XBMC 리모컨으로 할 수 있었지만 XBMC를 종료하면 다시 콘솔로 돌아가서 콘솔에서 라즈베리파이를 끄는 명령어를 입력해야 하니 키보드를 떼어 낼 수도 없는 일이었다. 하지만 sudo 권한으로 XBMC를 실행 시켰을 때는 시스템 종료를 시킬 수 있다.

 

  우선 XBMC 부팅시 자동 실행에서 설명한 대로 라즈베리파이 부팅시 XBMC가 자동 실행되도록 세팅을 한다. 그 후 'sudo nano /etc/init.d/xbmc'를 입력해서 아래 빨간 밑줄 처럼 sudo를 앞에 추가한다. 그리고 재부팅 하면 부팅시 sudo 권한으로 XBMC를 실행하게 된다. 

 

  sudo 권한을 가지고 XBMC가 실행되었다면 아래와 같이 종료버튼을 눌렀을 경우 종료, 시스템 종료, 사용자 지정 종료 타이머, 재시작의 4가지 옵션을 가진 메뉴가 나온다. 시스템 종료를 누를 수 있기 때문에 XBMC를 종료하고 다시 시스템을 종료시키는 번거러움도 없어지고 키보드가 없이도 종료시킬 수 있다.

  그런데 아래 사진을 보면 뭔가 이상하다. 한글 설정이 안되어 있다. 비디오 라이브러리도 없어졌다. 이게 무슨 날벼락인가? 앞에서 설정해놓은 모든 것이 사라지다. 이런 이유는 라즈비안 XBMC는 실행한 사용자마다 세팅을 따로 저장하는데 sudo로 실행하는 바람에 전에 세팅해놓은 것은 다 날아가고 새로 다시 세팅을 해야하게 된 것이다. 아무 세팅도 안한 상태라면 상관 없지만 다시 세팅을 하는 것이 유쾌할 리 없다. 그래서 다음 포스트에서는 다시 세팅을 하지 않고 예전 세팅을 그대로 가져오는 방법을 알아보도록 하자.

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 XBMC에서 유튜브 비디오 재생하기에서 유튜브 비디오가 소리만 나올 때 비디오 나오도록 설정하는 것을 알아보았다. 이제 XBMC에서 유튜브를 재생 시킬 수 있지만 XBMC에서 유튜브 비디오를 검색해서 보는것을 추천하지 않는다. 검색하는데 시간이 많이 걸리기 때문이다. 이번 포스트에서는 유튜브 비디오를 쉽게 볼 수 있는 방법에 대해서 알아보도록 하자.

 

1. 유튜브 계정에 연결해서 보기

  위에서 언급했듯 유튜브 탐색이나 유튜브 추천 동영상을 불러오는데 상당한 시간이 걸린다. 이때 좋은 방법은 스마트 폰이나 컴퓨터에서 유튜브에 로그인 해서 좋아하는 비디오나 나중에 볼 동영상으로 등록해 둔 뒤 XBMC에서 보는 것이다.

 

① 비디오-추가기능-YouTube에 들어온다. 내가 좋아하는 비디오를 클릭하거나 나중에 볼 동영상을 클릭한다.

 

② 리스트에 있는 동영상중 보고싶은 동영상을 클릭하면 재생된다.

 

  위의 방법은 매우 기본적인 것으로 사전에 폰이나 컴퓨터로 먼저 검색하고 난 뒤에 XBMC에서 유튜브 플레이를 하기위해 몇단계를 더 거쳐야 하므로 효율적인 방법은 아니다. 이걸 설명하기 위해서 포스팅 한것은 아니니 바로 이어서 실제로 XBMC에서 효과적으로 유튜브 동영상을 재생하는 방법을 알아보자.

 

2. XBMC 리모컨으로 재생하기

  지난 포스트 스마트폰을 XBMC 리모컨으로 사용하기에서 XBMC 공식 리모컨을 설치하고 사용하는 법에 대해서 알아보았다. 지금 부터 알아갈 방법은 XBMC 공식 리모컨 앱에서도 지원하는 것으로 보이나 무슨 이유에서 인지 필자의 폰과 라즈베리파이에서는 제대로 작동하지 않았다. 그래서 다른 리모컨앱을 찾아보던 중 Yatse라는 앱을 사용해보았는데 XBMC 공식 리모컨 앱보다도 훨씬 사용하기 편하고 유튜브 재생도 가능해서 이 앱을 사용하기로 했다.

 

① Play 스토어에서 Yatse를 설치한다.

Yatse

 

② Yatse를 실행하면 아래와 같은 첫 화면이 표시되고 시작을 누르면 호스트를 추가할 수 있는 화면이 나올텐데 이때 스마트폰을 XBMC 리모컨으로 사용하기에서와 같은 방법으로 호스트를 추가한다.

Yatse 

 

 

③ Yatse의 기능들은 다음 기회에 알아보도록 하고 이번에는 유튜브 재생에 촛점을 맞추고 알아보자. 폰에서 유튜브 앱을 켜고 보고싶은 동영상을 찾는다. 아래 사진에서 붉은색 박스로 둘러싸인 공유 아이콘을 누르면 다음 창이 뜬다.

 

② 아래 사진에서 보면 Play on XBMC와 XBMC로 보내기가 있는데 둘다 같은 기능을 하는 것으로 전자는 XBMC 공식 리모콘, 후자는 Yatse의 기능이다. Yatse의 XBMC로 보내기를 클릭해서 실행시키면 다음 사진처럼 유튜브 스트림을 열어서 재생을 시작한다.

 

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

   RCA 영상선을 이용해서 라즈베이를 TV에 연결했었는데 아무래도 해상도가 낮아서 HDMI 출력을 이용해서 TV에 연결하기로 했다. 하지만 TV에 HDMI 입력단자가 없어서 HDMI에서 VGA로 변경해주는 젠더가 필요했다. 지난주에 주문한 젠더가 이제야 도착해서 연결해보았다.

 

1. HDMI to VGA 젠더 연결하기

  아래 사진에 보이는 검정색 물건이 HDMI 신호를 VGA로 변경해 주는 젠더이다. 아래와 같이 TV에 연결된 VGA케이블을 젠더의 VGA 단자에 연결하고 HDMI 부분은 라즈베리파이의 HDMI 출력단자, 즉, 사진의 5번에 연결하면 자동으로 TV에 라즈베리파이 화면이 출력된다. 

 

 

※ RCA영상 출력과 HDMI 출력 해상도 비교

 

 

2. XBMC 오디오 설정하기

  HDMI는 영상과 오디오를 한번에 전송하기 때문에 HDMI로 연결하면 자동으로 XBMC의 출력도 HDMI로 변경된다. 하지만 VGA는 영상만 전송하기 때문에 오디오는 예전과 같이 3.5미리 스테레오 단자로 출력이 되어야 한다. 그러나 HDMI로 연결할 때 자동으로 오디오 출력도 HDMI로 변경시키기 때문에 소리가 안나올 수도 있다. 그럴 경우 아래와 같이 오디오 설정에 들어가서 오디오 출력을 아날로그로 변경해주면 끝! 

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트에서 알아봤듯이 유튜브 추가기능을 설치하고 사용하는 것은 어렵지 않았다. 하지만 비디오가 정상으로 플레이가 되지 않았다. 처음에는 유튜브 추가기능에 문제가 있는가 했지만 유튜브 뿐만 아니라 비디오 팟캐스트도 같은 문제가 있었다. 다음으로 코덱 문제인가 하는 의심을 했지만 팟캐스트를 다운 받아서 파일 재생을 하면 제대로 나오는 것을 봐서는 코덱 문제도 아닌 것 같았다. 몇일을 찾던 중 Stack Exchange - Raspberry Pi Community에서 해결의 실마리를 찾았다.

 

1. 라즈베리파이 펌웨어 업데이트

  콘솔에서 'sudo apt-get install rpi-update'를 입력하면 스스로 펌웨어를 업데이트 한다.

 

2. GPU 메모리 크기 키우기

  정확하게는 원인은 모르겠지만 GPU 메모리 크기와 관련이 있었던 것 같다. 아래와 같이 /boot/config.txt 파일을 열어서 gpu_mem=128을 추가하거나 수정한다.

 

  이제 이전 포스트에서 처럼 유튜브 동영상을 재생하면 아래와 같이 비디오가 재생되는 것을 확인 할 수 있다. 이것으로 보성이 형님과의 의리를 지켰다!!

 

  다음 포스트에서는 쉽게 유튜브 비디오 재생하는 방법에 대해서 알아보도록 하자. 이것으로 이번 포스트는 마무으리~~

 

참조 : Stack Exchange - Raspberry Pi Community

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  몇일 전부터 XBMC를 이용해서 유튜브 동영상을 보는 것을 하려고 했는데 문제가 있었다. 무엇이 원인인지도 알 수 가 없는 상태에서 검색을 해도 답을 찾기가 쉽지 않았다. 이번 포스트에서는 라즈비안 XBMC에 유튜브 추가기능(Adds-On)을 설치하는 방법과 재생시 생기는 문제에 대해서 알아보자.

 

1. XBMC 추가기능(Adds-On) 설치

  XBMC에는 여러 종류의 추가기능을 설치해서 사용할 수 있다. 추가기능을 설치하는 방법은 모든 추가기능에 동일하므로 그 중 가장 대표적인 유튜브 추가기능을 설치 하는 것으로 설명을 하자.

 

① 비디오-추가기능 선택

 

② 더 가져오기를 선택해서 YouTube를 찾아 클릭 후 설치

 

 

 

③ 비디오-추가기능에 보면 YouTube가 추가된 것을 확인 할 수 있다.

 

2. 유튜브 추가기능 설정하기

  처음 유튜브 추가기능을 실행하게 되면 설정화면이 뜬다. 이때 유튜브 계정 사용자명과 비밀번호를 입력하면 자신이 업로드 비디오나 최근에 봤던 비디오 좋아하는 비디오 등을 쉽게 볼 수 있다. 설정 변경을 원하면 플러그인 설정 변경을 눌러서 변경 할 수 있다. 

 

① 사용자명과 비밀번호를 입력한다.

 

② XBMC에서 유튜브 동영상을 검색해서 볼 수도 있지만 꽤 느려서 추천하지는 않는다. 유튜브 비디오를 쉽게 재생하는 방법은 다음 포스트에서 알아보도록 하겠다.

 

③ 리스트에 있는 동영상을 클릭하면 재생된다.

 

※ 하지만 비디오는 나오지 않고 소리만 재생이 되었다. 다음 포스트에서는 이 문제를 해결하는 방법을 알아보도록 하자. 

 

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 두 포스트 [라즈베리파이 기초] (6) 콘솔 화면 캡쳐, [라즈비안 XBMC] (7) XBMC 화면 캡쳐를 통해서 콘솔 화면과 XBMC 화면을 캡쳐하는 것을 소개했었다. 하지만 XBMC 화면 캡쳐의 경우 비디오 부분이 검은색으로 표시되는 문제가 있었다. 해결책을 찾던중 raspi2png라는 프로그램을 찾게 되었다.

 

1. Git Clone

  raspi2png를 다운 받기위해서는 크게 두가지 방법이 있다. 하나는 GitHub의 raspi2png 페이지에서 다운로드 받아서 라즈베리파이로 전송하는 방법이다. 하지만 이보다는 Git Clone을 이용하는 것이 라즈베리파이에는 더 적합하다.

 

  raspi2png 페이지에 가면 https clone url이 https://github.com/AndrewFromMelbourne/raspi2png.git 라는 것을 확인 할 수 있다. 라즈비안 콘솔에서 'git clone https://github.com/AndrewFromMelbourne/raspi2png.git'를 입력 하면 raspi2png라는 디렉토리가 통째로 저장된다.

 

2. 컴파일

  1번에서 다운로드한 디렉토리 안에 실행파일이 포함 되어 있기 때문에 컴파일을 할 필요는 없지만 필요할 경우도 있으므로 컴파일하는 단계부터 알아보자. 컴파일에 앞서 libpng12-dev가 먼저 설치 되어있어야 한다. 이를 위해 콘솔에서 'sudo apt-get install libpng12-dev'를 입력한다. 설치가 완료되면 'make'를 입력하면 끝! 아래에 보면 raspi2png 파일이 생성된 것을 확인 할 수 있다. 

 

3. 실행

  실행하는 법도 매우 간단하다. 콘솔에서 './raspi2png'를 입력하면 snapshot.png라는 이름으로 라즈베리파이의 화면이 캡쳐되어 저장된다. -h와 -w와 같이 높이와 너비를 설정할수 있는 옵션도 있고 -p를 이용해서 저장되는 위치와 이름을 설정 할 수 있다. 아래 사진을 보면 XBMC 스크린샷에서는 검게 표시되던 비디오 화면이 아주 잘 캡쳐된 것을 확인 할 수 있다.

 

 

4. 스크립트

  이대로 사용해도 되지만 지난번과 마찬가지로 타임스템프를 이용해서 스크린샷 파일 이름을 자동으로 설정하도록 스크립트를 짜보았다. 쉘스크립트 저장하고 사용하는 방법은 [라즈베리파이 기초] (6) 콘솔 화면 캡쳐 5번에서 이미 설명했으므로 참조하기 바란다.

#!/bin/bash DATE=$(date +"%Y%m%d%H%M%S") DIR=/home/pi/Screenshots OPT= pOPT= pFlag=false while getopts ":p:vh:w:t:d:H" opt; do case $opt in p) pOPT="-p $OPTARG" pFlag=true ;; h) OPT="$OPT -h $OPTARG" ;; w) OPT="$OPT -w $OPTARG" ;; t) OPT="$OPT -w $OPTARG" ;; d) OPT="$OPT -d $OPTARG" ;; v) OPT="$OPT -v" ;; H) OPT="$OPT -H" ;; \?) echo "Invalid option: -$OPTARG" >&2 exit 1 ;; :) echo "Option -$OPTARG requires an argument." >&2 exit 1 ;; esac done if $pFlag; then echo "./raspi2png $OPT $pOPT" sudo ./raspi2png $OPT $pOPT else echo "./raspi2png $OPT -p $DIR/$DATE.png" sudo ./raspi2png $OPT -p $DIR/$DATE.png fi

 

참조 : Andrew 졸라땡큐~

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  XBMC에서 키보드를 많이 쓸 일은 없지만 한번씩 가상키보드로 입력하려할 때 밀려오는 짜증은 어쩔 수가 없다. 그런데 이상하게도 라즈비안 XBMC에서는 키보드로 입력을 할 수 없게 되어있다. 이번 포스트는 키보드로 입력을 할 수 있도록 하는 방법을 알아보도록 하자.

 

  방법은 의외로 매우 간단하다. 'sudo chmod 0777 /dev/tty0'만 입력하면 끝! 매번 실행시키기 귀찮으니까 부팅시 실행되도록 /etc/rc.local에 위의 명령어를 추가하면 된다.

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,