라즈베리파이에 레트로파이를 얹어보자. (+ 듀얼쇼크 3도!)

|

이게 애초에 구매한 목적 되시겠다. (그런데 라즈베리파이는 Raspberry Pi 인데 레트로 파이는 Retropie다. 같은 파이가 아니더군;)


이놈은 Emulation Station이라는 에뮬 프로젝트의 프론트 엔드, 그러니까 통합 그래픽 GUI를 지원하는 툴 되시겠다. (인것 같다. 아니, 나도 잘 모르겠다;) 아마 recalbox도 에뮬스테이션의 프론트 엔드라고 알고 있는데, 그놈은 제약이 더 많은 것 같아서 보류. (하지만 뭔가 더 완성도 높게 생겼다)


일단 이미지를 구해보자.


참고 사이트 : http://blog.petrockblock.com/retropie/ (요게 아마 공식사이트인듯 하다)

참고 사이트 : http://egloos.zum.com/kieru/v/5809421 (국내에서 먼저 깔아보신 선구자. 정리 내용이 도움이 많이 됐었다.)


기본적으로 두번째 블로그 내용처럼 진행할거다.


1. 이전 포스팅 내용처럼 이미지를 굽고, 부팅 완료 후 F4 누르고 커맨드 라인으로 빠진다.

2. sudo raspi-config (기본 세팅 프로그램이다)

 1) Expand Filesystem : 안해주면 SD 카드 용량이 부족할거다. 리눅스 파일 시스템을 좀 알면 파티션 하나 만들어서 수동으로 마운트 해줘도 될듯 하다. (나는 파티션 하나 다시 파는걸로.)

 2) Change User Password : 필수다.

 3) Advanced Options 에서,

 3-1) SSH : 원격 접속이 필요하면 한다. 가급적 해준다.

 3-2) Memory Split : GPU 메모리를 할당한다. 256 써줬다.

2-1. reboot


참고 사이트 : http://kelkit.tistory.com/29 (raspi config에 대해서 설명하고 있다. 좀 된 버전 같아서 최신이랑 틀리지만 궁금하면 참고한다.)


이어서,


3. sudo apt-get update

4. sudo apt-get upgrade (두 개는 라즈베리파이에 OS를 얹고 네트워크를 잡은 후에 기본으로 해야 하는듯 하다)

5. sudo RetroPie-Setup/retropie_setup.sh

 1) 이미 깔려 있으니까 인스톨은 실행하지 않아도 되는듯 하다. (난 1번을 깔았지만 아마도 안해도 될거야;;) 참고로 2번을 선택하면 20시간 동안 이걸 과연 취소해야 하나 말아야 하나 고민하게 될거다.

 2) Update RetroPie Setup script 실행

 3) Setup / Configuration 실행

 3-1) 음 다른건 모르겠고, 318번 Install PS3 controller driver 실행

 3-2) 그 외에 필요한 것들 실행. (되어 있는게 있고 안되어 있는게 있다. ps3 드라이버는 없었고, 삼바는 자동으로 되어 있더군)

6. reboot


318번 실행해도 잘 안될거다. 이상하게 패키지가 좀 빠져 있는듯. 스크립트에 qt를 쓰는듯 한데, 이게 정작 패키지에는 빠져 있다. 아래 패키지를 설치하자.


sudo apt-get pyqt4-dev-tools (파이썬과 QT관련 패키지들이 무수히 깔리고, 대략 30메가 정도 소요된다)


그 다음에 다시 318번 실행. 일단 설치는 되는듯 한데 또 확인이 안된다. 리붓을 하고 나면 데몬도 떠 있지 않다.

다행이네. 이걸 나중에 찾았었는데, 아래 사이트를 보고 한 무수한 삽질은 그닥 삽질이 아니였던게다.


참고 사이트 : http://www.rasplay.org/?p=4811 (레트로파이에 듀얼쇼크3 연결하는 방법. 한글판이다.)

참고 사이트 : https://dhoium3009.wordpress.com/raspberry-pi-connecting-multiple-ps3-controllers-via-bluetooth/ (레트로파이에 듀얼쇼크3 연결하는 방법. 영문판이다. 읽을수만 있으면 이쪽이 낫다.)

참고 사이트 : https://bugs.launchpad.net/qtsixa/+bug/1275306 (QtAxis에 버그가 있다. g++-4.7 버전에서 컴파일이 안된다고 하니 필히 패치하자.)


그 다음 진행은, (아래는 그냥 root 계정으로 진행한 것이니, 필요하면 적당히 sudo 해주자)


cd /home/pi/RetroPie-Setup/tmp/build/ps3controller (일단 설치를 마무리 하기 위해서 retropie_setup.sh이 작업하던 디렉토리로 간다.)

wget https://launchpadlibrarian.net/164563415/QtSixA-1.5.1-unistd-fix.patch (패치 파일을 다운받고)

patch -p1 < QtSixA-1.5.1-unistd-fix.patch (적용한다)

make (빌드하고)

make install (설치한다. 난 왠지 checkinstall이 안되더라. 왜그러지?)

sudo update-rc.d sixad defaults (서비스 자동실행에 등록한다)


이쯤 되면 which sixpair를 쳐보면 /usr/bin에 보일거다. 이건 플스 콘트롤러의 페어링할 대상 주소를 적어주는 역할을 한다. 파이에 연결할 플스 콘트롤러를 하나씩 꽂아주고 sixpair를 한번씩 실행한다.

그리고 맘편하게 다시 리붓.


대기 화면이 뜨면 콘트롤러 가운데 PS 마크 버튼을 눌러주면 정상적으로 동기화 된다. 만일 두개의 듀얼쇼크3을 연결하고 싶은데 꼭 한개의 콘트롤러만 연결되는 경우라면..


참고 사이트 : http://unix.stackexchange.com/questions/92036/enabling-bluetooth-discoverability-upon-start-up (이거다, 이거)


hciconfig에 다음 문구를 확인한다 : UP RUNNING PSCAN ISCAN


반드시 ISCAN이 있어야 하는데 이것이 없다, 라면 원래대로라면 /etc/bluetooth/main.conf 에서 뭔가 설정을 바꿔서 ISCAN이 켜지게 만들어야 하는데 이게 안되는거다. 임시방편식 처리라면,


hciconfig hci0 piscan 명령을 /etc/rc.local 에 넣는다. (반드시 exit 문구 전에 넣어야 한다.)


아참. 레트로파이의 자동실행은 왠지 모르게 /etc/profile에 emulationstations을 실행시키면서 하도록 넣어놨다. pi 계정의 .profile이 아닌게 좀 이상하더군. 어쨌든 sudo su를 할때마다 에뮬스테이션을 실행하려고 해서 좀 수정해봤다.

/etc/profile에서 가장 아래 다음 문구를,


[ -n "${SSH_CONNECTION}" ] || emulationstation


이렇게 바꾼다.


if [ ! -n "${SSH_CONNECTION}" ] && [ `whoami` = "pi" ]; then

  emulationstation

fi


pi 계정을 로그인 할때만 emulationstation을 자동 실행하도록 하는 코드다.


끗.


And