Дуалбут Windows 10 и Linux - сопряжение с Bluetooth устройствами

Опубликовано 0 комментариев 311 просмотров
Дуалбут Windows 10 и Linux - сопряжение с Bluetooth устройствами

Привет.

Я, будучи фрилансером пытаюсь разграничивать работу и свободное время, в том числе на стационарном компьютере который одновременно является и рабочим инструментом, и способом отдохнуть. Это все вылилось в наличие двух разных операционных систем - Windows 10 для отдыха и Manjaro для работы.

Спустя некоторое время после установки Manjaro выяснилось - моя сопряженная с Windows через Bluetooth умная колонка Amazon Echo никак не могла работать с двумя системами. Если привязать ее к Windows - при переходе в Linux и попытке подключиться к колонке выскакивала "Ошибка соединения", если через веб-интерфейс колонки отвязать колонку от Bluetooth-адаптера и привязать по-новой через Linux, - при переходе в Windows невозможно было подключиться с аналогичной ошибкой. По аналогии с моей проблемой это актуально для любого другого устройства работающего через Bluetooth - сопряженное в одной системе устройство не сможет подключиться через тот же адаптер в другой системе.

Связано это с тем, что при сопряжении устройства служба Bluetooth генерирует пару MAC-адрес— ключ. При этом MAC-адрес, установленный на аппаратном уровне будет одинаковым как в Linux, так и в Windows, а ключ будет уникален для каждой системы. Соответственно, Linux будет перезаписывать ключ Windows, а Windows - перезаписывать ключ Linux.

ДИСКЛЕЙМЕР: Данный мануал по факту и не мой вообще, а лишь перевод ответа в топике на StackExchange с актуализацией.

How to fix it

Первым делом необходимо привязать устройство в Linux. Затем загрузиться в Windows, отвязать устройство и привязать по-новой в этой системе.

Перейдите обратно в Linux и установите утилиту chntpw. Примонтируйте диск, на который установлен Windows. В консоли откройте папку cd /[путь_до_диска_с_windows]/Windows/System32/config.

Выполните chntpw -e SYSTEM. Откройте ControlSet001\Services\BTHPORT\Parameters\Keys. В директории вы увидите MAC-адрес вашего Bluetooth-адаптера.

> cd ControlSet001\Services\BTHPORT\Parameters\Keys
> ls
Node has 1 subkeys and 0 values
  key name
  <001a7dda710f>

Перейдите к устройству (не забудьте заменить директорию на свое полученное выше значение). В этой директории находятся все сопряженные с адаптером устройства.

> cd 001a7dda710f
> ls
Node has 0 subkeys and 1 values
  size     type              value name             [value if type DWORD]
    16  3 REG_BINARY         <fc65de29c959>

fc65de29c959 - MAC-адрес устройства, которое необходимо. Получите ключ.

> hex fc65de29c959
Value <fc65de29c959> of type REG_BINARY (3), data length 16 [0x10]
:00000  11 3B F3 69 E3 5F 54 85 1C A3 E2 B5 79 8B 48 8A .;.i._T.....y.H.

Из полученного значения уберите :00000 и последние символы. Полученную строку, - 11 3B F3 69 E3 5F 54 85 1C A3 E2 B5 79 8B 48 8A, - избавьте от пробелов и сохраните. Выйдите из утилиты.

Далее потребуется наличие рут-прав. Получите их, введя в консоли в консоли su -.

Перейдите в локацию, где хранятся конфиги Bluetooth-устройств - cd /var/lib/bluetooth/[mac_адрес]. Вместо MAC-адреса укажите адрес своего адаптера 001a7dda710f, предварительно отформатировав его, - добавив : через каждые 2 символа и приведя строку к верхнему регистру, - 00:1A:7D:DA:71:0F. Вы окажетесь в директории с сопряженными устройствами, где названия папок являются отформатированными по аналогии с адресом ранее MAC-адресами привязанных устройств. Откройте папку с необходимым.

# cd /var/lib/bluetooth
# ls
cache  FC:65:DE:29:C9:59  settings
# cd FC:65:DE:29:C9:59
# ls
attributes  info

Откройте файл nano info. Найдите конструкцию вида

[LinkKey]
Key=113BF369E35F54851CA3E2B5798B488A

Значение Key - тот самый ключ, который отличается в Windows и Linux. Замените его на сохраненную ранее строку 113BF369E35F54851CA3E2B5798B488A и сохраните изменения.

Перезагрузите систему. Попробуйте подключится к устройству в Linux и в Windows - и там и там никаких ошибок не возникнет.

В ответ на сообщение

Доступна разметка Markdown. А еще вы можете использовать крутой пак эмоций.

Нажимая на кнопку «Отправить» вы даете свое согласие на обработку персональных данных в соответствии с законом №152-ФЗ «О персональных данных» от 27.07.2006 и принимаете условия Политики конфеденциальности.