Как я могу использовать одну и ту же Bluetooth-клавиатуру и мышь с macOS и Ubuntu?

У меня есть iMac с MacOS и Ubuntu. Я хочу иметь возможность использовать мышь и клавиатуру Bluetooth с обеими операционными системами без повторного сопряжения при каждом переключении ОС.

Кто-нибудь имел эту проблему и нашел решение?

1 ответ

Ответы на этот вопрос дают вам общую идею, хотя и немного смутную со стороны macOS, поэтому я изложу процедуру, которую я использовал.

Версии ОС следующие. Имена файлов и их расположение могут меняться в зависимости от версии, так что это то, что сработало для меня.

  • MacOS High Sierra 10.13.1
  • Ubuntu 17.04

Я предполагаю, что у вас есть файловая система (USB-ключ или что-то еще), которая по крайней мере для чтения-записи в MacOS и для чтения в Ubuntu.

Общая идея заключается в том, что при сопряжении устройства с операционной системой генерируется уникальный ключ связи, который необходим для аутентификации при следующем активном сопряжении. Вы можете перенести эти ключи ссылок из пар MacOS в пары Ubuntu, чтобы они работали в обеих ОС.

  1. Загрузочный Ubuntu
  2. Сопряжение устройства в обычном режиме
  3. Перезагрузитесь в MacOS
  4. Сопряжение устройства в обычном режиме
  5. В окне терминала введите: sudo defaults read com.apple.bluetoothd.plist LinkKeys, Это даст вам что-то вроде:
{
    "a0-99-9b-16-43-d2" = {
        "00-1f-20-47-e5-22" = <4d6b002f 37584c09 ee219365 b78ba03e>;
        "04-0c-ce-3d-15-4d" = ;
    };
}

Вот a0-99-9b-16-43-d2 это MAC-адрес адаптера Bluetooth в моей системе.

После этого MAC-адреса устройств, которые я подключил (00-1f-20-47-e5-22 а также 04-0c-ce-3d-15-4d и ключи связи, связанные с этими парами (4d6b002f 37584c09 ee219365 b78ba03e а также fe998c62 4bb29a7c 40b2e670 10db71ed соответственно).

  1. Перенаправьте этот вывод в файл, видимый как для MacOS, так и для Ubuntu:
По умолчанию sudo читайте com.apple.bluetoothd.plist LinkKeys> /Volumes/4T/linkkeys.txt
  1. Выключите все сопряженные устройства
  2. Перезагрузитесь в Ubuntu. Пока не включайте свои устройства Bluetooth. Надеюсь, у вас есть проводная клавиатура и мышь для использования на этом этапе
  3. Откройте окно терминала
  4. Остановите службу Bluetooth:
остановка службы sudo
  1. Посмотри в каталоге /var/lib/bluetooth, Вы должны увидеть запись подкаталога для MAC-адреса адаптера Bluetooth, отформатированную как A0:99:9B:16:43:D2, Внутри этого вы должны увидеть подкаталоги для каждого MAC-адреса устройства, например 00:1F:20:47:E5:22 а также 04:0C:CE:3D:15:4D, Внутри этих каталогов вы найдете файлы с именем info, Отредактируйте эти файлы в вашем любимом редакторе:
sudo gedit / var / lib / bluetooth / A0: 99: 9B: 16: 43: D2 / 00: 1F: 20: 47: E5: 22 / info
sudo gedit / var / lib / bluetooth / A0: 99: 9B: 16: 43: D2 / 04: 0C: CE: 3D: 15: 4D / info
  1. В этих файлах вы найдете Key запись. Этот ключ должен быть таким же, как тот, который вы нашли в MacOS, но с некоторыми важными различиями форматирования:
    • пробелы удалены
    • шестнадцатеричные цифры в верхнем регистре
    • 128-битное целое число с байт-заменой (то есть разбитое на 2 части шестнадцатеричных чисел и перевернутое)

Вы можете достичь этого следующим образом:

$ echo 4d6b002f 37584c09 ee219365 b78ba03e | sed 's / //g;s/../\U&\n/g' | Tac | tr -d '\n'; эхо
3EA08BB7659321EE094C58372F006B4D
$ echo fe998c62 4bb29a7c 40b2e670 10db71ed | sed 's/ //g;s/../\U&\n/g' | Tac | tr -d '\n'; эхо
ED71DB1070E6B2407C9AB24B628C99FE
$ 

Отредактируйте эти переформатированные ключи в записи Key соответствующих информационных файлов. Более вероятный sudo потребуется.

  1. Перезапустите службу Bluetooth:
sudo service bluetooth start
  1. Теперь включите ваши устройства Bluetooth. Они должны быть распознаны и пары активны / действительны как в MacOS, так и в Ubuntu.

Обновление. Похоже, что пары сохранились благодаря обновлениям MacOS и Ubuntu. Я сейчас работаю 10.13.6 и 18.04 соответственно и еще не пришлось переделывать эту процедуру.

Другие вопросы по тегам