📖 本文由 Batocera 官方 Wiki 翻译整理,内容可能随版本更新而变化。


配对蓝牙控制器 – 手动设置

首先确保设备已启用蓝牙。首先,’system/Batocera.conf’文件中应存在’controllers.bluetooth.enabled=1’这一行,且不能被注释掉([[:batocera_conf_syntax|如何访问 Batocera.conf 文件]])。如果缺失,请添加。注意,这样做不会让一个原本不工作的蓝牙适配器突然工作起来,只有已经与 Linux 内核和 Batocera 自带的驱动兼容的设备才行。

建立 [[:access_the_batocera_via_ssh|SSH 连接]](或打开 Xterm)以开始手动配对过程。首先输入’bluetoothctl’并按'[Enter]’。

现在你已进入蓝牙控制单元。输入以下命令,每条命令后都要按'[Enter]’确认:


agent on
default-agent
power on
scan on

现在将控制器置于配对模式!这很大程度上取决于你的 [[:supported_controllers|控制器类型]]。

以下是成功运行所有命令后会看到的输出示例:


[root@Batocera /userdata/system]# bluetoothctl
Agent registered
[bluetooth]# agent on
Agent is already registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# scan on
Discovery started
[CHG] Controller 43:45:C0:00:1F:AC Discovering: yes
[NEW] Device E4:17:D8:C2:0B:0E 8BitDo M30 Modkit

如果检测设备时遇到问题,请查看[[:troubleshooting#bluetooth_issues_not_connecting_no_devices_detected_etc|故障排除页面的蓝牙部分]]。

现在我们想要连接到我们的控制器。于是我们输入以下命令,以正确连接到已发现的 MAC 地址为 E4:17:D8:C2:0B:0E 的控制器。输入命令后请稍等几秒,以确保它们被成功处理。

pair E4:17:D8:C2:0B:0E
connect E4:17:D8:C2:0B:0E
trust E4:17:D8:C2:0B:0E

以下为示例输出:

[bluetooth]# pair E4:17:D8:C2:0B:0E
Attempting to pair with E4:17:D8:C2:0B:0E
[CHG] Device E4:17:D8:C2:0B:0E Connected: yes
[CHG] Device E4:17:D8:C2:0B:0E Modalias: USB:v2DC8p5101d0100
[CHG] Device E4:17:D8:C2:0B:0E UUIDs: 00001124-0000-1000-8000-00805f9b34fb
[CHG] Device E4:17:D8:C2:0B:0E UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device E4:17:D8:C2:0B:0E ServicesResolved: yes
[CHG] Device E4:17:D8:C2:0B:0E Paired: yes
Pairing successful

[bluetooth]# connect E4:17:D8:C2:0B:0E
Attempting to connect to E4:17:D8:C2:0B:0E
Failed to connect: org.bluez.Error.Failed
[CHG] Device E4:17:D8:C2:0B:0E Connected: yes
Authorize service (yes/no): yes

Authorize service 00001124-0000-1000-8000-00805f9b34fb
[8BitDo M30 Modkit]# trust E4:17:D8:C2:0B:0E
[CHG] Device E4:17:D8:C2:0B:0E Trusted: yes
Changing E4:17:D8:C2:0B:0E trust succeeded

输入 devices 查看已配置的 BT 设备列表。\
输入 remove MAC-ADRESS 删除单个设备。\
如果系统要求授权过程或输入 PIN,请输入 yes

如果您的机器上有多个蓝牙适配器,并且想确认使用的是哪一个,可以使用命令 hcitool dev 列出所有适配器。在我的设置中,hci0 是 Pi4 的内置 BT,hci1 是一个额外的 USB BT 模块:

# hcitool dev
Devices:
hci1    90:80:62:00:88:00
hci0    DC:A6:32:04:10:7F

# bluetoothctl
Agent registered
[bluetooth]# scan on

翻译

Discovery started
[CHG] Controller 90:80:62:00:88:00 Discovering: yes

Batocera 自动配对我不想要的设备!

有些设备会破坏 Bluetooth 协议,始终处于”配对”模式,现代”智能”电视就是常见例子。由于 Batocera 会自动连接任何处于配对模式的设备,这可能导致意外的连接。

要解决此问题,可以仅与手柄进行配对。将您的控制器置于配对模式,然后运行以下命令:


Batocera-bluetooth trust-pad

Batocera 将明确地仅搜索并连接 Bluetooth 控制器。这可能需要一些时间,因为它会系统地遍历、解析后台的设备并接受/拒绝它们。找到手柄后,Batocera 将尝试与其配对:


[root@RPI3-Batocera /userdata/system]# Batocera-bluetooth trust-pad
Pairing 8BitDo M30 gamepad...
Trusting 8BitDo M30 gamepad...
[root@RPI3-Batocera /userdata/system]#

现在 Bluetooth 控制器可以与 Batocera 配合使用了。

相反,同样的操作也可以用于仅连接音频设备:


Batocera-bluetooth trust-audio

–> 在 Batocera v33 中将设备列入黑名单 #

此功能已被上述的 ”trust-pad” 方法取代。这些说明仅专门保留供 Batocera v33 使用,不适用于其他版本。

可能存在某些设备始终处于配对模式,而您不希望 Batocera 主机连接到它(例如您邻居的”智能”电视)。您可以通过使用黑名单来阻止此类设备。

要通过 SSH 执行此操作,请运行以下命令:


Batocera-bluetooth blacklist

例如:

FIXME

使用 Batocera-bluetooth

仍需进一步调查/测试。

Batocera-bluetooth list                          打印当前已信任并保存的 Bluetooth 设备列表。
Batocera-bluetooth trust                         扫描并信任一个新的、随机(?)选择的设备。祝你好运!
Batocera-bluetooth trust-pad                     扫描并仅信任手柄。
Batocera-bluetooth trust-audio                   扫描并仅信任音频设备。
Batocera-bluetooth starttrust
Batocera-bluetooth stoptrust
Batocera-bluetooth remove <device address>       从列表中移除(取消信任)指定的 Bluetooth 设备,并从内存中移除其连接。
Batocera-bluetooth save                          将新信任的设备保存到内存。
Batocera-bluetooth restore                       撤销任何已信任但尚未保存的设备,并从内存恢复。
Batocera-bluetooth live_devices                  列出配对模式下所有当前附近的设备。

v33 特有命令

Batocera-bluetooth list_blacklistable            打印当前被列入黑名单的 Bluetooth 设备列表。
Batocera-bluetooth blacklist <device address> <device name>  将设备添加到黑名单,防止其被配对。
Batocera-bluetooth unblacklist <device address>  从黑名单中移除指定的 Bluetooth 设备。

显示所有当前被列入黑名单的设备列表:

Batocera-bluetooth list_blacklistable

从黑名单中移除设备:

Batocera-bluetooth unblacklist <device address>

原文: 蓝牙手柄手动设置 • 翻译: DIY8 Bot

© 版权声明
评论 抢沙发

请登录后发表评论

    暂无评论内容