ds4drv

ds4drv

我得到了我的第一个装有 Ubuntu 的 NAS 盒,安装了 Steam,并被邀请参加游戏流媒体测试版!为了改善体验,我买了一个 Dual Shock 4 控制器。

我知道可以玩这个,有人能帮我解决这个问题吗?我有一个受支持的蓝牙适配器,就是这样。

答案1

ds4drv

ds4drv 是适用于 Linux 的 Sony DualShock 4 用户空间驱动程序。

特征

  • 选择模拟 Xbox 360 控制器以兼容 Steam 游戏
  • 设置 LED 颜色
  • 通过 LED 闪烁提醒您电池电量不足
  • 将触控板用作鼠标
  • 自定义映射,将按钮和操纵杆映射到您想要的任何鼠标、按键或操纵杆操作
  • 可以通过按钮绑定循环切换的设置配置文件

安装

依赖项

  • Python 2.7 或 3.3+(对于 Debian/Ubuntu,您需要安装 python2.7-dev 或 python3.3-dev 包)
  • python-setuptools
  • hcitool(通常在 bluez-utils 或等效包中可用)

这些软件包通常会由安装脚本自动安装,但如果可用,您可能希望使用您的发行版的软件包:

  • pyudev 0.16 或更高版本
  • python-evdev 0.3.0 或更高版本

稳定版本

使用 pip 安装最新版本很简单:

sudo pip install ds4drv

[…]

使用

ds4drv 有两种不同的模式来查找 DS4 设备,请根据您的使用情况决定使用哪一种。

原始蓝牙模式

支持的协议:蓝牙

除非您的系统使用的是 BlueZ 5.14(最近发布)或更高版本,否则无法与 DS4 配对。因此存在此解决方法,当 DS4 以配对模式启动时(通过按住分享 + PS 按钮直到 LED 开始快速闪烁)。

这是不带任何选项运行时的默认模式:

$ ds4drv

[…]

权限

如果您想以普通用户身份使用 ds4drv,则需要确保 ds4drv 有权使用系统上的某些功能。

ds4drv 使用内核模块输入框在用户空间和模块中创建输入设备希德拉夫与 DualShock 4 控制器通信(使用 时--hidraw),但这通常需要 root 权限。您可以通过复制udev 规则文件/etc/udev/rules.d/

此后,您可能需要使用以下命令重新加载 udev 规则:

$ sudo udevadm control --reload-rules
$ sudo udevadm trigger

[…]

已知问题/限制

  • 已知蓝牙 2.0 适配器存在问题,建议使用 2.1+。
  • 控制器永远不会关闭,你需要手动按住 PS 按钮直到控制器关闭
  • 不支持震动

[…]


结果(通过 Steam 玩游戏时):

$ ds4drv --trackpad-mouse --emulate-xpad-wireless
[info][controller 1] Created devices /dev/input/js0 (joystick) /dev/input/event20 (evdev) 
[info][bluetooth] Scanning for devices
[info][bluetooth] Found device aa:bb:cc:dd:ee:ff
[info][controller 1] Connected to Bluetooth Controller (aa:bb:cc:dd:ee:ff)
[info][bluetooth] Scanning for devices
[info][controller 1] Battery: 62%
[info][controller 1] Battery: 50%
[warning][controller 1] Signal strength is low (44 reports/s)
[info][controller 1] Battery: 37%

答案2

Steam 上的 DS4

DS4 似乎在 Steam 中具有原生支持(客户端从 2016-01-01 开始,在带有 HWE 内核的 Ubuntu 14.04 和 15.10 上进行测试)并且大屏幕模式可以通过 USB 和蓝牙按预期工作。

要在 Ubuntu 中配对 DS4,请转到蓝牙设置,然后按配对设备列表下方的加号按钮 (+) 进入配对对话框,然后按住控制器上的PS+Share直到 LED 开始闪烁,然后选择无线控制器一旦出现即可配对。

在此处输入图片描述

通过 USB 连接 ds4drv

为了回答 Lucas 的评论,REAMDME 已更新,现在包含以下内容:

Hidraw 模式

支持的协议:蓝牙USB

此模式使用 Linux 内核功能 hidraw 与系统上已经存在的设备通信。

$ ds4drv --hidraw

[…]

要在此模式下通过 USB 使用 DS4,只需通过微型 USB 电缆将 DS4 连接到计算机。

注意:不幸的是,由于内核错误,目前在该模式下使用蓝牙设备时无法使用任何 LED 功能。

相关内容