Соединение Bluetooth при двойной загрузке Windows и Linux Mint / Ubuntu - прекратите подключать устройства

53

При двойной загрузке Windows 7/10 и Linux Mint / Ubuntu может возникнуть необходимость ремонтировать устройства Bluetooth снова и снова. Это будет происходить каждый раз, когда вы переключаете ОС.

Теперь, как вы можете предотвратить это?

Я отвечаю на свой вопрос с помощью следующего руководства, которое было протестировано на Ubuntu 14.4 и Linux Mint 17.2, 17.3 и теперь Linux Mint 18.x.

Марио Оливио Флорес
источник
2
Я делал это несколько раз, и шаги чрезвычайно утомительны. Я создал этот скрипт, чтобы ускорить его: github.com/LondonAppDev/dual-boot-bluetooth-pair
Марк Уинтерботтом,

Ответы:

98

Почему это происходит?

Обычно при сопряжении устройства служба Bluetooth генерирует уникальный набор ключей сопряжения. Сначала ваш компьютер сохраняет MAC-адрес устройства Bluetooth и ключ сопряжения. Во-вторых, ваше устройство Bluetooth сохраняет MAC-адрес вашего компьютера и соответствующий ключ. Обычно это работает нормально, но MAC-адрес для вашего порта Bluetooth будет одинаковым как в Linux, так и в Windows (он установлен на аппаратном уровне). Однако при повторном сопряжении устройства в Windows или Linux оно генерирует новый ключ. Этот ключ перезаписывает ранее сохраненный ключ на устройстве Bluetooth. Windows перезаписывает ключ Linux и наоборот.

Как исправить

Используя приведенные ниже инструкции, мы сначала подключим ваши устройства Bluetooth к Ubuntu / Linux Mint, а затем подключим Windows. Затем мы вернемся в нашу систему Linux и скопируем сгенерированные Windows ключи в нашу систему Linux.

  1. Пара w / mint / ubuntu - все устройства
  2. Подключите все устройства с Windows
  3. Скопируйте ключи сопряжения Windows одним из двух способов.

    • Использовать psexec -s -i regedit.exeиз окон (сложнее)

      1. Перейдите в раздел «Устройства и принтеры» на панели управления и перейдите в свойства вашего устройства Bluetooth, затем в разделе «Bluetooth» вы можете найти уникальный идентификатор, скопируйте его (он понадобится вам позже).
      2. скачать с Скачать psexec с: http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx .
      3. разархивируйте zip-файл, который вы скачали, и откройте терминал cmd от имени пользователя root. (нажмите Пуск, найдите cmd, затем щелкните правой кнопкой мыши CMD и нажмите Run as Administrator)
      4. Перейдите в папку, в которую вы распаковали загрузку.
      5. бегать psexec -s -i regedit.exe
      6. Перейдите, чтобы найти ключи в LOCAL_MACHINE\CurrentControlSet\services\BTHPORT\Parameters\Keysслучае, если не используется CurrentControlSet Controlset001. В Windows 10 вы найдете ключи по адресуHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\
      7. Вы должны увидеть несколько меток ключей с MAC-адресами - запишите MAC-адрес, связанный с уникальным идентификатором, который вы скопировали ранее. Вы не можете скопировать MAC-адреса, а затем записать это вручную, сохранив место, к которому у вас есть доступ в вашей ОС Linux.
    • используйте chntpwиз вашего дистрибутива Linux (проще), запустите в терминале, затем:

      1. sudo apt-get install chntpw
      2. смонтировать системный диск Windows
      3. cd /[windowsSystemDrive]/WINDOWS/System32/config - на windows 10 корневая папка - «Windows», на Win7 - «WINDOWS»
      4. chntpw -e SYSTEM открывает консоль
      5. запустить эти команды в этой консоли

        > cd CurrentControlSet\Services\BTHPORT\Parameters\Keys
        > # if 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 of 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
        
      6. Запишите, какой MAC-адрес устройства Bluetooth соответствует какому ключу сопряжения. Mint / Ubuntu один не будет нуждаться в промежутках между ними. Игнорировать:00000

  4. Давайте вернемся к Linux (если не в Linux) и добавим наш ключ windows в записи конфигурации Linux. Просто обратите внимание, что MAC-адрес Bluetooth-порта отформатирован по-разному при переходе с Windows на Linux - в моем примере выше он обозначен как aa1122334455 в Windows. Версия для Linux будет написана заглавными буквами и отмечена знаком «:» после каждых 2 символов - пример: AA: 11: 22: 33: 44: 55. На основе вашей версии Linux вы можете сделать одно из следующих:

    • До Mint 18 / 16.04 вы могли сделать это:

      1. sudo edit /var/lib/bluetooth/[mac address of Bluetooth]/linkkeys - [Mac-адрес Bluetooth] должен быть единственной папкой в ​​этой папке 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
        
      3. Измените ключ сопряжения Linux на Windows, за исключением пробелов.
    • В Mint 18 (и Ubuntu 16.04) вам, возможно, придется сделать следующее:

      1. переключиться на root su -
      2. перейдите в папку с настройками Bluetooth /var/lib/bluetooth/[bth port mac addresses)]
      3. Здесь вы найдете папки для каждого устройства, с которым вы подключены. Имена папок являются MAC-адресами устройств Bluetooth и содержат один файл info. В этих файлах вы увидите ключ ссылки, который вам нужно заменить на ваш Windows.

        [LinkKey]
        Key=B99999999FFFFFFFFF999999999FFFFF
        
  5. После обновления перезапустите службу bluetooth sudo /etc/init.d/bluetooth restartили перезагрузите Linux - все работает!
  6. Перезагрузитесь в windows - все работает!
  7. Upvote, если это сработало для вас!
Марио Оливио Флорес
источник
1
Это работает, спасибо. Грустно говорить, что Bluetooth в Windows работает без суеты. БТ в линуксе просто отстой. Я использую Linux Mint 17.3, и моя гарнитура подключается, а затем почти сразу отключается. Каждый раз, когда я пробую BT в Linux, это борьба за то, чтобы заставить его работать.
RyanNerd
2
Я пришел сюда, только что установив Ubuntu 16.04LTS (двойная загрузка с Windows) и уже соединив с ним мою клавиатуру и мышь. Вместо того, чтобы копировать ключ из Windows в Ubuntu, я сделал это в обратном порядке, используя chntpw: после монтирования раздела Windows и выполнения всего, что делал @Mario Flores в chntpw, выполните ed «value name» в терминале chntpw. Возьмите «Ключ =» в информационном файле вашего устройства Bluetooth в Ubuntu и введите его следующим образом: chntpw: «: XX XX XX XX XX ....» где XX - это каждые 2 буквы / цифры в ключе. Затем введите s, и он будет сохранен в реестре. Повторите при необходимости.
Самер Пури
3
должно ли это быть: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters(так что HLKM)
TiloBunt
2
Кстати, если у вас есть устройство Bluetooth LE, вам нужно будет сделать еще несколько вещей, и unix.stackexchange.com/questions/402488 может вам помочь.
Фредерик Чжан
4
В Windows 10 вы найдете ключи в папке «Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ BTHPORT \ Parameters \ Keys».
Томас
0

Как только вы получите ключ устройства Bluetooth в Windows, вы можете просто перейти к настройкам, Bluetooth, и получить их ключ, это самая простая часть. Трудно изменить его в Linux, я использую Ubuntu, и я сделал так:

установите gksu, чтобы получить права администратора, просто введите следующую команду: sudo apt-get install gksu

После установки вы должны нажать ALT + F2 и набрать gksu nautilus (просто будьте осторожны, чтобы изменить только то, что вам нужно, иначе вы можете повредить свою ОС.)

Теперь перейдите к указанному местоположению файла, следуя указанному выше пути ответа, там вы найдете файл с именем Info , откройте его и измените ключ. перезагрузите Bluetooth или перезагрузите компьютер и все готово. Извините, если плохой английский и грамматика, мне было лень это проверять.

Омар Альказар
источник
Для Windows 10, где / как вы найдете ключ?
rickhg12hs