Benutzeravatar
benno
Neuling

Beiträge:8
Registriert:30. Jun 2016

PS3 Controller OSMC Bluetooth Dongle

1. Jul 2016, 18:55

Hallo zusammen :)

Ich bin neu hier und will als Erstes einmal ein riesen Lob und Dankeschön
für diese geile Website hier loswerden!

Toll das es jetzt auch ein Forum gibt.

Zu meinem Problem....

Ich versuche seit Tagen eine brauchbare Anleitung zu finden wie ich den PS3 Controller in OSMC über Bleutooth verbinden kann um damit KODI zu steuern.

System:
Raspberry Pi 3
USB Bluetooth Dongle
PS3 Dualshock 3 Sixaxis
Dual Boot Recalbox v4.0.0-beta3 + OSMC 2016-03-06 (beides up-to-date)

Zuerst hatte ich verucht den Onboard BT Adapter des Pi3 zu verwenden, was allerdings ja so gut wie nirgendwo funktioniert.
Mit dem BT Dongle konnte ich den PS3 Controller problemlos in Recalbox verbinden und einrichten.

Nur in OSMC komm ich nicht weiter...
Habe dort bereits den Onboard BT Adapter deaktiviert um nur noch den Dongle aktiv zu haben.
Was auch der Fall ist...

Code: Alles auswählen

osmc@osmc:~$ hciconfig
hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:1A:7D:DA:71:13  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING
        RX bytes:1178 acl:0 sco:0 events:65 errors:0
        TX bytes:1066 acl:0 sco:0 commands:65 errors:0


Es muss doch eine Möglichkeit geben diesen Controller in OSMC einzubinden.
Ich bin für jede Hilfe dankbar!

Gruß
benno
Raspberry Pi 3 / TP-Link AC 1200 / CSL nano Bluetooth v4.0 / PS3 Controller
Dualboot Image OSMC + Recalbox

benno
Neuling

Beiträge:8
Registriert:30. Jun 2016

PS3 Controller OSMC Bluetooth Dongle

2. Jul 2016, 20:13

Ich hab das Problem mittlerweile gelöst.
Der PS3 Controller funktioniert über Bluetooth in OSMC :)

Falls jemand daran Interesse hat, stell ich gerne mal eine Anleitung rein.
Hat mich reichlich Nerven gekostet :P

Gruß
benno

..merkwürdig das ist irgendwie ein Selbstgespräch :D
Raspberry Pi 3 / TP-Link AC 1200 / CSL nano Bluetooth v4.0 / PS3 Controller
Dualboot Image OSMC + Recalbox

b2un0
Moderator

Beiträge:1819
Registriert:16. Nov 2015
Wohnort:Hamburg
Beruf:Softwareentwickler

PS3 Controller OSMC Bluetooth Dongle

4. Jul 2016, 12:02

Hilfreicher wäre es die Anleitung direkt zu posten :D
Kein Support per PM!

benno
Neuling

Beiträge:8
Registriert:30. Jun 2016

PS3 Controller OSMC Bluetooth Dongle

10. Jul 2016, 11:55

[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 :lol:

Um den Onboard Bluetooth Adapter des Pi3 zu deaktivieren, schreibt man folgende Zeile in die Datei /boot/config.txt

Code: Alles auswählen

dtoverlay=pi3-disable-bt


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:

Code: Alles auswählen

hciconfig

Das Ergebniss sollte in etwa so aussehen:
hciconfig.jpg


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 update

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:

Code: Alles auswählen

wget http://www.pabr.org/sixlinux/sixpair.c

Code: Alles auswählen

gcc -o sixpair sixpair.c -lusb


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

tar xfvz 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

Code: Alles auswählen

cd QtSixA-1.5.1/sixad


Code: Alles auswählen

sudo mkdir -p /var/lib/sixad/profiles

Code: Alles auswählen

sudo checkinstall


Ein Profil für den Controller erstellen:

Code: Alles auswählen

sudo nano /var/lib/sixad/profiles/default

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:

Code: Alles auswählen

cd /home/osmc

Code: Alles auswählen

sudo ./sixpair


Nun kann man das Kabel abziehen und testen ob er sich über Bluetooth verbinden lässt:

Code: Alles auswählen

sudo hciconfig hci0 pscan

Code: Alles auswählen

sudo sixad —start

Und dann natürlich den Knopf am Controller drücken.

Hat das funktioniert kann man den Sixaxis Manager als Service beim Start einrichten:

Code: Alles auswählen

sudo update-rc.d sixad defaults


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.

Code: Alles auswählen

sudo nano /etc/udev/rules.d/99-sixpair.rules

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/:

Code: Alles auswählen

sudo nano /etc/init.d/btstart

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:

Code: Alles auswählen

sudo chmod 755 /etc/init.d/btstart


Jetzt das Script testen und danach schauen ob “PSCAN” aktiv ist:

Code: Alles auswählen

sudo /etc/init.d/btstart start

Code: Alles auswählen

hciconfig

Sollte dann so aussehen:
script_test.jpg


Um das Script nun bei jedem Neustart auszuführen:

Code: Alles auswählen

sudo update-rc.d btstart defaults


Jetzt rebooten und es sollte funktionieren:

Code: Alles auswählen

reboot


Falls man das Script wieder aus den Autostart entfernen will (machen wir nicht aber gut zu wissen):

Code: Alles auswählen

sudo update-rc.d -f btstart remove


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
Raspberry Pi 3 / TP-Link AC 1200 / CSL nano Bluetooth v4.0 / PS3 Controller
Dualboot Image OSMC + Recalbox

Cupra-Bo
Neuling

Beiträge:8
Registriert:2. Oct 2016

PS3 Controller OSMC Bluetooth Dongle

18. Feb 2017, 18:57

neuste omsc heute drauf gemacht leider scheitet es bei mir hier

Code: Alles auswählen


osmc@osmc:~$ sudo update-rc.d sixad defaults
insserv: Service bluetooth has to be enabled to start service sixad
insserv: exiting now!
update-rc.d: error: insserv rejected the script header
osmc@osmc:~$


jemand nen tipp :(

Zurück zu „Allgemein“