本文介绍在深度Deepin和Windows 10双系统中蓝牙4.0鼠标共享使用的方法,其实在做完双系统后发现每次切换之后蓝牙鼠标都不能自动链接,还要删除原来的蓝牙再重新搜索一次,非常麻烦,不过按照以下步骤操作就可以解决问题了。
原理
因为蓝牙每次链接都会随机生成一个对接码。也就是说比如先和Windows 10对接后,生成对接码1,但是切换到deepin后再对接,鼠标只会存储第二次对接的对接码2,那么等你再次回到Windows 10系统之后,鼠标存储的对接码2和原来系统存储的对接码1不匹配,就会无法链接。
网上有各种解决方案,我的思路是把Windows 10下的对接码1 替换到deepin下的对接码2,这样两个码值就统一了。自然就都可以链接。
解决方法
步骤一
删除原来所有的蓝牙设备,当然这步的目的是为了防止你找不准哪个蓝牙才是你鼠标的,如果你能确定记住,这步可以省略。
注:双系统下,同一个鼠标的蓝牙地址最后一位会不同哦。
步骤二
先在Windows 10下建立与鼠标的蓝牙配对。
再切换到deepin下,把鼠标蓝牙对接成功。
步骤三
切换Windows 10系统,到微软官网下载PSTools:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec
将压缩包解压缩后,以管理员身份运行cmd。
桌面左下角,小娜搜索框输入cmd,右键点击CMD选择管理员打开,进入pstools的文件夹:例如我把PSTools下载在【D盘】的【迅雷下载】文件夹,那么我只要在命令行里输入:
cd /d d:/迅雷下载/PSTools/
这样就可以成功切换进入该文件夹。
执行命令psexec.exe -s -i regedit之后会自动打开windows的注册表。
找到如下地址:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys\
这里很重要,建议直接用手机直接拍下来。
Windows 10下的蓝牙鼠标信息:
记录下如下几个参数的值:
罗技:CSRK, IRK, LTK, EDIV, ERand,其中EDIV和ERand需要10进制(就是上图中括号里的部分)。
小米:IRK, LTK, EDIV, ERand,其中EDIV和ERand需要10进制。
注:有些蓝牙设备可能稍有区别。
步骤五
切换回到deepin下,桌面系统进入/var/lib/bluetooth/文件夹,提示:在进入Bluetooth前,右击以管理员身份进入,输入root密码之后就可以进入了。
就是对照着Windows 10下面,把/var/lib/bluetooth/XX:XX:XX:XX:XX:XX(电脑蓝牙地址)/YY:YY:YY:YY:YY:YY(鼠标蓝牙地址)/info文件进行修改,
这里着重提示一下,linux下YY:YY:YY:YY:YY:YY(鼠标蓝牙地址)可能和Windows 10下不一样,网上有教程说区别是最后一位,我的电脑在linux下确实在最后一位确实不一样,其他电脑我不知道是不是也这样。
可以把YY:YY:YY:YY:YY:YY文件夹手动改名,但是在窗口下改最后一位,发现改完后中间的冒号都没了。这时就要用命令行改了。不知道是不是小bug?
命令如下:mv file1file2
比如 mv YY:YY:YY:YY:YY:Y2 YY:YY:YY:YY:YY:Y1 这样就可以把文件夹名称改了,这样的目的也是为了两个系统的蓝牙鼠标地址一致。
例如:我的文件是这样的,注意和上图的对比。就是修改 EDIV ERand IRK LTK四个数值为Windows 10下的数值,不同的鼠标不一定一样,可以参考后面的对照。
略掉一部分
[IdentityResolvingKey]
Key=5D97FCB6AD2E740FABB7C999E5FB89A #数值等于Windows下的IRK值的大写
[LongTermKey]
Key=228C402B3B533C730B3943F05137DAC6 # 数值等于Windows下的LTK值的大写
Authenticated=0
EncSize=16 # 这里数值是16
EDiv=46623 # 数值等于Windows下的EDIV值的10进制
Rand=9780254835825153217#数值等于Windows下的ERand值的10进制,
EDiv和Rand你就照着上面win10下括号里的填写就可以了,有教程说要倒顺序,其实都不用管,只要填括号里那个就可以了。
步骤六
修改之后重启蓝牙服务service bluetooth restart,或者重启机器,之后就能在深度Linux系统下使用鼠标了。
相关主题