Ich versuche, bestimmte Bluetooth-Verbindungsschlüssel für ein Gerät in Ubuntu 14.10 festzulegen, kann jedoch nicht finden, wo sie gespeichert sind.
Der Zweck besteht darin, dass eine Bluetooth-Maus sowohl unter Ubuntu als auch unter Windows funktioniert, ohne dass sie nach dem Betriebssystemwechsel erneut gekoppelt werden muss.
Alle Antworten, die ich auf AskUbuntu gefunden habe, besagen, dass die Schlüssel in gespeichert sind. /var/lib/bluetooth/<mac_address>/linkkeys
Dies war mindestens bis 13.10 der Fall. In 14.10 fehlt diese Datei jedoch bei einer sauberen Desktop-Installation, und das manuelle Erstellen hat keine Auswirkung. Sie wird von ignoriert Bluetoothd.
BEARBEITEN: Es scheint, dass die Maus keine Pairing-Anfrage ausgibt und die Link-Tasten in diesem Fall nicht gespeichert sind. Wenn Sie jedoch die Maus unter Windows anschließen und dann in Ubuntu neu starten, schlägt die Bluetooth-Verbindung fehl (und die Maus muss entfernt und erneut zur Liste der Bluetooth-Geräte hinzugefügt werden), sodass auf jeden Fall ein Schlüsselaustausch / eine Schlüsselauthentifizierung stattfindet Maus von der gemeinsamen Nutzung in beiden Betriebssystemen. Es bleibt die Frage, wie ich Bluetoothd zwingen kann, die gespeicherten Link-Tasten zu speichern und zu verwenden, wenn diese Maus angeschlossen wird.
Hardware-Details:
- Microsoft Bluetooth Notebook Mouse 5000
- 413c: 8161 Dell Computer Corp. Wireless 365 Bluetooth (Broadcom BCM2046B1)
Die beiden folgenden Protokolle zeigen, dass für ein koppelbares Gerät (Mobiltelefon) die Schlüssel in der Linkkeys-Datei gespeichert sind. Dies ist bei der Maus nicht der Fall. Ich weiß, dass ältere Bluetooth-Versionen auch zum Speichern der Link-Schlüssel für Mäuse verwendet wurden, da es hier auf askubuntu und ubuntuforums viele Antworten / Tutorials zum Kopieren von Linkkeys von Windows nach Ubuntu gibt, um eine Maus zwischen den beiden Betriebssystemen gemeinsam zu nutzen.
Hier ist das Bluetooth-Protokoll für die Mauserkennung und den Verbindungsaufbau:
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
Hier ist das Bluetooth-Protokoll für das Pairing eines Mobiltelefons (der Benutzer wird aufgefordert, einen auf beiden Geräten angezeigten Code zu validieren):
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
Antworten:
Nach einer Weile löste ich endlich das Problem, mit dem ich konfrontiert war. Ich habe immer noch keine Antwort auf die ursprüngliche Frage gefunden (ich konnte nicht feststellen, wo die Linkschlüssel für diese bestimmte Kombination aus Bluez / Adapter / Peripheriegerät gespeichert sind), aber ich habe herausgefunden, dass bluez die Linkkeys-Datei liest, falls vorhanden. und verwendet die Schlüssel in der Datei.
Obwohl die Linkschlüssel nach dem Pairing möglicherweise nicht in die Datei geschrieben werden, können diese Schlüssel überschrieben werden, indem sie manuell zur Linkkeys-Datei hinzugefügt werden.
Es ist wichtig, dass der Schlüsseltyp richtig eingestellt ist, da sonst der Schlüssel ignoriert wird.
Als Referenz wird hier der Schlüsseltyp angezeigt, der in meinem Fall funktioniert hat: /ubuntu//a/246791/352576
quelle
Ubuntu 13.10 verwendet bluez 4.98, 14.04 und 14.10 verwendet 4.101
Beide Versionen wurden mit derselben Option kompiliert (--localstatedir = / var)
Ich verwende 14.04 und die Dateien sind da. Wenn ich ein Gerät entferne oder hinzufüge, wird die Datei / var / lib / bluetooth / (myadapteraddress) / linkkeys entsprechend aktualisiert.
Ich habe einen Test auf einem 14.10-System durchgeführt, ein BT-Gerät hinzugefügt und die Datei / var / lib / bluetooth / (Adapteradresse) / linkkeys wurde erstellt
Möglicherweise verwenden Sie eine neuere Version von bluez.
Schema für neue Versionen von bluez (ab 5, glaube ich):
In der Dokumentation des Einstellungsspeichers für die neue bluez-Version habe ich Folgendes gefunden:
http://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/settings-storage.txt
...
...
...
...
In jedem Fall sollte bluez die Dateien in / var / lib / bluetooth speichern
Wenn Sie diesen Befehl verwenden
Sie erhalten 4.101?
quelle
var/lib/bluetoooth/<adapter address>
Ordner ist vorhanden, es gibt jedoch weder eine Linkkeys-Datei noch ein Unterverzeichnis. Das Bluetooth-Gerät ist gekoppelt und funktioniert, sodass die Schlüssel irgendwo gespeichert sind, aber definitiv nicht dort. Vielleicht speichert die Ubuntu-Version die Schlüssel woanders und ich versuche herauszufinden, wo. Ich verwende eine Standard-Desktop-Installation von 14.10, die über die Bluetooth-Anzeige gekoppelt wird./ var / lib / bluetooth / {bluetoothaddr} / linkkeys
Wo {bluetoothaddr} Ihre Bluetooth-Schnittstelle ist (Sie sollten nur eine haben, es sieht aus wie eine Mac-Adresse)
Das Dateiformat ist {remoteaddr} {128-Bit-Verbindungsschlüssel} {Typ}.
quelle
In Debian Jessie & ich gehe auch von Ubuntu aus, dass Sie die zu verwendende PIN manuell einstellen können.
/var/lib/bluetooth/XX:XX:XX:XX:XX:AA
(woXX: ... :AA
ist der Mac des BT-Adapters Ihres PCs) sollte ein Verzeichnis mit dem Mac Ihrer BT-Maus / -Tastatur enthalten (ich werde es alsXX: ... :BF
und Dateien config & Einstellungen darstellen.innerhalb
XX: ... BF
gibt es eine Datei iminfo
Besitz von Root, mit Berechtigungen für root rw. Keine anderen Berechtigungen .-- Inhalt sollte sein:Beachten Sie, dass die Schlüssellänge 16 Byte beträgt.
Das Einfügen von Linkkeys-Dateien in diese Verzeichnisse hat mir nicht geholfen - obwohl ich sie dort gut belassen habe.
quelle