我有 Apple 无线键盘和触控板(两者均为 2 AA 电池版本,不是通过闪电线充电的最新型号),在 Intel NUC6i5SYK、内核 4.2.0-27(原版)上运行 Ubuntu 15.10 64 位。无线触控板运行正常,没有任何问题。但是,我无论如何也无法让键盘正常工作。我按照几个指南操作,并设法通过配对此键盘bluetoothctl
,输入 PIN 并看到配对成功。但它就是连接不上...它已配对但无法连接。
我确实看到使用以下错误journalctl
:
Authentication attempt without agent
Access denied: org.bluez.Error.Rejected
同样的键盘在 Windows 10 中运行完美,所以我知道问题不在于蓝牙控制器或键盘本身。触控板在 Windows 10 中也能正常工作,我使用了这个技巧将蓝牙键从 Windows 注册表复制到 Linux 中的蓝牙配置中:我怎样才能避免一直配对蓝牙鼠标? https://superuser.com/questions/229930/finding-bluetooth-link-key-in-windows-7-to-double-pair-a-device-on-dualboot-com
同样,使用这种镜像蓝牙键的方法,触控板在 Windows 和 Linux 上都可以正常工作。即使忘记在 Windows 和 Linux 上配对键盘的目标,并使用新配对设置键盘,键盘也不会通过 GUI 界面配对。我不得不使用,bluetoothctl
但即使这样也不可靠。
4.2 版蓝牙驱动程序是否存在已知问题,或者 Apple Wireless Keyboard 是否存在特定错误?
答案1
开始工作时按下按钮很麻烦。我真的很想给出一个精确的答案,但我认为技术有点不稳定,工具有点麻烦。我成功地做了一次,根据我的笔记又做了一次,以确保我的答案是正确的,我又花了一个小时尝试让它成功。这些是我在 Ubuntu 16.04 上遵循的步骤(源自@phireph0x 和@danielfbm 的答案)。
安装蓝牙:
sudo apt install bluetoothctl
运行
bluetoothctl
。您应该会看到已连接设备的初始列表,如下所示:[NEW] Controller 23:34:17:64:AF:0E ChromeLinux_A00F [default] [NEW] Device 00:19:32:D3:38:01 Pico the Keyboard
如果您最初没有看到 Apple 键盘,那也没关系。您应该在下一节第 5 步结束时看到它。
其余步骤从bluetoothctl
命令提示符执行:
- 设置代理:
agent KeyboardDisplay default-agent
- 取出电池,关闭蓝牙键盘。按住电源按钮并等待 10 秒钟。
- 扫描设备:
scan on
。 - 重新插入电池并按住电源按钮 10 秒钟,即可打开蓝牙键盘。如果您没有看到键盘电源指示灯持续闪烁,则表示它未尝试配对。请重试。
- 等待蓝牙键盘出现在 中
bluetoothctl
。这将在您等待提示时异步发生。我的键盘在 20-30 秒后弹出。 - 删除所有先前的尝试:
remove 00:19:32:D3:38:01
。00:19:32:D3:38:01
用步骤 5 中弹出的键盘替换。 - 等待蓝牙键盘再次弹出。这可能需要 20-30 秒。
- 建立连接并配对蓝牙键盘:
connect 00:19:32:D3:38:01
。00:19:32:D3:38:01
用步骤 5 和 7 中弹出的键盘替换。 - 如果您一切顺利,您应该会看到提示从:
[bluetooth]#
变为[Pico the keyboard]:
。 - 现在,在你的蓝牙键盘,输入
1234
并按回车键。这是蓝牙键盘上的五个按键:1、2、3、4和回车键。 - 如果成功的话,你应该看到提示变为:
[agent] Enter the pin code:
- 在另一个键盘上,不是您的蓝牙键盘,输入
1234
并按下enter。
如果一切正常,您应该会看到Connection successful
。如果连接失败,请关闭键盘并从步骤 2 重试。
故障排除:
- 该键盘似乎可以终身配对,并会尝试与之前配对过的任何 Mac 配对。确保它们已关闭。
- 如果其他方法都失败了,请重启 PC。我很惊讶地发现,Ubuntu 蓝牙堆栈似乎没有给我带来太多麻烦。我确实重启了几次,但我认为这并不是最终让一切恢复正常的原因。
答案2
我以与 phireph0x 类似的方式解决了这个问题,但每当我尝试使用时:
pair [dev]
这会导致身份验证错误。因此,我从头开始重新启动整个过程,这次pair
我没有使用,而是使用了:
connect [dev]
接下来就是在电脑上输入 PIN,然后在键盘上输入相同的 PIN。效果非常好。我现在正在使用蓝牙键盘!
在连接之前也值得尝试设置代理(也在 bluetoothctl 内部):
agent KeyboardDisplay
default-agent
答案3
哇。设置起来太麻烦了。按照这个帖子中的提示(在 Ubuntu Mate 16.04 上)后,我发现我还需要按照建议修改一些配置文件Debian wiki 中
/etc/default/bluetooth
- 默认 HID bluez 设置 - 启用鼠标和键盘HID2HCI_ENABLED=1
/etc/bluetooth/hcid.conf
- HCI bluez 设置 - 配置静态设备信息 [将设备地址替换为显示的地址bluetoothcl
]device 00:1E:52:FB:68:55 { name "Apple Wireless Keyboard"; auth enable; encrypt enable;}
似乎 Ubuntu 蓝牙堆栈在此过程中经历了一些变动,并且许多旧的蓝牙修复技巧似乎不再有帮助。
答案4
我最终让它工作了,但请注意,初始配对/连接过程(至少对我来说)非常不稳定。因此,您可能需要多次尝试才能成功建立连接。首先,我必须使用以下命令从蓝牙配置中完全删除键盘设备bluetoothctl
:
remove [dev]
然后,我通过取出电池、等待 10 秒、更换电池并按住电源按钮直到键盘进入可发现模式来重置键盘存储的配对配置。然后使用以下命令再次添加设备bluetoothctl
:
trust [dev]
pair [dev]
另一个问题是,当连接到蓝牙时,键盘最初处于 Numlock 模式,如所述Apple 无线键盘无法使用以及其他地方。您可以使用 Fn+F6 技巧,但这在重新启动后不会持续存在。要永久修复此问题,您必须按照所述设置“默认数字键盘键”https://help.ubuntu.com/community/NumLock 然而,在 Ubuntu 15.0 中,这个设置->键盘布局配置选项不再存在。因此您必须安装 gnome-tweak-tools:
sudo apt-get install gnome-tweak-tool
并在Typing->Miscellaneous兼容性选项中设置选项。
希望这可以帮助某些人避免花费数小时来让键盘正常工作。