我发现了什么
我将花时间解释我发现的一些事情。这应该可以帮助人们了解为什么这是一个如此复杂的过程,以及他们可以做些什么来帮助改善它,至少对他们来说是如此。
首先,MBP上的蓝牙无线电是“ USB”设备。这在笔记本电脑甚至某些台式机上非常普遍。因此,Linux将其视为USB设备,您可以对其进行相应的配置。
其次,蓝牙无线电具有两种模式HID模式,这是仅用于键盘和鼠标的非常基本的“配置文件”。此模式使您可以在没有应用程序管理蓝牙设备之前使用键盘。例如,当您在GRUB菜单中使用蓝牙键盘时,即为HID模式。您的笔记本电脑和键盘仍然需要配对,但是它们可以在非常低的水平下运行而不会产生问题或干预(再次配对后)。但是,HID模式非常有限,某些功能将无法使用。例如,键盘的电池电量将无法使用。同样在HID模式下,我很难使用功能键和媒体键(在此键盘上,它们是相同的键,可以通过软件进行切换)。
接下来,您需要使键盘将“某物”发送到便携式计算机。您还需要笔记本电脑接收“东西”。然后,您必须将它们绑在一起才能真正唤醒笔记本电脑。
最后,Linux,Ubuntu,Bluez或其他人似乎认为所有蓝牙控制器都应在HCI模式下运行。考虑到即使此键盘在HID模式下也非常受限制,并且除了简单的鼠标和键盘(例如手机或耳机)之外的任何其他部件都需要HCI模式,所以这可能是一个非常合理的默认值。但是,HCI模式需要完整的软件堆栈才能运行,并且在笔记本电脑处于挂起/睡眠/关闭电源状态时无法运行。因此,默认情况下,当笔记本电脑进入睡眠状态时,它会断开键盘连接并退出监听。
使它工作的实际步骤
步骤0:解决方法
当我这样做时,我无能为力解决这个问题感到非常沮丧。当笔记本电脑处于睡眠状态时,您什么也做不了,至少使用Mac Book Pro,您无法在不睡觉的情况下合上盖子。因此,您可能会遇到以下情况:要么视频无法正常工作(因为它将在未对接时连接到您的外接显示器,否则将无法插入),或者您可以看到所有内容但没有键盘(因为它无法正常工作/已配对/无论如何),以及内部无法访问)。为了解决这个问题,您应该碰到它。在LDM的登录屏幕上使用可视键盘。如果唤醒密码提示,则应该能够单击切换用户,然后使用可视键盘登录。只要您以同一用户身份登录,您的会话就不会丢失。就是说,我不会
步骤1:预先配对键盘。
在进行测试时,我注意到这是必需的步骤。但是,我不完全理解为什么。苹果做了一些奇怪的事情,所以我就放手。
- 重置您的PRAM / NVRAM /任何。这将清除您当前的OS X设置,虽然可能不需要,但最好开始清理。Apple支持网站上有说明。您无需重置PMU。
- 启动或重新启动进入OS X并正常配对键盘。我建议关闭所有其他蓝牙设备,并专注于键盘。据我所知,这会将一些信息存储在NVRAM和所有键盘中,以便与关机的笔记本电脑进行通信。
- 单击“高级”(在OS X中,一旦配对),然后选中“允许蓝牙设备唤醒计算机”。苹果支持网站再次提供了说明
- 重新启动计算机到Linux。在ReFIT / GRUB /启动时,键盘应该可以正常工作。
步骤2:让Linux与键盘配合使用
由于某些原因,键盘会在您登录时失去与之配对的功能。可能是因为Bluetooth控制器已切换到HCI模式。要解决此问题,您需要在Linux中配对。这将中断您在步骤1中所做的配对,但在笔记本计算机关闭电源或启动时不会中断HID模式。也就是说,当您重新启动时,键盘将无法工作,直到您的蓝牙堆栈在HCI模式下再次完全运行。这是因为键盘试图在HCI模式下通话,但是没有人在听。如果关闭计算机并等待连接超时,键盘将在HID模式下再次工作。
- 通过运行安装bluez-compat,
sudo apt-get install bluez-compat
这将使您轻松配对。没有蓝牙管理器,我就崩溃了。
- 通常将键盘与Linux配对。
Bluetooth
从Unity Dash 运行,然后单击加号。将键盘置于配对模式(按住Apple Wireless键盘上的电源按钮),然后按照说明进行操作。它应该很顺利地配对。此时,您的键盘在Linux上应该可以正常工作,甚至在笔记本电脑处于睡眠状态时也可以将信号发送到HID控制器。
步骤3:告诉Linux需要唤醒
现在,我们需要告诉Linux如果蓝牙设备出现问题,请唤醒它。借助此站点上的脚本,可以轻松做到这一点。下面是基本说明,但是如果不清楚,请阅读该站点。几乎所有这些都来自链接站点。
- 安装一些依赖
sudo apt-get install notify-send zenity
- 下载udev恢复脚本,然后将其复制到/ usr / local / sbin / enable-wakeup。
- 下载设备选择脚本并复制到/ usr / local / sbin / select-resume-devices
- 使脚本可执行:
chmod a+x /usr/local/sbin/select-resume-devices
和chmod a+x /usr/local/sbin/enable-wakeup
。
- 以root权限运行设备选择脚本。
sudo /usr/local/sbin/select-resume-devices
- 至少选择“ Apple,Inc.蓝牙主机控制器”,“ Belkin组件B8T017 Bluetooth + EDR 2.1”,“ Apple Inc.内部键盘/触控板(ANSI)”以及您要用来恢复计算机的任何其他设备。
- 单击确定。
- 查看文件/etc/udev/rules.d/90-hid-wakeup-enable.rules并确保它有意义。
- 重新启动计算机。
步骤4:测试和捕获
现在,重新启动计算机后,一切都应该正常工作。重新登录后,以某种方式使计算机进入睡眠模式。在键盘上敲击一个键,笔记本电脑应恢复。但是,有两个问题。
- 当计算机处于睡眠模式时,它正在寻找HID设备。因此,键盘以HID模式启动。完成从睡眠模式的恢复后,Linux正在寻找HCI设备。键盘(不是笔记本电脑)需要重置连接。大约45秒后自然会发生这种情况。您可以通过取出电池来强行使用它,但这可能会使配对弄乱。如果您不使用键盘从睡眠中恢复,那不是问题。
- 重新启动时,键盘仍将尝试以HCI模式进行通信,但笔记本电脑仅在寻找HID设备。超时后,键盘将再次显示它,并再次正常工作。