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.
I was finally able to get my Microsoft Explorer Mouse and Designer Compact Keyboard working, by some better guidance in this post
https://unix.stackexchange.com/a/413831. I had a similar experience to you, where mouse would connect then disconnect in a loop.
Important
Parameters\Keys\{Bluetooth-Controller-ID}'
calledCentralIRK
. I used this value for setting any[IdentityResolvingKey]
that's used for all the devices using this same Bluetooth Controller. Not sure if this was necessary, but I also added a[LocalSignatureKey]
with this same value.[LongTermKey]
, and it was extremely important to get theRand
andEDiv
values byte-aligned as mentioned in the post. MS Designer Compact Keyboard did not care about these values.