понимать параметры 'notify-send'

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

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

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

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

  1. Сопряжение всех устройств с Mint/Ubuntu
  2. Сопряжение всех устройств с Windows
  3. Скопируйте ключи сопряжения Windows одним из двух способов:

    • Используйте psexec -s -i regedit.exe из Windows (более жесткий)

      1. перейдите в "Устройства и принтеры" в Панели управления и перейдите к свойствам устройства Bluetooth. Затем, в разделе Bluetooth, вы найдете уникальный идентификатор. Скопируйте его (он понадобится вам позже).
      2. Скачайте PsExec с http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx.
      3. распакуйте скачанный zip и откройте окно cmd с повышенными привилегиями. (Нажмите меню "Пуск", найдите cmd, затем щелкните CMD правой кнопкой мыши и выберите "Запуск от имени администратора")
      4. cd в папку, куда вы распаковали скачанный файл.
      5. запустите psexec -s -i regedit.exe
      6. Найдите ключи в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys.  Если нет CurrentControlSet, попробуйте ControlSet001. -->
      7. Вы должны увидеть несколько меток ключей с MAC-адресами - запишите MAC-адрес, связанный с уникальным идентификатором, который вы скопировали ранее.
    • используйте chntpw из вашего дистрибутива Linux (проще). Запустите терминал:

      1. sudo apt-get install chntpw
      2. смонтируйте системный диск Windows
      3. cd /[WindowsSystemDrive]/Windows/System32/config
      4. chntpw -e SYSTEM откроет консоль
      5. выполните эти команды в консоли:

        > cd CurrentControlSet\Services\BTHPORT\Parameters\Keys
        > # если нет CurrentControlSet, то попробуйте ControlSet001
        > # в Windows 7 слово "services" выше написано со строчной буквы.
        > ls
        # показывает MAC-адрес вашего порта Bluetooth.
        Узел имеет 1 подключ и 0 значений
         имя ключа
         
        > cd aa1122334455 # cd в папку
        > ls 
        # список MAC-адресов существующих устройств
        Узел имеет 0 подключей и 1 значение
         размер тип значение имя [значение если тип DWORD]
         16 REG_BINARY 
        > hex 001f20eb4c9a
        => :00000 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX ...игнорировать...символы...
        # ^ XX - это ключ сопряжения.
        
      6. Запишите, какой MAC-адрес устройства Bluetooth соответствует какому ключу сопряжения. Для Mint/Ubuntu пробелы между ними не нужны. Игнорируйте :00000.

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

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

      1. sudo edit /var/lib/bluetooth/[MAC адрес Bluetooth]/linkkeys - [MAC адрес Bluetooth] должен быть единственной папкой в этой папке Bluetooth.
      2. Этот файл должен выглядеть примерно так

        [MAC-адрес Bluetooth] [Ключ сопряжения] [цифры в пин-коде] [0]
        AA:11:22:33:44:55 XXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXX 5 0
        00:1D:D8:3A:33:83 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 4 0
        
      3. Замените ключ сопряжения Linux на ключ сопряжения Windows, минус пробелы.
    • В Mint 18 (и Ubuntu 16.04) вам может потребоваться сделать следующее:

      1. switch to root su -
      2. cd в местоположение конфигурации 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. Проголосуйте, если это сработало для вас!
5
07.10.2015, 19:15
0 ответов

Теги

Похожие вопросы