如何避免一直配对蓝牙鼠标?

alp*_*per 20 mouse dual-boot bluetooth

我是双启动 Ubuntu 和 Windows 8。我有一个 Microsoft 蓝牙鼠标。它在两个操作系统中都可以正常工作,但是每次切换操作系统时我都必须配对。

有没有什么办法可以不用每次都配对使用蓝牙鼠标?

小智 7

这个答案适用于 bluetoothd v5.35 - 我认为它也适用于早期版本的 bluetoothd v5。

  1. 在 linux 中与设备配对
  2. 重启
  3. 在 Windows 中与设备配对
  4. 按照第零个描述提取链接密钥
  5. 关闭蓝牙设备并重新启动到 linux

确保在启动 linux 时关闭您的设备。

否则,它将尝试使用旧的(现在无效的)链接密钥重复连接到设备。这可能会触发反蛮力措施,导致设备无法访问。

转到以设备地址命名的子文件夹。您应该在那里找到一个名为“info”的文件。打开那个。

sudo nano /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/YY:YY:YY:YY:YY:YY/info
Run Code Online (Sandbox Code Playgroud)

在该[LinkKey]部分中设置密钥。例子:

Key=3E717C5B8735C1984B71636D7B941DEE
Run Code Online (Sandbox Code Playgroud)

现在检查该[General]部分并设置

Trusted=false
Run Code Online (Sandbox Code Playgroud)

保存并重启蓝牙:

sudo service bluetooth restart
Run Code Online (Sandbox Code Playgroud)

当您打开设备时,应该会出现一个弹出窗口,询问您是否要授权连接的蓝牙设备。你当然知道!

如果您从 Mac OS 中提取链接密钥,则需要反转密钥的字节顺序。Mac OS 以反向字节顺序保存它。

  • 这已经发生了一些变化。我一直在更新本指南:http://unix.stackexchange.com/questions/255509/bluetooth-pairing-on-dual-boot-of-windows-linux-mint-ubuntu-stop-have-to -p (2认同)

小智 1

您现在可能已经找到解决方案了。尽管如此,这应该有所帮助:

引用自http://ubuntuforums.org/showthread.php?t=1479056(添加了一些格式)

你好,我通过复制蓝牙链接密钥让它与我的一起工作。这就是我所做的:


找到 PC/适配器的蓝牙地址(假设AA:11:11:11:11:11)。找到键盘的蓝牙地址(假设BB:22:22:22:22:22)。在 Linux 下正常配对设备(通过 Gnome 面板)。
应该有一个名为 的文件/var/lib/bluetooth/AA:11:11:11:11:11/linkkeys,其中包含如下行:

BB:22:22:22:22:22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0 6
Run Code Online (Sandbox Code Playgroud)

这里,xxxx是以十六进制连续写入的16个字节,即链接密钥。

在 Windows 下正常配对设备(这将更改密钥)。从 Windows 获取密钥。就我而言,它位于以下注册表项中:

SYSTEM\ControlSet002\services\BTHPORT\Parameters\Keys\aa1111111111\bb2222222222
Run Code Online (Sandbox Code Playgroud)


不幸的是,当我进入密钥时,RegEdit 说“访问被拒绝”,即使以管理员身份登录也是如此。(我想在某些情况下它可能在另一个 ControlSet 中。)


在 Linux 下重新启动,安装chntpw. Lucid v0.99.5 打包的版本似乎不支持 64 位注册表。Debian 存储库中的最新版本(截至撰写本文时为 v0.99.6-2)对我有用。

为了避免从 Linux 对 Windows 注册表进行不必要的修改,我已将该SYSTEM文件复制到其他位置,来自:/path/to/Windows/System32/config/SYSTEM
然后我使用以下命令打开它(使用/chntpw浏览注册表;使用 帮助?):lscd

chntpw -e SYSTEM
ls
cd ControlSet002\services\BTHPORT\Parameters\Keys
ls
cd aa1111111111
ls
hex bb2222222222
Run Code Online (Sandbox Code Playgroud)

这会产生这样的结果:

:00000 xx xx xx xx xx xx xx
Run Code Online (Sandbox Code Playgroud)

这里,xx xx xx是另外 16 个字节,以十六进制表示,表示 Windows 中设置的链接密钥。

最后,我复制了该内容(并删除了空格)以替换/var/lib/bluetooth/AA:11:11:11:11:11/linkkeys.

我必须断开连接并重新连接(通过 Gnome 小程序),但有时无论如何我都必须这样做。(在登录之前似乎也不起作用,但同样,即使仅在 Linux 下配对也会发生。这可能是一个不同的问题。)

它对我有用。对于不习惯编辑配置文件的人来说,这可能有点复杂。我认为处理SYSTEM注册表文件的副本也更安全,以防万一出现问题。


the*_*oth 1

您应该将 Windows 和 ubuntu 配置为在使用鼠标连接时使用相同的密钥(密码)。

将其与您的 ubuntu 配对,然后重新启动到 Windows,将其配对并获取用于连接鼠标的关键窗口,请参阅此处的我的答案以了解如何操作:

https://superuser.com/questions/229930/finding-bluetooth-link-key-in-windows-7-to-double-pair-a-device-on-dualboot-com

然后重新启动到 ubuntu 打开终端:

sudo -i
cd /var/lib/bluetooth/
ls
Run Code Online (Sandbox Code Playgroud)

记下您的蓝牙适配器 MAC 地址

cd [put adaptor mac address here]
nano linkkeys
Run Code Online (Sandbox Code Playgroud)

将鼠标MAC地址前面的键改为windows正在使用的键

按 Ctrl+X、y 和 Enter 保存,然后重新启动。现在您的鼠标应该可以在两个操作系统上工作。