1

I have a Dell L702X which has been enabled for UEFI via Custom BIOS and I have Windows 8 Pro x64 and Ubuntu 12.10 x64 successfully dual booting on GPT.

I have named my device under Ubuntu with the same visible name under Windows. All devices pair ok under each respective operating system but the pairs are unique and not shared between the two.

I am struggling to find a way to copy in my bluetooth peripheral keys from Windows 8 into Ubuntu 12.10. I can extract the keys from [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys] from Windows but I can't find the "linkkeys" file that is supposedly under /var/lib/blueooth/[deviceid]/ ?

I am guessing the keys are now in a different place or a different method of access (if at all possible)?

Any help would be greatly appreciated.

2

I was using 12.04 and find the same problem. I solved it by:

  1. Creating a new linkkeys file and fixing the permission in that path /var/lib/bluetooth/AA:11:11:11:11:11/
  2. Then replace the link key you get in windows using the correct format:

    BB:22:22:22:22:22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0 6
    
  3. After reboot, the bluetooth device should works fine.

1

I had the same problem, but on Windows 10 (.0.17134.345) and Lubuntu 18.04.

Here's what worked for me:

  1. Pair the device in Lubuntu.
  2. Pair the device on Windows.
  3. Get the link key from Windows. Without needing to download psexec, one can create a service that will run a command as SYSTEM, so as to have permission to access the regestry key with the link keys. In this case, that command will export the Bluetooth link keys to a file.

    Open a command prompt as Administrator and run:

    sc create cmdsvc binpath= "REG EXPORT HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\BTHPORT\Parameters\Keys\aa1111111111\bb2222222222 c:\keys.reg" type= own

    where aa1111111111 is the computer's adapter address and bb2222222222 is the pheriphral device's address. Alternatively, you can omit \aa1111111111\bb2222222222 to get all the keys.

    After creating the service with the command above, run it once with:

    sc start cmdsvc

    You should get an arror saying [SC] StartService FAILED 1053: (...). Check that the c:\keys.reg file was created. If so, you're good.

    You can now delete the service, as it's not needed.

    sc delete cmdsvc
  4. Open c:\keys.reg with a text editor to get the link key (you can this in Lubuntu if you mount the Windows C: partition there). You'll have a line such as:

    "aa1111111111"=hex:XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX
  5. On Lubuntu, put the link key you got from Windows in the file in /var/lib/bluetooth/AA:11:11:11:11:11/BB:22:22:22:22:22/info. You'll want to put the key as such, without the commas, replacing the existing key:

    [LinkKey] 
    Key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Don't mess with the rest of the file, change only the line with Key=.

Now the device is paired on both Windows 10 and on Lubuntu Linux (with the same key) and should work on both without having to repair every time you boot a different OS :)

0
  1. Use command under windows: psexec -s -i regedit.exe

    Download psexec from: http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx. (See google for more information.)

  2. Copy the key from:

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\BTHPORT\Parameters\Keys\aa1111111111\bb2222222222
    

    (reg_binary)

  3. Then replace the key in: /var/lib/bluetooth/XXXXXXXXXXXX/linkkeys

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.