Windows 和 Linux Mint/Ubuntu 雙啟動時的藍牙配對 - 無需配對設備
當雙啟動 Windows 7/10 和 Linux Mint/Ubuntu 時,您可能會發現自己不得不一次又一次地重新配對您的藍牙設備。每次切換作業系統時都會發生這種情況。
現在,您如何防止這種情況發生?
我正在使用以下指南迴答我自己的問題,該指南已在 Ubuntu 14.4 和 Linux Mint 17.2、17.3 以及現在的 Linux Mint 18.x 上進行了測試。
為什麼會這樣?
基本上,當您配對您的設備時,您的藍牙服務會生成一組獨特的配對密鑰。首先,您的電腦會儲存藍牙設備的 MAC 地址和配對密鑰。其次,您的藍牙設備會儲存您電腦的 MAC 地址和匹配的密鑰。這通常可以正常工作,但是您的藍牙埠的 MAC 地址在 Linux 和 Windows 上將是相同的(它是在硬體級別設置的)。因此,當您在 Windows 或 Linux 中重新配對設備並生成新密鑰時,該密鑰會覆蓋藍牙設備上先前儲存的密鑰。Windows 會覆蓋 Linux 密鑰,反之亦然。
**藍牙 LE 設備:**這些設備的配對方式可能不同。我沒有調查過自己,但這可能有助於雙啟動藍牙 LE(低功耗)設備配對
怎麼修
使用下面的說明,我們將首先將您的藍牙設備與 Ubuntu/Linux Mint 配對,然後我們將配對 Windows。然後我們將回到我們的 Linux 系統並將 Windows 生成的配對密鑰複製到我們的 Linux 系統中。
- 將所有設備與 Mint/Ubuntu 配對
- 將所有設備與 Windows 配對
- 通過以下兩種方式之一複制您的 Windows 配對密鑰:
從 Windows使用
psexec -s -i regedit.exe
(更難)。您需要psexec
正常 regedit 沒有足夠的權限來顯示此值。
- 轉到控制面板中的“設備和列印機”,然後轉到藍牙設備的屬性。然後,在藍牙部分,您可以找到唯一標識符。複製它(稍後您將需要它)。
- 從http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx下載 PsExec 。
- 解壓縮您下載的 zip 並使用提升的權限打開一個 cmd 視窗。(點擊開始菜單,搜尋
cmd
,然後右鍵點擊 CMD 並點擊“以管理員身份執行”。)- cd 進入您解壓縮下載的文件夾。
- 跑
psexec -s -i regedit.exe
- 導航以在 處找到密鑰
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys
。如果沒有CurrentControlSet
,請嘗試ControlSet001
。- 您應該會看到一些帶有 MAC 地址的鍵標籤 - 記下與您之前複製的唯一標識符相關聯的 MAC 地址。
chntpw
從您的 Linux 發行版中使用(更容易)。然後在終端中啟動:
sudo apt-get install chntpw
- 以讀寫模式安裝 Windows 系統驅動器
cd /[WindowsSystemDrive]/Windows/System32/config
chntpw -e SYSTEM
打開一個控制台- 在該控制台中執行這些命令:
> cd CurrentControlSet\Services\BTHPORT\Parameters\Keys > # if there is 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 the 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 版本將全部大寫,並在每兩個字元後用“:”標點 - 例如 AA:11:22:33:44:55。根據您的 Linux 版本,您可以執行以下操作之一:
在 Mint 18/16.04 之前,您可以這樣做:
sudo edit /var/lib/bluetooth/[MAC address of Bluetooth]/linkkeys
-$$ the MAC address of Bluetooth $$應該是該藍牙文件夾中的唯一文件夾。 2. 該文件應如下所示:
[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
將 Linux 配對密鑰更改為 Windows 配對密鑰,減去空格。
在 Mint 18(和 Ubuntu 16.04)中,您可能必須這樣做:
- 切換到 root:(
su -
在更現代的 Ubuntu 版本中,‘sudo -i’)- cd 到您的藍牙配置位置
/var/lib/bluetooth/[bth port MAC addresses]
- 您可以在此處找到已配對的每台設備的文件夾。文件夾名稱是藍牙設備的 MAC 地址,包含一個文件
info
。在這些文件中,您將看到需要用 Windows 替換的連結密鑰,如下所示:[LinkKey] Key=B99999999FFFFFFFFF999999999FFFFF
- 更新後,通過以下方式之一重新啟動您的藍牙服務,然後它就可以工作了!
- Ubuntu,薄荷,拱:
sudo systemctl restart bluetooth
或者,將您的機器重新引導到 Linux。 6. 重新啟動到 Windows - 它的工作原理!