[Anleitung]Bitte lest vorab erst einmal die komplette Anleitung und überlegt euch ob ihr das machen wollt. Es ist zwar relativ aufwendig, funktioniert aber bei mir problemlos. Da ich ein absoluter Linux Noob bin und mir diese Anleitung mit viel Mühe und Zeit in diversen Foren zusammengesucht habe, kann ich bei eventuellen Problemen nur bedingt Hilfestellung geben. Es wäre nur schade, eine komplette und funktionierende Anleitung niemandem zur Verfügung zu stellen, der gerne seinen PS3 Controller in OSMC nutzen möchte.
Voraussetzungen:- Deaktivierter Onboard Bluetooth Adapter Pi3 (Onboard Bluetooth funktioniert noch nicht, auch wenn der Adapter angezeigt wird)
- Bluetooth Dongle welcher vom Pi erkannt wird
- Original PS3 Controller + USB Kabel (Dualshock 3 / Sixaxis)
- OSMC (up-to-date, aktuell v2016.06-2)
- ein aktuelles Backup und etwas Mut
Um den Onboard Bluetooth Adapter des Pi3 zu deaktivieren, schreibt man folgende Zeile in die Datei /boot/config.txt
Um zu überprüfen ob der USB Bluetooth Dongle vom Pi erkannt wurde, loggt man sich im Terminal ein (z.B. mit Putty / IP:22 osmc/osmc) und gibt dort folgenden Befehl ein:
Das Ergebniss sollte in etwa so aussehen:
Nun zur eigentlichen Installation des PS3 Controllers.
Wir befinden uns eingeloggt im Terminal und geben nacheinander sorgfältig folgende Befehle ein.
Man sollte darauf achten dass jede Aktion erfolgreich abgeschlossen wurde, bevor man die nächste Zeile eingibt.
Nötige Builts und Tools:Code: Alles auswählen
sudo apt-get install build-essential checkinstall pkg-config joystick lib-usbdev libbluetooth-dev -y
Das Tool erstellen welches den Controller mit dem Bluetooth Adapter verbindet:Den Sixaxis Manager erstellen:Code: Alles auswählen
wget http://sourceforge.net/projects/qtsixa/files/QtSixA%201.5.1/QtSixA-1.5.1-src.tar.gz
Code: Alles auswählen
wget https://bugs.launchpad.net/qtsixa/+bug/1036744/+attachment/3260906/+files/compilation_sid.patch
Code: Alles auswählen
patch ~/QtSixA-1.5.1/sixad/shared.h < compilation_sid.patch
Ein Profil für den Controller erstellen:Der Editor im Terminal öffnet sich und man kopiert folgenden Code hinein:
Code: Alles auswählen
# ##########################
# sixad configuration file #
########################## #
# Features
enable_leds 1
enable_joystick 0
enable_input 1
enable_rumble 0
enable_timeout 1
# LED
led_n_auto 1
led_n_number 1
led_anim 1
# Joystick
enable_buttons 1
enable_sbuttons 1
enable_axis 1
enable_accel 1
enable_accon 0
enable_speed 0
enable_pos 0
# Input - "(None)"
key_select 31 # s: shutdown menu
key_start 164 # playpause
key_up 103 #up
key_right 106 #right
key_down 108 #down
key_left 105 #left
key_l1 104 # PAGEUP
key_r1 109 # PAGEDOWN
key_l2 17 # w/z: aspect ratio
key_r2 24 # o: codec info
key_l3 39 # semicolon/m: player control
key_r3 113 # mute
key_tri 46 # C: context menu
key_cir 14 # BACKSPACE
key_cro 28 # ENTER
key_squ 23 # info
#key_squ 57 # SPACE
key_ps 15 # tab: fullscreen
axis_left_type 2
axis_left_up 107 # end: end page
axis_left_right 39 # semicolon/dot: next
axis_left_down 102 # home: first page or home window
axis_left_left 50 # m/comma: previous
axis_right_type 2
axis_right_up 74 # volumeup
axis_right_right 33 # f: fast forward
axis_right_down 78 # volumedown
axis_right_left 19 # r: rewind
axis_speed 6
use_lr3 0
# Rumble
old_rumble_mode 0
# Timeout
timeout_mins 10
Jetzt mit STRG+O speichern und mit STRG+X den Editor verlassen.
Die erstellte Datei "default" kann auch später noch mit einem entsprechenden Windows Editor überprüft bzw. geändert werden.
Sie befinden sich im Ordner /var/lib/sixad/profiles/
Verbinde den PS3 Controller nun per USB-Kabel mit dem Pi und gib folgendes ein:Nun kann man das Kabel abziehen und testen ob er sich über Bluetooth verbinden lässt:Und dann natürlich den Knopf am Controller drücken.
Hat das funktioniert kann man den Sixaxis Manager als Service beim Start einrichten:Jetzt wird eine udev Regel erstellt, die Sixpair ausführt wenn man einen Controller per USB anschließt. Das ist nötig um neue Controller zu installieren. Es öffnet sich wieder der bekannte Editor.Folgendes wird in den Editor kopiert:
Code: Alles auswählen
ACTION=="add", KERNEL=="js[0-9]*", SUBSYSTEM=="input", SUBSYSTEMS=="usb", RUN+="/home/osmc/sixpair"
Nun wieder mit STRG+O speichern und mit STRG+X den Editor verlassen.
Somit ist die Installation abgeschlossen, falls sich der Controller auch nach einem Neustart noch verbinden lässt (bitte probieren).Ist das nicht der Fall, gehts hier weiter...
Ich hatte das Problem, dass sich der Controller nach jedem Neustart nicht mehr verbinden lies. Das Bluetooth war zwar an (hciconfig -> UP RUNNING) aber leider nicht sichtbar. Nach einem Neustart sollte bei Eingabe von „hciconfig“ nicht nur „UP RUNNING“ sondern zusätzlich auch noch „PSCAN“ dahinter stehen. Ich vermute das der Service "Sixad" direkt beim Booten ausgeführt wird und der USB Bluetooth Adapter zu diesem Zeitpunkt noch gar nicht initialisiert ist.
Das Problem lässt sich aber erfolgreich mit einem kleinen Script lösen, welches wartet bis der Bluetooth Adapter initialisiert ist und erst dann die nötigen Befehle von sich gibt.
Wir erstellen mit dem Editor im Terminal eine Datei mit dem Namen „btstart“ unter /etc/init.d/:Folgenden Code in den Editor kopieren:
Code: Alles auswählen
#!/bin/bash
# /etc/init.d/btstart
### BEGIN INIT INFO
# Provides: btstart
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Wait on BT and start piscan
# Description: dito
### END INIT INFO
if [ "$1" != "background" ]; then
$0 background &
else
#Wait until BT is initialized
for ((i = 0; i <= 100; i++)) do
hciconfig hci0 && break
usleep 100000
done
/usr/bin/hciconfig hci0 up
/usr/bin/hciconfig hci0 pscan
/usr/bin/sixad -start
fi
Nun wieder mit STRG+O speichern und mit STRG+X den Editor verlassen.
Nun die Datei ausführbar machen:Jetzt das Script testen und danach schauen ob “PSCAN” aktiv ist:Sollte dann so aussehen:
Um das Script nun bei jedem Neustart auszuführen:Jetzt rebooten und es sollte funktionieren:Falls man das Script wieder aus den Autostart entfernen will (machen wir nicht aber gut zu wissen):Bei mir funktioniert der PS3 Controller jetzt tadellos in OSMC.
Vorallem wenn man ein Dualboot Image mit OSMC + Recalbox nutzt ist es natürlich geil beide Systeme mit dem Controller steuern zu können.
Have Fun!
Gruss
Benno