라즈베리 파이를 게임기로 만들기

2012년 10월 라즈베리 파이를 Mame을 사용해서 게임기로 만들기라는 제목으로 포스팅을 했었다. 저 포스팅을 참조하여 Raspberry Pi 3로 다시 게임기를 만들어 보기 위해서 삽질을 했지만 오래 되어서 그런지 어떤 라이브러리는 기본적으로 설치가 안되었고, 구글링을 해서 라이브러리를 받아서 설치를 했지만, 혹시나 해서 AdvencedMame를 검색을 해보았다. AdvencedMame는 많은 변화가 있었다. 4년이 넘게 지난 지금 AdvencedMame는 2016년 4월 v3.0을 릴리즈 하면서 Raspberry Pi를 공식적으로 지원하게 되었다. 현재 버전은 v3.4이다.


다운로드

설치 방법은 아주 간단해졌다. 

http://www.advancemame.it/download에서 직접 다운로드를 받아서 scp, ftp 등을 사용하여 raspberry pi로 설치파일을 옮겨주자. 

또는 아래 처럼 wget 으로 바로 받아도 된다.

wget https://github.com/amadvance/advancemame/releases/download/v3.4/advancemame_3.4-1_armhf.deb


설치하기

그리고 아래 명령어로 패키지를 설치 해준다. sudo dpkg --force-all -i advancemame_3.4-1_armhf.deb

그러면 /usr/local/bin/에 관련 실행 파일이 설치가 된다. 


설정하기

최초 한 번의 advmame 명령어를 입력하면 기본 설정 파일이 생성된다. 그리고 /home/pi/.advance/rom:/usr/local/share/advance/rom를 기본 롬 탐색 디렉토리로 사용한다고 나온다. 혹시 탐색 디렉토리를 변경하고 싶으면 /home/pi/.advance/advmame.rc 설정 파일에서 dir_rom /home/pi/.advance/rom:/usr/local/share/advance/rom 이부분을 변경하면 된다. 

advcfg 명령어로 화면 설정을 한다. 아래 그림 처럼 LCD 모니터 또는 HDTV를 선택하고, 적당하게 테스트를 해보고 정상적으로 나오면 save를 하고 나온다. 


키보드를 사용해서 게임을 해도 되지만, 알리익스프레스에서 약 3달러에 판매하는 NES 조이스틱 사용하는 것도 편리하다. 배송에는 약 1달이 걸린다. OTL


게임롬

게임롬은 mame rom으로 구글링을 하면 많이 나온다. 


실행방법

pi@raspberrypi:~/.advance/rom $ ls
bublbobl.zip  ddragonu.zip  ddragonw.zip  ddragon.zip  dkong.zip  suprmrio.zip

rom 디렉토리에 위와 같이 zip파일가 있으면 advmame 게임이름으로 아래와 같이 명령어로 실행을 하면 된다. 

advmame bublbobl


참조: 키 리매핑 방법

advj 명령어로 조이스틱 키 입력값을 확인하니, 기존에 구입했던 거와, 새로 구입한 조이스틱의 입력 값이 달랐다. 새로운것은 thumb가 0번, thumb2이 1번으로 설정되어 보글보글 게임시 문제가 없었는데, 기존에 가지고 있던 것은 thumb이 3번, thumb2가 2번으로 되어서 게임시 버튼이 하나 인식이 안되는 경우가 있어서, 아래와 같이 설정파일에 추가를 해주니 제대로 인식이 되었다. 

input_map[p1_left] joystick_digital[0,stick,x,left]
input_map[p1_right] joystick_digital[0,stick,x,right]
input_map[p1_up] joystick_digital[0,stick,x,up]
input_map[p1_down] joystick_digital[0,stick,x,down]
input_map[p1_button1] joystick_button[0,thumb2]
input_map[p1_button2] joystick_button[0,thumb]










​ ​​마음에 드셨으면 아래 추천 버튼을 꾹 눌러주세요. :]


저작자 표시 비영리
신고
Posted by KraZYeom

라즈베리 파이를 한창 가지고 놀고 있을 때, 라즈베리 파이 공식 싸이트와 제작자 블로그에서 아래 그림을 보고, 나도 한번 따라 해보자! 라는 마음을 가지고 외국에 전자 부품 파는 싸이트 ( https://www.adafruit.com/products/911 ) 에서 2.0인치 LCD를 주문을 넣었습니다.


가격은 후덜덜한 $39.95 한국에서도 더 싸게 분명히 구할 수 있을텐데 LCD 모듈은 눈에 보이는데 연결하는 보드를 잘 모르다 보니, 때마침 배송대행 할 것이 있었는데 껴서 구입했습니다. 


이미치 출처 http://blog.sheasilverman.com/2012/11/friday-post-push-it/photo-3/


그리고 도착했습니다. LCD 모듈과 보드와 연결된 놈입니다.



 아날로그 방식이여서 디스플레이에 연결된 노란색, 검정색 전선... 그리고 전원을 공급하는 빨간색, 검정색 전선. 오래된 지식으로 빨간색은 + 인것 같고, 검정색은 - 인 것 같은데.. 전원은 5A 12V인가 적혀 있기도 하고... 문제는 무엇으로 전원을 공급하냐! 남아도는 어뎁터를 발견하고 살펴보니 5A-12V 공급하네요. 어디가 +이고 -인지 또 고민고민... 살짝 구글링을 하니 안쪽이 +, 겉은 - 입니다. 그래서 대충 쑤셔넣고 감고해서 테입으로 쓱쓱. 라즈베리가 먼저 켜진 상태에서는 LCD가 작동을 안하고 리붓을 해주니 아래 그림과 같이 부팅되는 모습이 보입니다. ㅠㅠb 감동! 



xwindow 까지 실행하니 잘나오네요. 해상도가 낮아서 글자를 읽을수 없는 단점이 있긴 합니다. 


그리고 Mame로 보글보글을 실행해보니 잘됩니다. 


(비싼) 휴대용 게임기가 생겼어요. :-)


이왕 삽을 든거 집에 방치 중인 아두노이 사촌인 Makey Makey ( http://www.makeymakey.com/ ) 를 연결해보았습니다. 

잘 인식은 하나, 무슨 문제인지 모르겠지만 연속해서 키 입력이 되는지라... 일단 패스~ 



잘 연동해서 재미있는 짓을 한 번 해봐야겠습니다. :-) 




http://blog.sheasilverman.com 블로그 제작자 분께서 python으로 쉽게 mame를 설치하고 관리할 수 있는 스크립트를 공개 하였습니다.  https://github.com/ssilverm/PiMAME

저작자 표시 비영리
신고
Posted by KraZYeom

Siri Proxy 라즈베리 파이에서 구동하기


아이폰에서 동작하는 시리를 시리 프록시 서버를 사용하면 (하드웨어 삽질이 더 필요하지만) 차고의 문을 열거나, 집안의 온도를 바꾸는 등으로 다양하게 활용할 수 있다. 


설치 방법은 아주 간단하다. 리눅스가 익숙하지 않으면 아주 어려울 수도 있다. :-) 

아래 명령어는 라즈베리파이에서 실행을 하고, Ubunto 에서도 똑같이 실행할 수 있다. 어차피 고놈이 고놈이라. 


모든 것은 라즈베리 파이 또는 Ubunto 리눅스가 있다는 가정하에 시작된다. 설치 시간은 약 1시간 정도가 소요된다. 


1. 필요한 모듈들 설치하기

sudo apt-get install dnsmasq ruby build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion

'y'를 눌러서 계속 진행하기.


2. dnsmasq 설정 파일 변경하기

sudo vim /etc/dnsmasq.conf

약 60-70라인 부근에서 #address=/double-click.net/127.0.0.1 을 찾는다. 그리고 다음 텍스트를 타이핑한다. 

address=/guzzoni.apple.com/(라즈베리 파이 IP)

(라즈베리 파이 IP)를 라즈베리 파이의 IP로 변경한다. 


3. dnsmasq 재시작하기 

sudo /etc/init.d/dnsmasq restart


4. rvm-installer 실행하기

bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)


5. rvm 관련 설정하기

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"


6. .bash_profile에 rvm 관련 추가하기

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile


7. rvm 1.9.3 설치하기 (라즈베리파이에서는 약 30분 걸림)

rvm install 1.9.3

이 커멘드는 실행하는데 오랜시간이 걸린다. 특히 컴파일 부분이라 시간이 더 걸리니 참고 기다리자.


8. 1.9.3을 기본적으로 사용한다.

rvm use 1.9.3 --default


9. github에서 SiriProxy 내려받기

git clone git://github.com/plamoni/SiriProxy.git


10. SiriProxy 디렉토리로 이동하기

cd SiriProxy


11. 홈디렉토리에 .siriproxy 디렉토리 만들기

mkdir ~/.siriproxy


12. 예제 config 값을 siriproxy로 이름 변경하여 이동하기.

cp ./config.example.yml ~/.siriproxy/config.yml


13. siriproxy 설치

rake install


14. 인증서 생성하기

siriproxy gencerts


15. 배포하기(?)..

siriproxy bundle


16. siriproxy 서버 실행하기

rvmsudo siriproxy server

이 커멘드는 시리 프록시 서버를 실행 시킨다. "Starting SiriProxy on port 443.." 문구가 나올 것이다.


* config 값을 수정하면 15, 16번을 다시 실행해야 한다고 한다. 



iPhone 4S(5따위 가지고 있지 않아서 모른척)에서 설정. 


1. iPhone 4S에 ca.pem 인증서 설치하기

14번에서 만들어진 인증서를 iPhone 4S에 설치를 해야한다. 간단한 방법은 scp, ftp, afp 등을 사용해서 자신의 맥으로 옮긴다. 그리고 인증서 파일을 메일로 첨부한뒤, 아이폰에서 메일을 열고 첨부 파일을 터치하면 설치가 된다. 


2. WiFi DNS 주소 변경하기

iPhone 4S의 WiFi 설정으로 이동한뒤, 파란색 화살표 아이콘을 눌러서 WiFi 의 설정화면으로 이동한다. 명심해야 할 것은 라즈베리 파이와 iPhone 4S의 네트워크는 같아야 한다. DNS에 라즈베리 파이의 IP를 입력한다. 


3. Siri 테스트 하기

iPhone 4S의 홈버튼을 꾹~ 눌러서 시리가 나타나게 만든다. 그리고 "테스트 시리 프록시" 라고 말하면, 시리가 "Siri Proxy is up and running!" 이라고 대답하고, 터미널에서는 시리랑 대화 하는 패킷들이 주루룩 오고가고 있는 모습을 볼 수 있다.



이슈 및 해결 방법

설치 및 테스트를 하면서  4가지 이슈가 추가적으로 발생하였고 해결 방법을 공유 하도록 한다. 


1. No such file or directory - /root/.siriproxy/config.yml 이슈.


아래와 같이 siriproxy 서버를 실행을 하면 뭔가 파일을 찾을 수 없다는 메세지가 주루룩 뜬다. 

pi@raspberrypi:~/SiriProxy$ rvmsudo siriproxy server

Warning: can not check `/etc/sudoers` for `secure_path`, falling back to call via `/usr/bin/env`, this breaks rules from `/etc/sudoers`. export rvmsudo_secure_path=1 to avoid the warning./home/pi/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/psych.rb:297:in `initialize': No such file or directory - /root/.siriproxy/config.yml (Errno::ENOENT)

from /home/pi/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/psych.rb:297:in `open'

from /home/pi/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/psych.rb:297:in `load_file'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy/command_line.rb:143:in `parse_options'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy/command_line.rb:33:in `initialize'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/bin/siriproxy:6:in `new'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/bin/siriproxy:6:in `<top (required)>'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/bin/siriproxy:23:in `load'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/bin/siriproxy:23:in `<main>'


해결방법 : 

pi@raspberrypi:~/SiriProxy$ sudo mkdir /root/.siriproxy/

pi@raspberrypi:~/SiriProxy$ sudo cp config.example.yml /root/.siriproxy/config.yml


2. 443 포트를 사용하고 있다고 메세지(port is in use)가 뜨면서 종료. 

pi@raspberrypi:~/SiriProxy$ rvmsudo siriproxy server

Warning: can not check `/etc/sudoers` for `secure_path`, falling back to call via `/usr/bin/env`, this breaks rules from `/etc/sudoers`. export rvmsudo_secure_path=1 to avoid the warning.

Starting SiriProxy on 0.0.0.0:443..

/home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/eventmachine.rb:526:in `start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError)

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/eventmachine.rb:526:in `start_server'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy.rb:20:in `block in initialize'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `call'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run_machine'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy.rb:16:in `initialize'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy/command_line.rb:96:in `new'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy/command_line.rb:96:in `start_server'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy/command_line.rb:85:in `run_server'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy/command_line.rb:37:in `initialize'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/bin/siriproxy:6:in `new'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/bin/siriproxy:6:in `<top (required)>'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/bin/siriproxy:23:in `load'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/bin/siriproxy:23:in `<main>'


해결방법:

nginx에서 ssl 443 포트를 사용하고 있었는데, nginx (잠시) 종료

pi@raspberrypi:~/SiriProxy$ sudo service nginx stop 

Stopping nginx: nginx.

pi@raspberrypi:~/SiriProxy$ rvmsudo siriproxy server

Starting SiriProxy on 0.0.0.0:443..

SiriProxy up and running.


3. Warning: 메세지 

서버를 시작하면 아래와 같이 Warning: 메세지가 뜬다. 

pi@raspberrypi:~/SiriProxy$ rvmsudo siriproxy server

Warning: can not check `/etc/sudoers` for `secure_path`, falling back to call via `/usr/bin/env`, this breaks rules from `/etc/sudoers`. export rvmsudo_secure_path=1 to avoid the warning.

Starting SiriProxy on 0.0.0.0:443..


해결방법:

pi@raspberrypi:~/SiriProxy$ export rvmsudo_secure_path=1


4. iPhone 4S에서 시리를 실행할 때 server.passless.key를 찾을 수 없다고 시리서버에서 에러

Create server for iPhone connection

/home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/em/connection.rb:411:in `block in start_tls': Could not find /root/.siriproxy/server.passless.key for start_tls (EventMachine::FileNotFoundException)

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/em/connection.rb:409:in `each'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/em/connection.rb:409:in `start_tls'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy/connection/iphone.rb:15:in `post_init'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/em/connection.rb:58:in `block in new'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/em/connection.rb:49:in `instance_eval'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/em/connection.rb:49:in `new'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/eventmachine.rb:1462:in `event_callback'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run_machine'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy.rb:16:in `initialize'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy/command_line.rb:96:in `new'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy/command_line.rb:96:in `start_server'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy/command_line.rb:85:in `run_server'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/lib/siriproxy/command_line.rb:37:in `initialize'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/bin/siriproxy:6:in `new'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/gems/siriproxy-0.4.0/bin/siriproxy:6:in `<top (required)>'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/bin/siriproxy:23:in `load'

from /home/pi/.rvm/gems/ruby-1.9.3-p385/bin/siriproxy:23:in `<main>'


해결방법:

pi@raspberrypi:~/SiriProxy$ sudo cp ~/.siriproxy/server.passless.* /root/.siriproxy


제대로 서버가 시작되고 시리랑 통신이 되면 아래로그 처럼 패킷이 오고가고, 음성을 인식 하는 것을 확인 할 수가 있다. 

pi@raspberrypi:~/SiriProxy$ rvmsudo siriproxy server

Starting SiriProxy on 0.0.0.0:443..

SiriProxy up and running.

Create server for iPhone connection


start conn #<SiriProxy::Connection::Iphone:0x24d76a0 @signature=3, @processed_headers=false, @output_buffer="", @input_buffer="", @unzipped_input="", @unzipped_output="", @unzip_stream=#<Zlib::Inflate:0x24d75b0>, @zip_stream=#<Zlib::Deflate:0x22750e0>, @consumed_ace=false, @name="iPhone", @ssled=false>

[Info - Plugin Manager] Plugins loaded: [#<SiriProxy::Plugin::Example:0x265e960 @manager=#<SiriProxy::PluginManager:0x2274c18 @plugins=[...]>>]

[Info - iPhone] Received Object: LoadAssistant

[Info - iPhone] Received Object: SetRestrictions

[Info - iPhone] Received Object: ClearContext

[Info - iPhone] Received Object: SetBackgroundContext

[Info - iPhone] Received Object: StartSpeechRequest

[Info - iPhone] Received Object: SetRequestOrigin

[Info - User Location] lat: 37.33265096028488, long: 127.1206755237427

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - Guzzoni] Received Object: AssistantLoaded

[Info - Guzzoni] Received Object: SetConnectionHeader

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: FinishSpeech

[Info - Guzzoni] Received Object: SpeechRecognized

[Info - Plugin Manager] Processing '연습실을 폭식 '

[Info - Plugin Manager] Processing plugin #<SiriProxy::Plugin::Example:0x265e960>

[Info - Plugin Manager] No matches for '연습실을 폭식 '

[Info - Guzzoni] Received Object: AddViews

[Info - Guzzoni] Received Object: RequestCompleted

[Info - iPhone] Received Object: Metrics

[Info - iPhone] Received Object: ClearContext

Create server for iPhone connection

start conn #<SiriProxy::Connection::Iphone:0x296f0b8 @signature=5, @processed_headers=false, @output_buffer="", @input_buffer="", @unzipped_input="", @unzipped_output="", @unzip_stream=#<Zlib::Inflate:0x296efe0>, @zip_stream=#<Zlib::Deflate:0x296efc8>, @consumed_ace=false, @name="iPhone", @ssled=false>

[Info - Plugin Manager] Plugins loaded: [#<SiriProxy::Plugin::Example:0x2976a50 @manager=#<SiriProxy::PluginManager:0x296ed88 @plugins=[...]>>]

[Info - iPhone] Received Object: LoadAssistant

[Info - iPhone] Received Object: SetBackgroundContext

[Info - Guzzoni] Received Object: AssistantLoaded

[Info - iPhone] Received Object: SetRestrictions

[Info - iPhone] Received Object: ClearContext

[Info - iPhone] Received Object: StartSpeechRequest

[Info - iPhone] Received Object: SetRequestOrigin

[Info - User Location] lat: 37.33246262930172, long: 127.12103997179449

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - Guzzoni] Received Object: SetConnectionHeader

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: SpeechPacket

[Info - iPhone] Received Object: FinishSpeech

[Info - Guzzoni] Received Object: SpeechRecognized

[Info - Plugin Manager] Processing 'Test city Prokesh '

[Info - Plugin Manager] Processing plugin #<SiriProxy::Plugin::Example:0x2976a50>

[Info - Plugin Manager] No matches for 'Test city Prokesh '

[Info - Guzzoni] Received Object: AddViews

[Info - Guzzoni] Received Object: RequestCompleted

[Info - iPhone] Received Object: Metrics


참조 했던 싸이트 및 참고 할만 한 싸이트

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=9545&sid=f540e172fea915ee123c00d4b379722c&start=25

http://www.idownloadblog.com/2011/12/09/how-to-install-siri-proxy-tutorial-video/

http://www.raspberrypi.org/archives/tag/siriproxy

https://github.com/plamoni/SiriProxy

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=25118&p=231345

http://unleashthephones.com/2012/12/27/video-siri-proxy-raspberry-pi-get-siri-to-open-your-garage-door/

http://www.redmondpie.com/opening-garage-door-using-siri-and-a-raspberry-pi-video/


https://github.com/wayneeseguin/rvm/issues/1329

https://github.com/elvisimprsntr


저작자 표시 비영리
신고
Posted by KraZYeom

맥북에어에서 주로 작업을 하고 있는데, 가끔 토렌토를 사용하면 뭔가 꺼림직한 경우가 많다. 토렌토가 SSD나 HDD에 읽기 쓰기가 빈번하게 일어나다 보니 수명도 단축 시킬수 있다. 그래서 가지고 있는 라즈베리 파이를 토렌토 서버로 사용하기로 마음먹었다. 설정 방법은 의외로 간단했다. 차근차근 따라해보도록 하자. 



외장 하드 설정 방법은  라즈베리 파이로 타임 머신 서버 구성하기를 참조 하도록 한다. 



Trasnmission-daemon 설치 및 설정


1. 토렌토 클라이언트 transmission 데몬 설치

apt-get install transmission-daemon


2. transmission 데몬 정지

설치가 되면 바로 서비스가 시작된다. 설정값 수정을 위해서 데몬을 정시 시키도록 한다.

/etc/init.d/transmission-daemon stop


3. transmission 설정 값 수정 

다운로드 경로, 웹 클라이언스 접속 용 사용자 이름과 패스워드 설정을 한다.

vim /etc/transmission-daemon/settings.json


아래와 같이 수정이 필요한 파란색으로 표시된 특정 부분만 수정하도록 하자. 빨간색으로 표시된 부분인 포트는 웹 클라이언트 접속시에 중요하니 기억해도록 한다. 

"download-dir": "/mnt/Torrent",

"incomplete-dir": "/mnt/Torrent",

"rpc-password": "q1w2e3r4",

"rpc-port": 9091,

"rpc-username": "torrent",

"rpc-whitelist-enabled": false,


4. transmission 데몬 재시작

/etc/init.d/transmission-daemon start


5. 웹 클라이언트 접속하기 

웹 브라우저를 실행해서 아래 그림 처럼 라즈베리 파이 IP와 위의 빨간색으로 표시된 포트로 접속을 한다. 그리고 일반적으로 토렌토 클라이언트를 사용하 듯이 사용하면 된다. 


6. 이 후에는 samba, ftp, afp 등으로 접속해서 받으면 된다. 


** 주의 할 점은 다운로드 디렉토리의 퍼미션이 중요하다. 잘 설정해보도록 하자. 

저작자 표시 비영리
신고
Posted by KraZYeom

원문 : Your own cloud server with Owncloud on the Raspberry Pi


오늘날에는 관리, 동기화 그리고 파일 공유, 달력 공유, 주소록 공유, 음악 공유, 사진 공유가 널리 사용되고 있다. 이것들은 드롭박스, 슈가싱크, 플리커, 피카사 등과 같은 클라우드 서비스들이 제공하고 있다. 애플, 구글 그리고 마이크로소프트와 같은 큰 기업들 또한 이와 같은 서비스를 제공한다. 사람들은 하나의 계정으로 이모든 것이 사용가능 하다. "무료" 서비스가 매우 편안할 수 있지만, 이런 모든 서비스의 무료가 아닌 부분은 직접적인 제어를 못하는 서버에 여러분의 개인적인 정보가 저장되어 있고 개인정보는 자주 프로파일 광고 생성에 사용이 된다는 것이다. 만약에 Owncloud의 제어로 자신의 하드웨어 기기에서 데이터를 가지고 있기를 원한다면 꽤 흥미로운 선택이다. 달력, 주소록, 음악, 사진, 파일을 자신의 클라우드에서 관리할 수 있도록 해주는 CalDAV, CardDAV 그리고 WebDAV와 같은 멋진 서비스를 제공한다. 잠시후에 설치에 필요한 단계에 대한 간략한 개요를 제공한다. 그리고 모든 설치와 업데이트 과정을 자동화한 설치 스크립트를 제공한다. 동일한 스크립트로 나중에 OwnCload 설치를 업데이트하는 데 사용할 수 있다.


여기 Owncloud 설치에 필요한 몇 가지 단계에 대한 개요가 있다.

  1. ATP 팩키치 업데이트 및 업그레이드
  2. www-data 그룹이 존재하는지 확인
  3. Apache, PHP, SQLite와 같은 모든 필요한 패키치 설치
  4. 240MB 램과 16 MB 비디오 펌웨어 업데이트 수행
  5. SSL 연결에 사용되는 자체 서명된 인증서 생성 (1년간 유효)
  6. Owncloud에서 필요한 아파치 모듈 활성화
  7. 불필요한 리소스들을 비활성화
  8. 자체 서명된 인증서 사용을 위해 아파치 설정
  9. SSL 싸이트 활성화
  10. 병렬 아파치 프로세스 수를 제한
  11. 스왑 파일 크기를 512MB로 변경
  12. 최신의 Owncloud를 다운로드하고 설치하기
  13. 모든 /var/www 파일의 그룹 및 소유자를 재귀적으로 www-data로 변경
  14. 마지막으로 아파치 서비스 재시작

모든 과정을 자동화할 수 있고 Owncloud를 즉시 사용할 수 있는 설치를 제공하는 스크립트를 만들었다. 스크립트를 나의 Github 리포지토리에서 찾을 수 있다. 이 스크립트는 Raspbian 2012-07-15 배포판에서 테스트 되었다. (2013-02-09 배포판 테스트 완료)


처음으로 Git가 설치되어 있어야한다. 

sudo apt-get update

sudo apt-get install -y git dialog


최신의 PiCloud 설치 스크립트를 다음 명령어로 다운로드를 받는다.

cd

git clone git://github.com/petrockblog/OwncloudPie.git


스크립트를 다음 명령어로 실행한다.

cd OwncloudPie

chmod +x owncloudpie_setup.sh

sudo ./owncloudpie_setup.sh


초기 화면은 다음과 비슷할 것이다. 

1번을 선택하여 자신의 라즈베리 파이 서버 URL을 적는다. 그리고 2번 또는 3번을 선택하여서 설치를 한다. Nginx를 사용한 버젼은 추천한다. 


설치를 마치면 아래와 같이 접속 경로를 보여주고 아래 경로로 접속을 하면 관리자 생성 및 설정을 끝낼 수 있다.

관리자 사용자 이름, 패스워드 설정. Advenced를 선택하면 경로 및 DB 이름을 선택 할 수도 있다.

파일, 음악, 달력, 주소록, 사진을 관리 할 수 있다.

스크립트의 몇몇 부분의 영감을 이 블로그에서 얻었다.


이 스크립트가 사람들에게 조금이나마 도움이 되길 희망한다. 피트백이나 코멘트를 받으면 좋을 것 같다!


업데이트: 아파치 대신에 Nginx 웹서버를 사용 가능하도록 추가했다. Nginx서버는 아파치 처럼 많은 리소스를 사용하지 않는다. 그리고 빠르다. 업데이트된 스크립트는 리포지토리에서 찾을 수 있다.


WebDAV 접근하기 (iOS 용으로도 가능함)


Owncloud 인스턴스를 URL을 사용하여 WebDAV를 통해서 접근 가능하다. 

https://yourServerUrl/owncloud/remote.php/webdav/

파인더에서 Cmd+G 를 눌러서 Connect to Server 로 이동하면 된다.


그리고 선택한 사용자 이름과 패스워드로 로그인 한다. 라즈베리 파이 사용자 계정이 아니라, 위에서 생성한 계정이다.

Samba 처럼 파일 공유 서버로 사용가능하다.


iOS 와 연동하기

여러분의 iOS 디바이스의 달력과 주소록을 연동하기 원한다면, 이 정보가 도움이 될 수도 있다. iOS 설정에 대한 공식 Owncloud 위키에는 아직 몇 가지 문제가 있는것 처럼 보인다. 적어도 이 설정은 나에게는 Nginx 설정으로 동작한다.


달력 (CALDAV)

Server: https://my.servername.com/owncloud/remote.php/caldav/principals/USERNAME/

SSL enabled, port 443


주소록 (CARDDAV)

Server: my.servername.com:443/owncloud/remote.php/carddav/principals/USERNAME

SSL enabled, port 443


서버 설정의 차이를 주의하라!


주소록과 달력 데이터 백업하기

주소록과 달력 데이터의 설정과 백업에 매우 도움이 되는 문서를 찾았다. 

저작자 표시 비영리
신고
Posted by KraZYeom