如何在 macOS 和 Ubuntu 上使用同一个蓝牙键盘和鼠标?

如何在 macOS 和 Ubuntu 上使用同一个蓝牙键盘和鼠标?

我有一台 iMac,上面安装了 macOS 和 Ubuntu。我希望能够在两个操作系统上使用我的蓝牙鼠标和键盘,而无需在每次切换操作系统时重新配对。

有谁遇到过这个问题并找到了解决办法吗?

答案1

这个问题的答案给你一个大概的概念,虽然在 macOS 方面有点模糊,所以我会详细说明我所使用的程序。

操作系统版本如下。文件名和位置似乎会根据版本而变化,所以这对我有用。

  • MacOS High Sierra 10.13.1
  • Ubuntu 17.04

我假设你有一个文件系统(USB 密钥或其他),它至少在 MacOS 中可读写,在 Ubuntu 中可读。

总体思路是,当您将设备与操作系统配对时,会生成一个唯一的链接密钥,下次配对激活时,该密钥是身份验证所必需的。您可以将这些链接密钥从 MacOS 配对转移到 Ubuntu 配对,这样配对就可以在两个操作系统中工作。

  1. 启动 Ubuntu
  2. 照常配对设备
  3. 重新启动进入 MacOS
  4. 照常配对设备
  5. 在终端窗口中输入:sudo defaults read com.apple.bluetoothd.plist LinkKeys。这将给出类似以下内容的输出:
{
    “a0-99-9b-16-43-d2” = {
        “00-1f-20-47-e5-22” = <4d6b002f 37584c09 ee219365 b78ba03e>;
        “04-0c-ce-3d-15-4d” = <fe998c62 4bb29a7c 40b2e670 10db71ed>;
    };
}

a0-99-9b-16-43-d2是我的系统上蓝牙适配器的 MAC 地址。

接下来是我已经配对的设备的 MAC 地址(00-1f-20-47-e5-22和)04-0c-ce-3d-15-4d以及与这些配对关联的链接密钥(分别是4d6b002f 37584c09 ee219365 b78ba03efe998c62 4bb29a7c 40b2e670 10db71ed)。

  1. 将此输出重定向到 MacOS 和 Ubuntu 均可见的文件:
sudo defaults read com.apple.bluetoothd.plist LinkKeys > /Volumes/4T/linkkeys.txt
  1. 关掉所有已配对的设备
  2. 重新启动进入 Ubuntu。 请勿开启您的蓝牙设备尚未连接。希望您此时可以使用有线键盘和鼠标
  3. 打开终端窗口
  4. 停止蓝牙服务:
sudo 服务蓝牙停止
  1. 查看目录/var/lib/bluetooth。您应该会看到一个蓝牙适配器 MAC 地址的子目录条目,格式如下A0:99:9B:16:43:D2。在其中,您应该会看到每个设备 MAC 地址的子目录,如00:1F:20:47:E5:2204:0C:CE:3D:15:4D。在这些目录中,您将找到名为的文件info。使用您最喜欢的编辑器编辑这些文件:
sudo gedit /var/lib/bluetooth/A0:99:9B:16:43:D2/00:1F:20:47:E5:22/info
sudo gedit /var/lib/bluetooth/A0:99:9B:16:43:D2/04:0C:CE:3D:15:4D/info
  1. 在这些文件中,您将找到一个Key条目。此键需要与 MacOS 中找到的键相同,但有一些重要的格式差异:
    • 删除了空格
    • 大写的十六进制数字
    • 字节交换的 128 位整数(即分成 2 个十六进制数字块并反转)

您可以按照如下方式实现此目的:

$ echo 4d6b002f 37584c09 ee219365 b78ba03e | sed's/ //g;s/../\U&\n/g' | tac | tr -d'\n'; echo
3EA08BB7659321EE094C58372F006B4D
$ echo fe998c62 4bb29a7c 40b2e670 10db71ed | sed's/ //g;s/../\U&\n/g' | tac | tr -d'\n'; echo
ED71DB1070E6B2407C9AB24B628C99FE
$

将这些重新格式化的密钥编辑到相应信息文件的密钥条目中。很可能sudo需要这样做。

  1. 重新启动蓝牙服务:
sudo 服务蓝牙启动
  1. 现在打开您的蓝牙设备。它们应该被识别,并且配对在 MacOS 和 Ubuntu 中都处于活动/有效状态。

更新:配对似乎在 MacOS 和 Ubuntu 升级后仍然存在。我现在分别运行 10.13.6 和 18.04,尚未重做此过程。

相关内容