Ubuntu 14.10のBluetoothリンクキーはどこに保存されますか?


10

Ubuntu 14.10のデバイスに特定のBluetoothリンクキーを設定しようとしていますが、それらが格納されている場所を見つけることができません。
目的は、オペレーティングシステムを切り替えた後にBluetoothマウスを再ペアリングする必要なく、UbuntuとWindowsの両方で動作するようにすることです。
私がAskUbuntuで見つけたすべての回答は、キーが格納されて/var/lib/bluetooth/<mac_address>/linkkeysおり、これは少なくとも13.10まではそうであったと述べていますが、14.10では、このファイルはクリーンデスクトップインストールから欠落していて手動で作成しても効果がなく、無視されますBluetooth。

編集:マウスはペアリング要求を発行せず、この場合リンクキーは保存されていないようです。ただし、Windowsでマウスを接続し、Ubuntuで再起動すると、Bluetooth接続が失敗します(そして、マウスを削除してBluetoothデバイスリストに再度追加する必要があります)。そのため、キー交換/認証が確実に行われ、両方のOSでマウスが共有されないようにします。問題は残ります。このマウスを接続するときに、bluetoothdに保存したリンクキーを強制的に保存して使用させるにはどうすればよいですか?

ハードウェアの詳細:

  • マイクロソフトBluetoothノートブックマウス5000
  • 413c:8161 Dell Computer Corp. Wireless 365 Bluetooth(Broadcom BCM2046B1)

以下の2つのログは、ペアリング可能なデバイス(携帯電話)の場合、キーがlinkkeysファイルに保存されていることを示しています。これはマウスには当てはまりません。2つのOS間でマウスを共有するという特定の目的でリンクキーをWindowsからUbuntuにコピーすることに関するaskubuntuおよびubuntuforumsに関する多くの回答/チュートリアルがあるため、以前のbluetoothdバージョンはマウスのリンクキーも保存していたことを知っています。

マウスの検出と接続のセットアップに関するBluetoothログは次のとおりです。

    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

以下は、携帯電話のペアリングに関するBluetoothログです(両方のデバイスに表示されるコードを検証するように求められます)。

    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

14.04を入手しましたが、ディレクトリは存在しますが、macアドレスは私の内部bluetoothのアドレスであり、リンクキーは空です...
Fabby

14.04で14.10にアップグレードしましたが、ディレクトリが見つかりません。私はあなたと同じ問題を抱えており、BTマウスのリンクキーを設定したいと考えています。
Alasjo 2014年

回答:


3

しばらくして、ようやく私が直面していた問題を解決しました。最初の質問に対する回答はまだ見つかりません(この特定のbluez / adapter / peripheralの組み合わせのリンクキーが格納されている場所を特定できませんでした)。ファイル内のキーを使用します。

そのため、ペアリング後にリンクキーがファイルに書き込まれない場合でも、手動でリンクキーファイルに追加することにより、それらのキーを上書きすることができます。

キーのタイプが正しく設定されていることが重要です。そうでない場合、キーは無視されます。

参考までに、私のケースで機能したキーの種類を次に示します。https//askubuntu.com/a/246791/352576


1

Ubuntu 13.10はbluez 4.98、14.04および14.10を使用しています。

両方のバージョンが同じオプション(--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
はい、Bluetoothバージョンは4.101です。var/lib/bluetoooth/<adapter address>フォルダが存在しますが、何のlinkkeysファイル、また任意のサブディレクトリがありません。Bluetoothデバイスはペアリングされて機能しているため、キーはどこかに保存されていますが、確かにそこにはありません。たぶんUbuntuバージョンはどこか他の場所にキーを保存していて、私はどこにあるのか調べようとしています。標準の14.10デスクトップインストールを使用しており、ペアリングはBluetoothインジケーターを介して行われます。
ATAKAMA、2014

1
一部のBluetoothアダプターにハードウェアキーストレージがあることに気づきました。Ubuntu bluetoothdがリンクキーをファイルシステムではなく、アダプターのメモリにのみ保存することは可能ですか?アダプターは次のとおりです。413c:8160 Broadcom BCM2046ベースのDell Computer Corp. Wireless 365 Bluetooth
ATAKAMA '27

別のデバイス、携帯電話をペアリングしてみましたか?...後で、別のPCで14.10を試します
J.Serra

私はこのアダプターとペアリングされなかった携帯電話をペアリングしました(UbuntuでもWindowsでも)。linkkeysファイルが作成されました。次に、マウスをもう一度ペアリングしようとしましたが、ペアリングされましたが、リンクキーがファイルに追加されていません。Bluetoothでファイル内のリンクキーを読み取り、アダプター内のリンクキーを使用しないようにするにはどうすればよいですか(これはおそらくそれが行うことです)?
ATAKAMA 2014

それは非常に好奇心が強いです...多分あなたがwindowsでデバイスを排除するならば、ubuntuはファイルを作成します。
J.Serra 14

0

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

ここで、{bluetoothaddr}はBluetoothインターフェースです(1つのみ必要です。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

質問文をよくお読みください。このファイルは14.10インストールでは存在しません。ファイルシステムのどこにもlinkkeysファイルはありません。キーは別の場所に保存されます。問題はどこにあるかです。
ATAKAMA 2014

14.10をインストールした(アップデートなし)新しいラップトップには、説明したとおりのファイルが残っています。ブルートゥース4.101。新しいデバイスをペアリングしようとしたときのsyslogのメッセージは何ですか?
ザビエル2014

質問を編集してログを追加し、このマウスの検出と接続の設定と、リンクキーが保存されている携帯電話の接続の設定を比較しました。
ATAKAMA 2014

0

Debianジェシーでは、Ubuntuも使用するPINを手動で設定できると想定しています。

  1. この投稿/ubuntu//a/246791/352576で Windowsキーを取得する方法を説明します。
  2. あなたの/var/lib/bluetooth/XX:XX:XX:XX:XX:AAXX: ... :AAあなたのPCのBTアダプタのMacはどこにあるか)はあなたのBTマウス/キーボードのMacのdirを含むべきです(私はそれをとして表しXX: ... :BF、ファイルの設定と設定)。
  3. その中XX: ... BFには、inforootが所有するファイルがあり、rootにはアクセス権rwがあります。他の権限はありません。--内容は次のとおりです。

    [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バイトです。

これらのディレクトリにリンクキーファイルを貼り付けても役に立ちませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.