Ich hatte mir vor längerer Zeit mal einen dieser Fake DualShock3 Controller gekauft und bisher immer nur unter Windows mit USB-Kabel benutzt. Der Weg mit Bluetooth unter Ubuntu war nicht ganz einfach, deswegen poste ich hier mal meine kleine Anleitung. Ich benutze lubuntu-14.04.2-desktop-i386.iso, siehe http://cdimage.ubuntu.com/lubuntu/releases/14.04/release/ Wer also diese ISO runterlädt und das Live-System startet, kann damit rechnen, dass diese Anleitung funktioniert - ausgenommen Bluetooth-Dongle- oder Controller-Inkompatibilität.
Quellen:
Controller:
Als Hersteller ist ShanWan angegeben. Der Controller lässt sich im Moment zum Beispiel für 7,29 EUR versandkostenfrei bei eBay erwerben: http://www.ebay.de/itm/400749104220
Voraussetzungen:
Bluetooth
Internetverbindung für Softwareinstallationen
kompatibler Controller
passendes USB-Kabel
eventuell Büroklammer
Installationsschritte:
Zunächst den Controller per USB-Kabel verbinden und einen Moment warten. dmesg
sollte eine ähnliche Ausgabe zeigen:
[ 673.008102] usb 2-2: new full-speed USB device number 4 using ohci-pci [ 673.226707] usb 2-2: New USB device found, idVendor=054c, idProduct=0268 [ 673.226717] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 673.226722] usb 2-2: Product: PLAYSTATION(R)3 Controller [ 673.226726] usb 2-2: Manufacturer: ShanWan [ 673.261873] sony 0003:054C:0268.0003: Fixing up Sony Sixaxis report descriptor [ 673.301856] input: ShanWan PLAYSTATION(R)3 Controller as /devices/pci0000:00/0000:00:13.0/usb2/2-2/2-2:1.0/0003:054C:0268.0003/input/input11 [ 673.307040] sony 0003:054C:0268.0003: input,hiddev0,hidraw0: USB HID v1.10 Joystick [ShanWan PLAYSTATION(R)3 Controller] on usb-0000:00:13.0-2/input0
ShanWan war hier übrigens für mich das Stichwort, das letztendlich zum Erfolg geführt hat. Wer hier schon eine deutliche Abweichung feststellt und trotzdem Erfolg mit dieser Anleitung hat, kann kurz Bescheid geben, dann nehme ich das hier auf.
Falls die Bluetooth-Dienste von Ubuntu noch nicht aktiviert sind, sollte das jetzt passieren. Ich habe also mein Bluetooth USB-Dongle eingesteckt und folgende Befehle ausgeführt:
sudo service bluetooth restart hciconfig --all
Mein Dongle wurde erkannt und ist aktiv. Fehlt noch die Software, die teilweise aus den Paketquellen installiert wird:
sudo apt-get update sudo apt-get install joystick sudo apt-get install jstest-gtk sudo apt-get install build-essential sudo apt-get install pkg-config sudo apt-get install pyqt4-dev-tools sudo apt-get install libusb-dev sudo apt-get install libjack-dev sudo apt-get install libdbus-1-dev sudo apt-get install libdbus-glib-1-dev sudo apt-get install libbluetooth3 sudo apt-get install libbluetooth-dev
Der folgende Abschnitt lässt sich bestimmt auch eleganter zu lösen. Die Quelldateien von https://github.com/yarick123/qtsixa/tree/feature/SHANWAN_FAKE_DS3 müssen geladen werden - zum Beispiel per ZIP-Datei, die nach dem Download entpackt wird. Auf welchem Weg auch immer ihr diese Dateien besorgt habt, für den nächsten Teil müsst ihr ins Verzeichnis mit den Quelldateien wechseln.
ls
sollte so aussehen:
COPYING Makefile TODO manual.pdf sixad INSTALL README manual.odt qtsixa utils
Und eine Änderung an der Makefile
später kann kompiliert werden:
mv sixad/Makefile sixad/Makefile.old echo "SHANWAN_FAKE_DS3 = true" > sixad/Makefile cat sixad/Makefile.old >> sixad/Makefile make sudo make install
Die restlichen Schritte orientieren sich stark am oben verlinkten Wikipedia-Artikel. Dem Controller muss die Bluetooth-Adresse des Computers mitgeteilt werden:
sudo sixpair
Anschließend wird das USB-Kabel vom Controller getrennt. Folgende drei Programme müssen gestartet werden:
jstest-gtk & qtsixa & sixad --start
jstest-gtk
ist eine Übersicht über die Funktionen des Controllers und bietet Kalibrierungsmöglichkeiten. qtsixa
startet die Oberfläche QtSixA, über die aktuell vorhandene Verbindungen zu Controllern erkannt werden können. Und sixad
belegt die Bluetooth-Verbindung und übernimmt die Suche nach Controllern in der Nähe. Beim ersten Start klappte das allerdings bei mir nicht direkt:
D-Bus setup failed: Name already in use sixad-bin[15250]: started sixad-bin[15250]: sixad started, press the PS button now
Der Controller blinkt schnell, die Bluetooth Adresse erscheint kurz im QtSixA und verschwindet nach kurzer Zeit wieder. Das Drücken des PS-Knopfes macht keinen Unterschied.
Also wird sixad
mit
Strg +
C gestoppt und der Controller über den mit einer aufgebogenen Büroklammer an der Rückseite zugänglichen RESET-Knopf zurückgesetzt. Das ist bei mir jedoch wie gesagt nur beim ersten Mal so der Fall - später ist der Büroklammer-RESET zum Verbinden nicht mehr nötig. Die gespeicherte Bluetooth-Adresse wird durch den RESET auch nicht beeinflusst.
sixad
starten und am Controller die PS-Taste drücken:
sixad --start
Es erscheint:
sixad-bin[15919]: started sixad-bin[15919]: sixad started, press the PS button now sixad-sixaxis[15963]: started sixad-sixaxis[15963]: Connected 'PLAYSTATION(R)3 Controller (XX:XX:XX:XX:XX:XX)' [Battery FF]
QtSixA zeigt die Bluetooth Adresse wieder und dieses Mal verschwindet sie auch nicht. Der Controller vibriert kurz. Dann kann man im jstest-gtk
die Liste aktualisieren, die dann den Controller als neuen Eintrag enthalten sollte. Siehe Screenshot:
Dieses Makro ist nicht verfügbar
Bei mir funktionieren alle 17 Knöpfe, die beiden Analog-Sticks, sowie die Motion-Sensoren für Neigung zu den 4 Seiten.
Würde mich schon freuen, wenn auch nur einer Person mit dieser Anleitung geholfen wird. 😉 Fehlt euch irgendwas im Tutorial? Verbesserungsvorschläge? LG, Jay