Di mana kunci tautan bluetooth disimpan di Ubuntu 14.10?

10

Saya mencoba untuk mengatur kunci tautan bluetooth khusus untuk perangkat di Ubuntu 14.10 tetapi saya tidak dapat menemukan di mana mereka disimpan.
Tujuannya adalah agar mouse bluetooth berfungsi di Ubuntu dan Windows tanpa harus memasangkannya kembali setelah berpindah sistem operasi.
Semua jawaban yang saya temukan di AskUbuntu menyatakan bahwa kunci disimpan /var/lib/bluetooth/<mac_address>/linkkeysdan ini digunakan setidaknya sampai pukul 13.10, tetapi pada 14.10 file ini hilang dari instalasi desktop yang bersih dan membuatnya secara manual tidak memiliki efek, diabaikan oleh bluetoothd.

EDIT: Tampaknya mouse tidak mengeluarkan permintaan pemasangan dan kunci tautan tidak disimpan dalam kasus ini. Namun, menghubungkan mouse di Windows dan kemudian reboot di Ubuntu menyebabkan koneksi bluetooth gagal (dan mouse perlu dihapus dan ditambahkan kembali ke daftar perangkat bluetooth), jadi pasti ada beberapa pertukaran kunci / otentikasi yang terjadi yang mencegah mouse agar tidak dibagikan di kedua OS. Pertanyaannya tetap, bagaimana saya bisa memaksa bluetoothd untuk menyimpan dan menggunakan tombol tautan yang disimpan saat menghubungkan mouse ini?

Detail perangkat keras:

  • Microsoft Bluetooth Notebook Mouse 5000
  • 413c: 8161 Dell Computer Corp. Wireless 365 Bluetooth (Broadcom BCM2046B1)

Dua log di bawah ini menunjukkan bahwa untuk perangkat yang dapat dipasangkan (ponsel) kunci disimpan dalam file tautan; ini bukan kasus untuk mouse. Saya tahu bahwa versi bluetoothd yang lebih lama digunakan untuk menyimpan kunci tautan untuk tikus juga, karena ada banyak jawaban / tutorial di sini tentang askubuntu dan ubuntuforums tentang menyalin tautan kunci dari Windows ke Ubuntu untuk tujuan khusus berbagi mouse antara dua OS.

Berikut ini adalah log bluetoothd untuk penemuan mouse dan pengaturan koneksi:

    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

Berikut adalah log bluetoothd untuk pemasangan ponsel (pengguna diminta untuk memvalidasi kode yang ditunjukkan pada kedua perangkat):

    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
ATAKAMA
sumber
Saya mendapat 14,04 dan direktori itu ada untuk saya, tetapi alamat mac adalah satu untuk bluetooth internal saya dan tautan kuncinya kosong ...
Fabby
Saya memiliki 14,04 dan ditingkatkan menjadi 14,10, sekarang saya tidak dapat menemukan direktori. Saya memiliki masalah yang sama dengan Anda, ingin mengatur kunci tautan untuk mouse BT.
Alasjo

Jawaban:

3

Setelah beberapa saat, saya akhirnya menyelesaikan masalah yang saya hadapi. Saya masih belum menemukan jawaban untuk pertanyaan awal (saya tidak bisa menentukan di mana tombol tautan disimpan untuk kombinasi bluez / adaptor / periferal khusus ini) tetapi saya mengetahui bahwa bluez akan membaca file tautan, jika ada, dan akan menggunakan kunci dalam file.

Jadi, meskipun kunci tautan mungkin tidak ditulis ke file setelah dipasangkan, dimungkinkan untuk mengganti kunci-kunci itu dengan menambahkannya secara manual ke file tautan kunci.

Penting bahwa jenis kunci diatur dengan benar, jika tidak maka kunci tersebut akan diabaikan.

Untuk referensi, jenis kunci yang berfungsi dalam kasus saya ditampilkan di sini: /ubuntu//a/246791/352576

ATAKAMA
sumber
1

Ubuntu 13.10 menggunakan bluez 4.98, 14.04 dan 14.10 menggunakan 4.101

Kedua versi dikompilasi dengan opsi yang sama (--localstatedir = / var)

Saya menggunakan 14,04 dan file ada di sana dan jika saya menghapus atau menambahkan perangkat file / var / lib / bluetooth / (myadapteraddress) / linkkeys diperbarui sesuai.

Saya membuat tes pada sistem 14.10, saya menambahkan perangkat BT dan file / var / lib / bluetooth / (adapteraddress) / linkkeys dibuat

Mungkin Anda menggunakan versi bluez yang lebih baru.

Skema untuk versi baru bluez (5 dan seterusnya saya pikir):

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

Dalam dokumentasi penyimpanan pengaturan untuk versi bluez baru, saya menemukan ini:

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

...

Bagaimanapun bluez harus menyimpan file di / var / lib / bluetooth

Jika Anda menggunakan perintah ini

bluetoothd --version

Anda mendapatkan 4,101?

J.Serra
sumber
1
Ya, versi bluetoothd adalah 4.101. The var/lib/bluetoooth/<adapter address>folder ada tapi tidak ada file linkkeys, atau subdirektori apapun. Perangkat bluetooth dipasangkan dan berfungsi, sehingga kunci disimpan di suatu tempat tetapi jelas tidak ada. Mungkin versi Ubuntu menyimpan kunci di tempat lain dan saya mencoba mencari tahu di mana. Saya menggunakan instalasi desktop standar 14.10, pemasangan dilakukan melalui indikator bluetooth, tidak ada yang mewah.
ATAKAMA
1
Terpikir oleh saya bahwa beberapa adapter bluetooth memiliki penyimpanan kunci perangkat keras. Apakah mungkin untuk BluetoothD Ubuntu untuk menyimpan kunci tautan hanya di memori adaptor dan bukan di sistem file? Adaptornya adalah: 413c: 8160 Dell Computer Corp. Wireless 365 Bluetooth berbasis Broadcom BCM2046
ATAKAMA
Sudahkah Anda mencoba mengupas perangkat lain, ponsel? ... Nanti saya akan coba di PC lain dengan 14.10
J.Serra
Saya baru saja memasangkan ponsel yang tidak pernah dipasangkan dengan adaptor ini (baik di Ubuntu, maupun di Windows). File tautan kunci telah dibuat. Lalu saya mencoba memasangkan mouse lagi, itu berpasangan, tetapi kunci tautannya tidak ditambahkan ke file. Bagaimana cara saya mendapatkan bluetoothd untuk membaca kunci tautan dalam file dan tidak menggunakan yang ada di adaptor (yang mungkin memang demikian)?
ATAKAMA
Itu sangat aneh ... Mungkin jika Anda menghilangkan perangkat di windows, ubuntu membuat file.
J.Serra
0

/ var / lib / bluetooth / {bluetoothaddr} / tautankunci

Di mana {bluetoothaddr} adalah antarmuka bluetooth Anda (Anda seharusnya hanya memiliki satu, itu terlihat seperti alamat mac)

Format file adalah {remoteaddr} {128 bit key key} {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
Xavier
sumber
Harap baca teks pertanyaan dengan seksama. File itu tidak lagi ada pada instalasi 14.10. Tidak ada file tautan di mana pun di sistem file. Kunci disimpan di tempat lain. Pertanyaannya adalah dimana.
ATAKAMA
Di laptop baru saya tempat saya menginstal (tidak ada pembaruan) 14.10, masih ada file seperti yang saya jelaskan. bluetoothd 4.101. Apa pesan di syslog ketika Anda mencoba memasangkan perangkat baru?
Xavier
Saya mengedit pertanyaan dan menambahkan beberapa log untuk membandingkan pengaturan penemuan dan koneksi mouse ini dengan pengaturan koneksi ponsel, yang tombol tautannya disimpan.
ATAKAMA
0

Di Debian Jessie & saya menganggap Ubuntu juga Anda dapat secara manual mengatur PIN untuk digunakan.

  1. Lakukan apa yang dijelaskan oleh pos ini /ubuntu//a/246791/352576 untuk mendapatkan kunci windows Anda.
  2. Anda /var/lib/bluetooth/XX:XX:XX:XX:XX:AA(di mana XX: ... :AAmac dari adaptor BT PC Anda) harus berisi direktori dengan mac dari mouse / keyboard BT Anda (saya akan menyatakannya sebagai XX: ... :BF, dan file config, & pengaturan.
  3. di dalamnya XX: ... BFada file yang infodimiliki oleh root, dengan izin rw untuk root. Tidak ada izin lain .-- konten harus:

    [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
    

    Perhatikan panjang kuncinya adalah 16 byte.

menempelkan file tautan di direktori ini tidak membantu saya - meskipun saya membiarkannya dalam ukuran yang baik.

Jonathan
sumber