如何在Ubuntu 16.04上连接Dualshock 3控制器(PS3 Sixaxis Gamepad)?

由于上一个官方支持的版本是来自QtSixA PPA的 “生动”(Ubuntu 15.04),并且不适用于Ubuntu Xenial(16.04)。

在Ubuntu 16.04 – Xenial(可能在上面工作)

注意:不要使用PS3 Gasia / Shanwan游戏控制器(中国/假PS3控制器) – 我只使用Shanwan控制器测试!

从源代码安装

由于最后一个官方支持的版本是来自QtSixA PPA的 “生动”(Ubuntu 15.04),并且不适用于Xenial(16.04) 。 所以我们需要从唯一可以工作 (并且已经更新)的repo编译并允许同时连接两个控制器是RetroPie的分支 :

sudo apt-get install dialog build-essential pyqt4-dev-tools libusb-dev libbluetooth-dev python-dbus -y wget https://github.com/RetroPie/sixad/archive/master.zip -O sixad-master.zip unzip sixad-master.zip cd sixad-master make sudo make install 

配置

1.)首先确保您的计算机上有蓝牙。

2.)首先通过USB插入控制器进行初始配对。 运行sixpair命令:

 sudo sixpair 

成功配对时的输出样本:

 Current Bluetooth master: XX:XX:XX:XX:XX:XX Setting master bd_addr to XX:XX:XX:XX:XX:XX 

XX:XX:XX:XX:XX:XX是您的蓝牙设备的MAC。

3.)拔下控制器并运行:

 sudo sixad -s 

这将启动sixad守护程序,它等待传入的PS3控制器连接。 sixad将完全接管蓝牙适配器(独占控制,因此启动sixad后,除PS3控制器外,其他任何蓝牙设备都无法工作)。

4.)按PS3控制器上的ps3按钮,等待2-3秒。 当成功连接时,您会感觉到控制器振动。

成功连接时的输出样本:

 [ ok ] Starting bluetooth (via systemctl): bluetooth.service. sixad-bin[23052]: started sixad-bin[23052]: sixad started, press the PS button now Watching... (5s) sixad-sixaxis[23069]: started sixad-sixaxis[23069]: Connected 'PLAYSTATION(R)3 Controller (**XX:XX:XX:XX:XX:XX**)' [Battery 05] 

要关闭sixad并禁用控制:只需按CTRL + C.

测试function[可选]

您可以通过Jstest-gtk测试控制器的function(安装: sudo apt-get install jstest-gtk

禁用sixad服务[可选]

警告: sixad将完全接管蓝牙适配器(独占控制,因此启动sixad后,除PS3控制器之外的其他任何蓝牙设备都不起作用)。

 sudo update-rc.d sixad disable sudo service sixad stop 

参考文献:

https://askubuntu.com/a/834907/139248
https://retropie.org.uk/forum/topic/2913/guide-use-qtsixa-on-ubuntu-16-04-and-derivatives