不再烦人 让Windows10和Linux双系统共用蓝牙设备
2021-07-08平淡
平淡
小提示
因为保存LTK信息的键值默认受系统保护,直接启动regedit.exe无法看到键值,所以这里必须使用PsExec.exe来加载启动。

了解问题产生的原因
蓝牙鼠标在和系统首次进行连接时,它们之间会进行配对,配对成功后就会生成LTK(即Long-Term Key,译为长期密钥)。这样下次需要再连接的时候,系统会检测配对设备的LTK,如果一致則成功连接,否则需要重新配对(图1)。
由于Windows10和Linux在连接蓝牙鼠标时,它们会分别生成不同的LTK,比如在Windows 10中连接蓝牙鼠标生成的LTK是A,但是切换到Linux系统中后这个连接的密钥就变为B。这样当我们再次切换到Windows 10系统中后,由于蓝牙鼠标保存的LTK仍然是B,Windows 10就会将蓝牙鼠标重新识别为新设备,因此需要重新进行配对才能正常使用。反之亦然。不过对Windows 10系统来说,成功连接后会在注册表中保存LTKA,我们可以手动将其改为LTKB。这样在Linux中连接后蓝牙鼠标保存的也是LTKB,从而实现切换到Windows 10中之后也能成功连接。
统一蓝牙鼠标的LTK
如上所述,通过手动更改Windows系统保存的LTK可以解决问题。下面我们以在Linux(以Ubuntu 20.10操作为例)中保存的LTK为准,介绍如何在Windows 10下修改LTK,使之和Liunx下显示的一致。
1.获取Ubuntu系统下的LTK
进入Ubuntu系统,按提示先连接蓝牙鼠标,成功完成连接并可以正常使用后启动终端。接着在终端输入命令“SU”并回车执行,按提示输入Ubuntu账户和登录密码。接着继续输入“cd/var/lib/bluetooth”和“Is”命令并执行,在这里可以看到一个类似“49:BA:F9:77:05:42”的目录名,这个对应的是本机MAC地址的名称(图2)。
继续输入并执行“cd 49:BA:F9:77:05:42”和“Is”命令,在该目录下还可以看到类似“29:88:5F:4E:E6:55”的子目录,这个对应的是蓝牙鼠标的MAC地址。……
