蓝牙共享网络 Linux,多系统如何共享蓝牙设备?

多系统如何共享蓝牙设备?

之前一直使用2.4G的无线鼠标,双系统下都是免驱动的直接用很方便。一直没出什么问题。后来看见微软那个带触摸侧边键的鼠标好像挺方便的,就买了。之后发现鼠标在windows下配对了能用了,但是到linux或者同一台机器的其他系统又要重新配对。一旦重新配对原来的系统中又不能用了。导致鼠标使用起来非常的难受。之后上网查了查,解决了这个问题。

问题之源

蓝牙协议或者硬件上应该存在配对上存在一个安全机制。不像使用平时自己使用NRF2401这种2.4G射频芯片一样只要频率和收发地址对了就直接通信。两个鼠标电脑配对的过程,配对时会随机产生一个密钥。所以每次切换系统重新配对鼠标储存的密钥就变了。之前的系统储存的和新的不能匹配了。

解决之道

鼠标不是自己做的设备,动不了手脚。那只能在电脑上动手了。配对的密钥总得储存个地方吧。那就直接改了就好了。

Windows系统:

Windows平台的密钥存在注册表中,路径是KEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys 。这里会看到一个或者多个长度为12的16进制数字名称的子键,那就是电脑上的蓝牙设备。感觉和MAC地址一样的,代表着电脑上不同的蓝牙适配,一般电脑只有一个。进入电脑上和目标蓝牙设备配对的蓝牙适配器对应的子键下面,可以看到很多16进制数字名称的键值——这就是代表连接过不同设备啦。点开里面里16Byte的密钥。

Linux系统:

这个改起来更方便啦,直接以文件形式储存的,在/var/lib/bluetooth下。一个文件夹代表一个蓝牙适配器。文件名和Win平台注册表下的类似。一个是a0v1c2d3e4f5的形式一个是A0:B1:C2:D3:E4:F5的形式。

进去可以看到更多这样的文件夹代表不同设备。找到目标设备的文件夹,进去后有个名为info的文本文件。内容如下形式:

[General] Name=Microsoft Sculpt Comfort Mouse

Class=0x000580

SupportedTechnologies=BR/EDR;

Trusted=true

Blocked=false

Services=00001000-0000-1000-8000-00805f9b34fb;00001124-0000-1000-8000-00805f9b34fb;00001200-0000-1000-8000-00805f9b34fb;

[LinkKey]

Key=C628CDC86B2308285728DFE14A65D559

Type=4 PINLength=0

[DeviceID]

Source=2

Vendor=1118

Product=1954

Version=297

基本上设备各种信息都有了。把Key后面那串就是要找的密钥。

知道上述要点后就很好办了。先在各系统下匹配一边生成文件或者注册表。然后把最后一次匹配生成的Key复制到各个系统下正确的地方就可以在多个系统下正常使用了。无需每次重新配对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值