当双启动Windows 7/10和Linux Mint / Ubuntu时,您可能会发现自己不得不一次又一次地修复蓝牙设备。每次切换操作系统时都会发生这种情况。
现在,如何防止这种情况发生?
我正在用以下指南回答我自己的问题,该指南已经在Ubuntu 14.4和Linux Mint 17.2、17.3和现在的Linux Mint 18.x上进行了测试。
当双启动Windows 7/10和Linux Mint / Ubuntu时,您可能会发现自己不得不一次又一次地修复蓝牙设备。每次切换操作系统时都会发生这种情况。
现在,如何防止这种情况发生?
我正在用以下指南回答我自己的问题,该指南已经在Ubuntu 14.4和Linux Mint 17.2、17.3和现在的Linux Mint 18.x上进行了测试。
Answers:
基本上,当您与设备配对时,您的蓝牙服务会生成一组唯一的配对密钥。首先,您的计算机存储蓝牙设备的mac地址和配对密钥。其次,您的蓝牙设备存储您计算机的mac地址和匹配密钥。这通常可以正常工作,但是您的蓝牙端口的mac地址在Linux和Windows上都相同(在硬件级别上设置)。但是,当您在Windows或Linux中重新配对设备时,它将生成一个新密钥。该密钥将覆盖蓝牙设备上先前存储的密钥。Windows将覆盖Linux密钥,反之亦然。
按照以下说明,我们首先将您的Bluetooth设备与Ubuntu / Linux Mint配对,然后将Windows配对。然后,我们将回到Linux系统,并将Windows生成的配对密钥复制到Linux系统中。
以2种方式之一复制Windows配对密钥。
psexec -s -i regedit.exe
从Windows 使用(更难)
cmd
,然后右键单击CMD并单击Run as Administrator
)psexec -s -i regedit.exe
LOCAL_MACHINE\CurrentControlSet\services\BTHPORT\Parameters\Keys
如果没有CurrentControlSet尝试” 处找到的键Controlset001
。在Windows 10上,您会在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\
chntpw
从Linux发行版(更轻松)中使用,请在终端中启动,然后:
sudo apt-get install chntpw
cd /[windowsSystemDrive]/WINDOWS/System32/config
-在Windows 10上,根文件夹为“ Windows”,在Win7上为“ WINDOWS”chntpw -e SYSTEM
打开一个控制台在该控制台中运行这些命令
> cd CurrentControlSet\Services\BTHPORT\Parameters\Keys
> # if no CurrentControlSet then try ControlSet001
> # on windows 7, "services" above is lowercased.
> ls
# shows you your bluetooth port's mac address
Node has 1 subkeys and 0 values
key name
<aa1122334455>
> cd aa1122334455 # CD into the folder
> ls
# lists of existing devices' MAC addresses
Node has 0 subkeys and 1 values
size type value name [value if type DWORD]
16 REG_BINARY <001f20eb4c9a>
> hex 001f20eb4c9a
=> :00000 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX ...ignore..chars..
# ^ the XXs are the pairing key
记下哪个蓝牙设备MAC地址与哪个配对密钥匹配。mint / ubuntu不需要它们之间的空格。忽略:00000
让我们回到Linux(如果不是在Linux中),然后将Windows键添加到我们的Linux配置条目中。只需注意,从Windows迁移到Linux时,蓝牙端口的mac地址的格式设置不同-在上面的示例中,Windows中称为aa1122334455。Linux版本大写,每2个字符后加':'-例如:AA:11:22:33:44:55。根据您的Linux版本,您可以执行以下操作之一:
在Mint 18 / 16.04之前,您可以执行以下操作:
sudo edit /var/lib/bluetooth/[mac address of Bluetooth]/linkkeys
-[蓝牙的mac地址]应该是该蓝牙文件夹中的唯一文件夹。 该文件应如下所示
[Bluetooth MAC] [Pairing key] [digits in pin] [0]
AA:11:22:33:44:55 XXXXXXXXxxXXxXxXXXXXXxxXXXXXxXxX 5 0
00:1D:D8:3A:33:83 XXXXXXXXxxXXxXxXXXXXXxxXXXXXxXxX 4 0
在Mint 18(和Ubuntu 16.04)中,您可能必须这样做:
su -
/var/lib/bluetooth/[bth port mac addresses)]
在这里,您将找到与之配对的每个设备的文件夹。文件夹名称是Bluetooth设备的mac地址,并且包含一个文件info
。在这些文件中,您将看到需要用Windows替换的链接密钥。
[LinkKey]
Key=B99999999FFFFFFFFF999999999FFFFF
sudo /etc/init.d/bluetooth restart
或重新启动进入Linux-它起作用了!HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters
这样HLKM)
一旦在Windows中获得了蓝牙设备的密钥,您就可以简单地转到设置,蓝牙并获取它们的密钥,这就是简单的部分。困难的部分是在linux上进行更改,我使用ubuntu,并且这样做的方式是:
安装gksu以获取管理员权限,只需输入以下命令:sudo apt-get install gksu
安装完成后,您必须按ALT + F2并键入gksu nautilus(请务必谨慎,仅更改您必须执行的操作,否则可能会损坏操作系统。)
现在,按照上述答案路径转到文件的特定位置,您将在其中找到一个名为Info的文件,将其打开并更改密钥。重新启动蓝牙或重新启动PC并完成。很抱歉,如果英语和语法不好,我懒得检查一下。