电脑装了Ubuntu18.04(64bit)和win10双系统,用的蓝牙3.0键盘,切换双系统时候很麻烦,在win下连过的键盘没法在Linux下直接连接,必须重新建立蓝牙链接,有时候还半天连不上。都想买个有线的机械键盘了,后来捣鼓了捣鼓解决了就忍住了剁手的冲动。
问题原因
这个问题是蓝牙连接的机制导致的。电脑和键盘蓝牙地址都是固定的,但是在win10下进行配对的蓝牙键盘生成的配对密码和Ubuntu下连接生成的配对密码是不一样,所以就导致了明明是一样的蓝牙地址,但是因为配对密码不一致而无法连接的问题,因此解决的思路就是将两个系统与蓝牙键盘的配对密码改成一样的密码。
打个比方就是人对上了,但是暗号对不上。
因此问题解决有两个思路:
将ubuntu蓝牙连接密码改为和win10一样的将win10蓝牙连接密码改为和Ubuntu一样的
这里我采用了第二个办法。
所以对于能够连接多个设备的蓝牙键盘(比如我的键盘可以连接三个设备),跟电脑连接的应该是一个频道,就是切换系统之后不要切换频道。
注意:我使用的键盘蓝牙协议是3.0的,4.0的可能有所不同
获取Ubuntu下的蓝牙连接密码
这里我们默认键盘已经在win10下进行连接了。
切换到Ubuntu系统下,连接键盘。看一下设置里蓝牙的地址,假设是aa:bb:cc:dd:ee:ff
获取Ubuntu下的配对linkkey
sucd /var/lib/bluetooth/xxxxx #(tab自动补全电脑蓝牙mac地址)cd aa:bb:cc:dd:ee:ff #(进入蓝牙键盘目录, 该目录下就一个info文件)gedit info #(用你喜欢的编辑器打开)
打开info
后应该像下面一样,记住[LinkKey]
下面的Key
(应该只有一个,我这里是进行了修改),这就是蓝牙的配对密码。
修改win10下的蓝牙配对密码
切回win10, 为了修改注册表,我们下一个下载PsExec, 将下载的压缩包解压到一个目录。使用管理员身份打开PowerShell或者cmd,运行PsExec.exe。(我感觉直接win+R
,然后输入regedit
打开注册表应该也可以修改)
#进入刚才解压的目录.\PsExec.exe -s -i regedit #(带参数运行PsExec.exe,为了修改注册表)
之后注册表会自己弹出来
2. 进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys\
用在linux下记录的linkkey
修改键盘蓝牙地址对应的配对密码
然后重启一下之后,进入win10,键盘就自动连接上了。
参考文章
Ubuntu和Windows双系统连接罗技蓝牙键盘
win10和ubuntu16共用蓝牙鼠标