라즈베리파이

라즈베리파이와 오픈프레임웍스에 오신것을 환영합니다

여러분은 지금 임베디드 리눅스 개발 세상에 들어오셨습니다. 이제부터 bash 스크립트, gcc, 선호하는 명령어라인 텍스트 편집기를 주로 사용하게 될 것입니다. 이곳에서는 screen이 여러분의 친구입니다. 보다 많은 정보는 bash에 man screen를 입력해보세요. 만약 여러분이 커맨드라인으로 리눅스에서 개발하는것에 무지하다거나, 커맨드라인 텍스트가 뭔지 전혀 모르겠다면, 운이 좋은겁니다! 여러분께 하나하나 올바른 방향으로 어떻게 시작할 것인지 알려드릴 테니깐요. 노트 : 여러분이 이미 짭짤한 베테랑이어서 vim+regX를 사용해 바로 코드를 적용하고 싶다면 시작 가이드로 바로 넘어가세요

bash 쉘

Bash는 커맨드라인 인터프리터로, 리눅스 또는 *nix 운영체제에서 전통적으로 제공되는 텍스트 기반 사용자 인터페이스를 제공하는 쉘입니다. 맥을 매일 사용하신 분들에겐 이미 bash 터미널이 내장되어 있는데, 응용프로그램>유틸리티>터미널 에서 찾을 수 있습니다. bash는 명령어라인 프로그램이나 유틸리티들을 실행할 수 있게 해줍니다. mkdir foo 라고 입력하면 foo라는 새 디렉토리를 만들지요. 혹은 cp라는 명령어나 mv 명령어로 파일또는 디렉토리들을 한곳에서 다른곳으로 복사/이동할 수 있습니다. 노트:디렉토리들을 복사할 때에는 cp -R이라고 입력해야하는데, 이는 재귀적(recursive)으로 복사하라는 의미입니다 또한 bash에서 컴퓨터가 사용하고 있는 IP를 확인할 수 있습니다. 대부분 아래와 같이 화면에 뱉어냅니다.

pi@raspberrypi ~ $ ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:ca:c2:da 
          inet addr:192.168.2.7  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:151 errors:0 dropped:0 overruns:0 frame:0
          TX packets:84 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:19899 (19.4 KiB)  TX bytes:10646 (10.3 KiB)

 lo       Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1104 (1.0 KiB)  TX bytes:1104 (1.0 KiB)

오픈프레임웍스 코어와 오픈프레임웍스 앱을 컴파일할때에는 gcc와 GNU make를 사용합니다. GCC(GNU Compiler Collection)는 자유 소프트웨어 재단(Free Software Foundation), GNU, Emacs, 그리고 몇몇 다른것들을 창시한 Richard Stallman에 의해 처음 작성되었습니다. make에 관한 더 많은 정보는 GNU make 매뉴얼이나, 훌륭한 튜토리얼을 읽어보시기 바랍니다.

bash와 bash 스크립트 작성에 관한 더 많은 정보는, bash 튜토리얼훌륭한 pdf bash 치트 시트가 훌륭한 레퍼런스가 될 것입니다.

텍스트 편집기 고르기

몇 하드코어 너드와 해커들은 텍스트 편집기를 뭘 쓸것인지를 가지고 싸우지만, 사실 올바른 정답은 없습니다. 여러분이 선택할 수 있는 편집기는 다양하지만, 잘 동작하는 세가지를 추천해드릴 수 있습니다.

나노(nano)는 아주 간단한 텍스트 편집기입니다. 모든 명령은 control+키의 스타일을 따릅니다. 따라서 쉽게 사용하려면 control올바른 위치 입니다.쳐러분이 처음 시작한다면 나노를 추천해드리고 싶습니다.

이맥스(emacs)는 아주 강력한 텍스 편집기로, 통합개발환경(IDE)이나 운영체제(OS)에 거의 가깝습니다. 아마도 이맥스에 대해서만 일주일동안 얘기할수 있겠지만, 여기 시작하기에 좋은 멋진 튜토리얼이 있습니다. 만약 여러분의 리눅스 이미지가 이맥스를 기본적으로 갖고 있지 않다면, sudo apt-get install emacs명령어를 실행해야 합니다.

마지막으로 빔(vim)은 하드코어 리눅스 유저를 위한 텍스트 편집기입니다. 인터랙티브 튜토리얼이나 요 재밌는 게임를 통해 complicated beast에 대해 배운다면 여러분도 하드코어 유저가 될 수 있습니다. 빔은 sudo apt-get install vim 명령어로 인스톨할 수 있습니다(역자 주 : 라즈베리파이에는 대부분 기본적으로 빔이 설치되어 있습니다). 예를들어 프로젝트의 ofApp.cpp파일을 편집하려면, testApp.cpp 명령어를 사용합니다.

라즈베리파이란

라즈베리파이는 저렴(35$ 이하)하면서 리눅스(와 다른 운영체제)를 구동할 수 있는 멀티미디어 컴퓨터입니다.

원래 개발을 위한 개발 플랫폼은 Raspbian Wheezy 리눅스 배포판이 사용되었었습니다. 이 배포판은 현재 하드웨어 부동소수점 처리(hardware floating point processor)에 최적화 되어있으며, soft float 데비안 wheezy 이미지보다 (오픈프레임 웍스 측면에서) 두드러지게 빨라졌습니다. (역자 주 : HW/SW float의 내용은 이곳:What do you mean by "soft float ABI" and "hard float ABI"?을 읽어보세요)

라즈비안 이미지는 apt-get 스타일의 패키지 관리를 제공합니다. 이는 우분투와 데비안 유저에게 익숙한데, 오픈프레임웍스로 개발할 때도 유용합니다.

최초의 아키리눅스 지원도 진행중입니다. 데스크탑용 아키리눅스 지원과 거의 비슷해질 것입니다.

현재 라즈베리파이용 오픈프레임웍스 개발은 develop-raspberrypi 브랜치로 진행되며, 일반 리눅스용 개발 전략과 아주 흡사합니다.

아래의 내용들을 포함해 큰 차이를 보입니다:

  • 새로운 makrfile 시스템. 이는 라즈베리파이 하드웨어의 특이성을 반영한 빌드 환경을 보다 쉽게 설정할 수 있고 빠르고 쉽게 파일, 헤더 등 라즈베리파이에서 동작하지 않는 특정 오픈프레임웍스 코어의 특징들을 (특별한 수정 없이) 배제시킬 수 있습니다. makefile들은 중요하게 언급됩니다.
  • 커스텀된 EGL-식 윈도우와 (ofAppEGLWindow를 통한) 이벤트 핸들링 시스템입니다. 네이티브와 X11 윈도우 그리고 입력 이벤트 관리들이 옵션으로 가능합니다.