This guide provides updated instructions for pairing Bluetooth devices (such as keyboards or mice) in a dual-boot environment with Linux Ubuntu and Windows 10/11, incorporating community feedback and suggestions.
- Pair your Bluetooth device in Linux. This is crucial to ensure the LinkKey remains consistent.
- Note: Do not re-pair the device in Linux after completing the pairing in Windows.
- Pair the Bluetooth device in Windows. Note the MAC address of the device for later steps.
- Install the
chntpw
package to read Windows registry keys:sudo apt-get install chntpw
- Mount your Windows system drive and navigate to the System32 config folder:
cd /[MountedDrive]/Windows/System32/config
- Execute the following command in the config folder:
chntpw -e SYSTEM
- In the
chntpw
console, navigate to the Bluetooth registry keys:cd \ControlSet001\Services\BTHPORT\Parameters\Keys
- Use
ls
to list unique IDs and find your device's MAC address. - Retrieve the pairing key (hex code) associated with your device.
- Edit the corresponding file in your Linux drive:
sudo nano /var/lib/bluetooth/[Unique ID]/[Mac Address]/info
- Replace the
Key
value in the[LinkKey]
section with the pairing key from Windows. - If the
[LinkKey]
section is missing, add it manually.
- Save the changes and restart the Bluetooth service:
sudo service bluetooth restart
- Simplification with
reged
: Usereged
to export Bluetooth pairing keys directly into a file for easier identification and copying. - Bluetooth LE Devices: For Bluetooth LE devices, the data storage might differ. Users should research specific steps for these devices.
- Windows 11 Compatibility: This method is also compatible with Windows 11.
- Multiple Bluetooth Receivers: If you have multiple Bluetooth receivers, ensure you identify and use the correct pairing key.
- Changing Bluetooth MAC Address in Linux: If necessary, you can change the Bluetooth MAC address in Linux using the following commands:
sudo hciconfig hci0 down sudo bluemoon -A sudo hciconfig hci0 up sudo systemctl restart bluetooth.service
- Adding Missing [LinkKey] Section: If the [LinkKey] section is missing in the
info
file, you should add it manually.
Special thanks to the community members who provided valuable insights and suggestions, including nnnnicholas, kna0085, lguangyu, KeyofBlueS, bjoern-vh, Nielius, IgorRodriguez, princeofguilty, and others.
Please consider donate a little in this humble bitcoin wallet: bc1qrd3mexqu43qn0597d248725kdp3tr28252q64p
I still have issue with my Microsoft Bluetooth Ergonomic Mouse. This one is really tricky.
Yes it can pair with up to 3 device, but if I pair it on both OS on my dual boot (Windows 11, LMDE 6), the mouse with always delete the older pairing because it's the same MAC address. So everytime I boot the other OS, I have to pair the device again and lose all preferences.
First, it's one of them changing MAC Address between each pairing because why not. That I can manage.
On Linux, I got 3 keys:
[LongTermKey]
,[PeripheralLongTermKey]
and[SlavelLongTermKey]
. The two last ones are identical but the first one differs.On Windows, only one key stamped as
LTK
. I got alsoERand
andEDiv
but no IRK or CRK, even though there is aCEntralIRKStatus
with a value of 1.I never got a working combination. The best issue I got was to remove
[LongTermKey]
entirely and leave the two last ones with values I copied from Windows. After that, I got a stable connection on Linux (whereas all other tries resulted in connecting/disconnecting because key seemed wrong) but the mouse is blinking saying there is no connection.Any ideas how to do on this one?