티스토리 뷰

[업데이트 2016.10.11 10:11]


1) 블루투스 및 조이스틱 패키지 설치

아래와 같이 블루투스 및 조이스틱 관련 패키지를 설치합니다.

pi@retropie:~ $ sudo apt-get install bluez-hcidump checkinstall libusb-dev libbluetooth-dev 

** Retropie 4.0.2버전 기준 bluez-utils, bluez-compat deprecated됨. joystick 패키지는 Retropie를 최신 패키지로 update시 이미 최신 버전으로 반영 되어 설치 불필요합니다.

 

hciconfig를 통해 블루투스가 정상적으로 인식되었는지 확인합니다.

pi@retropie:~ $ hciconfig


아래와 같은 정보가 표시되면 정상적으로 인식된 경우입니다.

pi@retropie:~ $ hciconfig
hci0: Type: BR/EDR Bus: USB
      BD Address: 00:02:72:BF:BC:8F ACL MTU: 1022:8 SCO MTU: 121:3
      UP RUNNING PSCAN
      RX bytes:16777722 acl:289271 sco:0 events:116 errors:0
      TX bytes:2561 acl:53 sco:0 commands:56 errors:0


2) PS3 듀얼 쇼크3 컨트롤러 라이브러리 Sixpair 다운로드 및 컴파일

PS3 듀얼 쇼크3 컨트롤러 사용을 위해서는 라이브러리 다운로드 및 컴파일이 필요합니다.

아래와 같이 root 권한으로 라이브러리 다운로드 및 컴파일을 수행합니다.

컴파일후 현재 위치에 sixpair라는 실행 파일이 생성됩니다.

이제 PS3 듀얼 쇼크3 컨트롤러를 USB케이블로 Raspberry Pi 3와 연결합니다.

연결 후 생성된 six pair 실행 파일을 실행하면 아래와 같이 Raspberry Pi 3의 블루투스와 컨트롤러 주소가 모두 보인다면 정상적으로 인식된 것입니다.

root@retropie:~ # sudo ./sixpair
Current Bluetooth master: DE:AD:BE:EF:00:00
Setting master bd_addr to: 00:1F:81:00:06:20

 

3) 조이스틱 매니저 Sixaxis 다운로드 및 컴파일

조이스틱 매니저인 Sixaxis 다운로드 및 컴파일을 수행합니다. 4번째 줄에서 make 수행시 컴파일 에러가 발생합니다.

(참고: https://bugs.launchpad.net/qtsixa/+bug/1275306)


root@retropie:~ # wget http://sourceforge.net/projects/qtsixa/files/QtSixA%201.5.1/QtSixA-1.5.1-src.tar.gz
root@retropie:~ # tar xfvz QtSixA-1.5.1-src.tar.gz
root@retropie:~ # cd QtSixA-1.5.1/sixad
root@retropie:~ /QtSixA-1.5.1/sixad # make
root@retropie:~ /QtSixA-1.5.1/sixad # cd ..
root@retropie:~ # cd ..
root@retropie:/ # sudo mkdir -p /var/lib/sixad/profiles
root@retropie:/ # sudo checkinstall


해당 이슈를 수정하기 위해 아래의 header파일들을 vi에디터로 수정합니다. 

각 header파일들에 unistd.h header파일을 포함 시킵니다. 그리고 다시 make를 수행하면 정상 빌드가 됩니다.


** Header Files: bluetooth.h, remote.h, shared.h, sixaxis.h, textfile.h, uinput.h

#include <unistd.h>


해당 컴파일 이슈 해결 후, 나머지 명령어를 수행합니다. 
수행 완료후, 다음 스텝을 진행합니다.


2개 이상의 컨트롤러 인식을 위해 아래와 같이 수행합니다.

hciconfig 실행후 UP RUNNING PSCAN ISCAN 가 확인되어야 합니다..

ISCAN을 활성화 시키기 위해 아래와 같이 수행합니다.


hciconfig hci0 piscan 명령을 vi에디터를 통해 /etc/rc.local 파일에 추가합니다..

추가시 exit 0 명령어 전에 추가함에 유의합니다.


수행 완료후, 다음과 같이 sixad 데몬을 실행 후, 컨트롤러의 PS로고 버튼을 클릭합니다.

클릭시 각각의 컨트롤러가 인식됩니다.

pi@retropie:/ # sudo sixad --start


향후 reboot시 데몬을 자동으로 실행하기 위해 아래와 같이 수정합니다. 

pi@retropie:/ # sudo update-rc.d sixad defaults
pi@retropie:/ # sudo reboot


** 만약 정상적으로 인식이 안되면, 아래와 같이 bluetoothctl 명령어를 수행하여 인식하도록 수정합니다.

pi@retropie:~ $ sudo bluetoothctl

sudo bluetoothctl 수행후 컨트롤러의 PS버튼을 누르면 아래와 같이 Connected여부가 Yes로 변경됩니다.

그런후 trust 명령어를 통해 블루투스가 인식되도록 수행합니다.

[CHG] Device 64:D4:BD:B4:AD:B0 Connected: Yes

[bluetooth]# trust 64:D4:BD:B4:AD:B0

Changing 64:D4:BD:B4:AD:B0 Trusted: yes

 

아래와 같이 조이스틱이 정상 연결되었는지 확인해볼 수 있습니다.

조이스틱 버튼 및 스틱 등을 누를 때, 값이 변경되는지 확인하면 됩니다.

조이스틱이 인식되는 순서에 따라 js0,js1,..jsN번으로 인식되니, 이점 참고하여 확인하면 됩니다.

pi@retropie:~ $ sudo jstest /dev/input/js0

 

이제 emulationstation을  수행한 후, PS3 컨트롤러 버튼 설정을 진행합니다.

pi@retropie:~ $ sudo emulationstation


이것으로 PS3 듀얼 쇼크 콘트롤러 블루투스로 연결하기를 마칩니다.

다음 포스팅에서는 에뮬 롬 복사 및 게임 실행에 대해 작성하도록 하겠습니다.



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함