Где находятся ключи связи Bluetooth в Ubuntu 14.10?

Я пытаюсь установить конкретные ссылки на bluetooth для устройства в Ubuntu 14.10, но я не могу найти, где они хранятся. Цель состоит в том, чтобы мышь Bluetooth-мышь работала как в Ubuntu, так и в Windows без необходимости повторной пары после переключения операционных систем. Все ответы, которые я нашел в AskUbuntu, указывают, что ключи хранятся в /var/lib/bluetooth/<mac_address>/linkkeys, и это имело место, по крайней мере, до 13.10, но в 14.10 этот файл отсутствует на чистой настольной установке, и его создание вручную не имеет никакого эффекта, оно игнорируется bluetoothd.

EDIT: Кажется, что мышь не выдает запрос на спаривание, и в этом случае ключи ссылки не сохраняются. Однако подключение мыши в Windows, а затем перезагрузка в Ubuntu приводит к сбою соединения Bluetooth (и мышь должна быть удалена и добавлена ​​в список устройств bluetooth), поэтому определенно происходит обмен ключами / аутентификация, что предотвращает мышь от совместного использования в обеих ОС. Вопрос остается, как заставить bluetoothd сохранять и использовать сохраненные ключи ссылки при подключении этой мыши?

Детали оборудования:

Microsoft Bluetooth Notebook Mouse 5000 413c: 8161 Dell Computer Corp Беспроводная связь 365 Bluetooth (Broadcom BCM2046B1)

В двух журналах ниже показано, что для мобильного устройства (мобильный телефон) ключи хранятся в файле linkkeys; это не так для мыши. Я знаю, что более старые версии bluetoothd использовались для сохранения ключей ссылок для мышей, так как есть много ответов / учебников здесь, на askubuntu и ubuntuforums о копировании linkkeys из Windows в Ubuntu с целью совместного использования мыши между двумя ОС.

Вот журнал bluetoothd для обнаружения мыши и настройки соединения:

    bluetoothd[15615]: plugins/mgmtops.c:mgmt_start_discovery() index 0
    bluetoothd[15615]: Discovery session 0x7feb52b14130 with :1.137 activated
    bluetoothd[15615]: src/adapter.c:session_ref() 0x7feb52b14130: ref=1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 10 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_cmd_complete() 
    bluetoothd[15615]: plugins/mgmtops.c:start_discovery_complete() hci0 type 1 status 0
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_discovering() Controller 0 type 1 discovering 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 25 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_device_found() hci0 addr DE:AD:BE:EF:00:00, rssi -43 flags 0x0003 eir_len 5
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_confirm_name() hci0 bdaddr DE:AD:BE:EF:00:00 name_known 0
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 16 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_cmd_complete() 
    bluetoothd[15615]: Unknown command complete for opcode 37
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 61 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_device_found() hci0 addr DE:AD:BE:EF:00:00, rssi -43 flags 0x0000 eir_len 41
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_discovering() Controller 0 type 1 discovering 0
    bluetoothd[15615]: src/adapter.c:adapter_set_discovering() hci0 restarting discovery, disc_sessions 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_start_discovery() index 0
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 10 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_cmd_complete() 
    bluetoothd[15615]: plugins/mgmtops.c:start_discovery_complete() hci0 type 1 status 0
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_discovering() Controller 0 type 1 discovering 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 25 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_device_found() hci0 addr DE:AD:BE:EF:00:00, rssi -43 flags 0x0003 eir_len 5
    bluetoothd[15615]: src/adapter.c:session_unref() 0x7feb52b14130: ref=0
    bluetoothd[15615]: src/adapter.c:session_remove() Discovery session 0x7feb52b14130 with :1.137 deactivated
    bluetoothd[15615]: src/adapter.c:session_remove() Stopping discovery
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_stop_discovery() index 0
    bluetoothd[15615]: Stopping discovery
    bluetoothd[15615]: src/adapter.c:create_device() DE:AD:BE:EF:00:00
    bluetoothd[15615]: src/adapter.c:adapter_create_device() DE:AD:BE:EF:00:00
    bluetoothd[15615]: src/device.c:device_create() Creating device /org/bluez/15615/hci0/dev_DE:AD:BE:EF:00:00
    bluetoothd[15615]: src/device.c:btd_device_ref() 0x7feb52b15680: ref=1
    bluetoothd[15615]: src/device.c:device_set_temporary() temporary 1
    bluetoothd[15615]: src/device.c:btd_device_ref() 0x7feb52b15680: ref=2
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 10 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_cmd_complete() 
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_cmd_complete() stop_discovery complete
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_discovering() Controller 0 type 1 discovering 0
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 65 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_device_connected() hci0 device DE:AD:BE:EF:00:00 connected eir_len 46
    bluetoothd[15615]: src/adapter.c:adapter_get_device() DE:AD:BE:EF:00:00
    bluetoothd[15615]: src/device.c:device_probe_drivers() Probing drivers for DE:AD:BE:EF:00:00
    bluetoothd[15615]: input/manager.c:hid_device_probe() path /org/bluez/15615/hci0/dev_DE:AD:BE:EF:00:00
    bluetoothd[15615]: src/device.c:btd_device_ref() 0x7feb52b15680: ref=3
    bluetoothd[15615]: input/device.c:input_device_new() Registered interface org.bluez.Input on path /org/bluez/15615/hci0/dev_DE:AD:BE:EF:00:00
    bluetoothd[15615]: src/device.c:device_set_temporary() temporary 0
    bluetoothd[15615]: src/device.c:btd_device_unref() 0x7feb52b15680: ref=2

Вот журнал bluetoothd для сопряжения мобильного телефона (пользователю предлагается проверить код на обоих устройствах):

    bluetoothd[15615]: plugins/mgmtops.c:mgmt_start_discovery() index 0
    bluetoothd[15615]: Discovery session 0x7feb52b14ca0 with :1.138 activated
    bluetoothd[15615]: src/adapter.c:session_ref() 0x7feb52b14ca0: ref=1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 10 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_cmd_complete() 
    bluetoothd[15615]: plugins/mgmtops.c:start_discovery_complete() hci0 type 1 status 0
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_discovering() Controller 0 type 1 discovering 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 64 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_device_found() hci0 addr DE:AD:BE:EF:01:01, rssi -52 flags 0x0000 eir_len 44
    bluetoothd[15615]: src/adapter.c:session_unref() 0x7feb52b14ca0: ref=0
    bluetoothd[15615]: src/adapter.c:session_remove() Discovery session 0x7feb52b14ca0 with :1.138 deactivated
    bluetoothd[15615]: src/adapter.c:session_remove() Stopping discovery
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_stop_discovery() index 0
    bluetoothd[15615]: Stopping discovery
    bluetoothd[15615]: src/adapter.c:adapter_create_device() DE:AD:BE:EF:01:01
    bluetoothd[15615]: src/device.c:device_create() Creating device /org/bluez/15615/hci0/dev_DE:AD:BE:EF:01:01
    bluetoothd[15615]: src/device.c:btd_device_ref() 0x7feb52b17cd0: ref=1
    bluetoothd[15615]: src/device.c:device_set_temporary() temporary 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_create_bonding() hci0 bdaddr DE:AD:BE:EF:01:01 io_cap 0x01
    bluetoothd[15615]: src/device.c:bonding_request_new() Requesting bonding for DE:AD:BE:EF:01:01
    bluetoothd[15615]: src/device.c:bonding_request_new() Temporary agent registered for DE:AD:BE:EF:01:01 at :1.138:/org/bluez/agent/wizard
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 10 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_cmd_complete() 
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_cmd_complete() stop_discovery complete
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_discovering() Controller 0 type 1 discovering 0
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 37 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_device_connected() hci0 device DE:AD:BE:EF:01:01 connected eir_len 18
    bluetoothd[15615]: src/adapter.c:adapter_get_device() DE:AD:BE:EF:01:01
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 18 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_user_confirm_request() hci0 DE:AD:BE:EF:01:01 confirm_hint 0
    bluetoothd[15615]: src/adapter.c:adapter_get_device() DE:AD:BE:EF:01:01
    bluetoothd[15615]: src/device.c:new_auth() Requesting agent authentication for DE:AD:BE:EF:01:01
    bluetoothd[15615]: src/agent.c:agent_request_confirmation() Calling Agent.RequestConfirmation: name=:1.138, path=/org/bluez/agent/wizard, passkey=436733
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_confirm_reply() index 0 addr DE:AD:BE:EF:01:01 success 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 16 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_cmd_complete() 
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_cmd_complete() user_confirm_reply complete
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 32 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_new_link_key() Controller 0 new key of type 5 pin_len 0
    bluetoothd[15615]: src/adapter.c:adapter_get_device() DE:AD:BE:EF:01:01
    bluetoothd[15615]: src/event.c:btd_event_link_key_notify() storing link key of type 0x05
    bluetoothd[15615]: src/device.c:device_set_bonded() bonded 1
    bluetoothd[15615]: src/device.c:device_set_temporary() temporary 0
    bluetoothd[15615]: src/adapter.c:adapter_get_device() DE:AD:BE:EF:01:01
    bluetoothd[15615]: src/device.c:device_bonding_complete() bonding 0x7feb52b2d270 status 0x00
    bluetoothd[15615]: src/device.c:device_bonding_complete() Proceeding with service discovery
    bluetoothd[15615]: src/device.c:btd_device_ref() 0x7feb52b17cd0: ref=2
    bluetoothd[15615]: src/agent.c:agent_release() Releasing agent :1.138, /org/bluez/agent/wizard
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() cond 1
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_event() Received 16 bytes from management socket
    bluetoothd[15615]: plugins/mgmtops.c:mgmt_cmd_complete() 
    bluetoothd[15615]: plugins/mgmtops.c:pair_device_complete() hci0 DE:AD:BE:EF:01:01 pairing complete status 0
    bluetoothd[15615]: src/adapter.c:adapter_get_device() DE:AD:BE:EF:01:01
    bluetoothd[15615]: src/device.c:device_bonding_complete() bonding (nil) status 0x00
1
задан 28 December 2014 в 20:11

4 ответа

Ubuntu 13.10 использует bluez 4.98, 14.04 и 14.10 использует 4.101

Обе версии были скомпилированы с той же опцией (--localstatedir = / var)

Я использую 14.04 и файлы есть, и если я удаляю или добавляю устройство, файл / var / lib / bluetooth / (myadapteraddress) / linkkeys обновляется соответствующим образом.

Я провел тест в системе 14.10, я добавил BT устройство и файл / var / lib / bluetooth / (adapteraddress) / linkkeys

Возможно, вы используете более новую версию bluez.

Схема для новых версий bluez (5 я думаю):

/var/lib/bluetooth/<adapter address>/<remote device address>/info

В документации по хранению настроек для новой версии bluez я нашел это:

http://git.kernel.org/cgit/ bluetooth / bluez.git / tree / doc / settings-storage.txt

...

Storage directory structure

There is one directory per adapter, named by its Bluetooth address, which
contains:
 - a settings file for the local adapter
 - an attributes file containing attributes of supported LE services
 - a cache directory containing:
    - one file per device, named by remote device address, which contains device name
 - one directory per remote device, named by remote device address, which contains:
    - an info file
- an attributes file containing attributes of remote LE services
- a ccc file containing persistent Client Characteristic Configuration
  (CCC) descriptor information for GATT characteristics

So the directory structure is:

/var/lib/bluetooth/<adapter address>/

    ./settings
    ./attributes
    ./cache/
        ./<remote device address>
        ./<remote device address>
        ...
    ./<remote device address>/
        ./info
        ./attributes
        ./ccc
    ./<remote device address>/
        ./info
        ./attributes
    ...

...

Info file format

.. .

[LinkKey] group contains:

  Key           String      Key in hexadecimal format

  Type          Integer     Type of link key

  PINLength     Integer     Length of PIN

...

В любом случае кажется, что bluez должен хранить файлы в / var / lib / bluetooth

Если вы используете эту команду

bluetoothd --version

вы получаете 4.101?

1
ответ дан 24 May 2018 в 01:32
  • 1
    Да, версия bluetoothd - 4.101. Папка var/lib/bluetoooth/<adapter address> существует, но нет файла linkkeys или любого подкаталога. Устройство Bluetooth сопряжено и работает, поэтому ключи хранятся где-то, но определенно не там. Возможно, версия Ubuntu хранит ключи где-то еще, и я пытаюсь выяснить, где. Я использую стандартную установку рабочего стола 14.10, сопряжение, выполненное с помощью индикатора Bluetooth, ничего необычного. – ATAKAMA 27 December 2014 в 21:37
  • 2
    Мне просто пришло в голову, что некоторые адаптеры Bluetooth имеют аппаратное хранилище ключей. Будет ли возможно, что Ubuntu bluetoothd будет хранить ключи связи только в памяти адаптера, а не в файловой системе? Адаптер: 413c: 8160 Dell Computer Corp. Wireless 365 Bluetooth на базе Broadcom BCM2046 – ATAKAMA 27 December 2014 в 22:10
  • 3
    Вы пробовали использовать другое устройство, сотовый? ... Позже я попробую на другом ПК с 14.10 – J.Serra 27 December 2014 в 22:21
  • 4
    Я просто спарил мобильный телефон, который никогда не был сопряжен с этим адаптером (ни в Ubuntu, ни в Windows). Файл linkkeys был создан. Затем я попытался снова соединить мышь, она спаривалась, но ее ключ ссылки не был добавлен в файл. Как заставить bluetoothd читать ключ ссылки в файле, а не использовать тот, что есть в адаптере (что, по-видимому, это делает)? – ATAKAMA 27 December 2014 в 22:52
  • 5
    Это очень любопытно ... Может быть, если вы исключите устройство в windows, ubuntu создаст файл. – J.Serra 27 December 2014 в 22:56

/ var / lib / bluetooth / {bluetoothaddr} / linkkeys

Где {bluetoothaddr} - ваш интерфейс bluetooth (у вас должен быть только один, он выглядит как адрес mac )

Формат файла - {remoteaddr} {128-битный ключ ссылки} {type}.

20:12:03:22:EE:0E C21D3A69DEA0A8C629F1BB5D12AEEA79 4 0
00:18:94:68:3E:90 EC02519ED656DB87B7F152E899F8A810 0 4
00:21:3F:3E:2E:6C 948A0EF91FA8E9EB9032CE775BF8E0B0 0 4
0
ответ дан 24 May 2018 в 01:32
  • 1
    Пожалуйста, внимательно прочитайте текст вопроса. Этот файл больше не существует при установке 14.10. В файловой системе нет файла linkkeys. Клавиши хранятся в другом месте. Вопрос в том, где. – ATAKAMA 27 December 2014 в 20:05
  • 2
    На моем новом ноутбуке, где я установил (без обновления) 14.10, все еще есть файл, как я его описал. bluetoothd 4.101. Каковы сообщения в syslog при попытке подключить новое устройство? – Xavier 28 December 2014 в 15:30
  • 3
    Я отредактировал вопрос и добавил несколько журналов, чтобы сравнить настройки обнаружения и подключения этой мыши и настройки соединения мобильного телефона, ключи которого сохранены. – ATAKAMA 28 December 2014 в 20:13

В Debian Jessie & amp; Я предполагаю, что Ubuntu также может вручную установить PIN-код для использования.

Сделайте то, что этот пост https://askubuntu.com/a/246791/352576 описывает, чтобы получить ваш ключ Windows. ваш /var/lib/bluetooth/XX:XX:XX:XX:XX:AA (где XX: ... :AA является маком вашего адаптера BT вашего ПК) должен содержать директорию с маской вашей мыши / клавиатуры BT (я буду представлять ее как XX: ... :BF, и конфигурацию файлов, и настройки. в XX: ... BF имеется файл info, принадлежащий root, с правами rw для root.Нет других разрешений .-- содержимое должно быть:
[LinkKey] 
Key=A7XXXXXXXXXXXXXXXXXXXXXXXXXXXX89 
Type=4
PINLength=0

[General]
Name=yourMouseName
Class=0x002580
SupportedTechnologies=BR/EDR;
Trusted=true
Blocked=false
Services=00001000-0000-1000-8000-00805f9b34fb;00001124-0000-1000-8000-00805f9b34fb;00001200-0000-1000-8000-00805f9b34fb;

[DeviceID]
Source=2
Vendor=1133
Product=45069
Version=1792
Обратите внимание, что длина ключа составляет 16 байт.

приклеивание файлов ссылок в этих каталогах не помогло мне, хотя я оставил их там в хорошей мере.

0
ответ дан 24 May 2018 в 01:32

Введите «linkkeys» в строке поиска nautilus, пока вы находитесь в местоположении файловой системы. Если у вас есть файл, просто нажмите правой кнопкой мыши имя файла и нажмите «Открыть местоположение позиции». Он переместит вас к местоположению файла, и теперь вы можете указать местоположение файла.

-1
ответ дан 24 May 2018 в 01:32
  • 1
    Это не ответ на мой вопрос. Я не ищу файл, который был перемещен. Я ищу данные, которые раньше были сохранены в этом файле, но теперь они хранятся где-то в другом месте. – ATAKAMA 27 December 2014 в 10:44
  • 2
    Ссылки для ссылок - это то, что вы ищете именно для этого? или переданные данные с устройства на ПК? – Perumal 27 December 2014 в 16:04
  • 3
    Я ищу ключи Bluetooth-связи, общий секрет, который позволяет двум спаренным устройствам Bluetooth разговаривать друг с другом. Они больше не сохраняются в файле linkkeys. Я пытаюсь выяснить, где они хранятся в Ubuntu 14.10. – ATAKAMA 27 December 2014 в 16:14
  • 4
    Почему бы вам не искать все файлы в каталоге / var / lib / bluetooth / nn: nn: nn: nn: nn: nn /? – Perumal 27 December 2014 в 16:23

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

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