Ubuntu 14.10의 블루투스 링크 키는 어디에 저장됩니까?


10

Ubuntu 14.10에서 장치에 대한 특정 블루투스 링크 키를 설정하려고하는데 저장 위치를 ​​찾을 수 없습니다.
목적은 운영 체제를 전환 한 후 다시 페어링 할 필요없이 Ubuntu와 Windows 모두에서 블루투스 마우스를 작동시키는 것입니다.
AskUbuntu에서 찾은 모든 답변에 따르면 키가 저장되어 /var/lib/bluetooth/<mac_address>/linkkeys있으며 적어도 13.10까지는 사용되지 않았지만 14.10에서는이 파일이 클린 데스크톱 설치에서 누락되어 수동으로 생성해도 아무런 영향을 미치지 않습니다. 블루투스.

편집 : 마우스가 페어링 요청을 발행하지 않으며이 경우 링크 키가 저장되지 않은 것 같습니다. 그러나 Windows에서 마우스를 연결 한 다음 Ubuntu에서 다시 부팅하면 Bluetooth 연결이 실패하고 (마우스를 제거하고 Bluetooth 장치 목록에 다시 추가해야 함) 키 교환 / 인증이 확실히 진행되어 마우스가 두 OS 모두에서 공유되지 않습니다. 문제는 여전히 남아 있습니다.이 마우스를 연결할 때 bluetoothd가 저장된 링크 키를 저장하고 사용하도록하려면 어떻게해야합니까?

하드웨어 세부 사항 :

  • Microsoft 블루투스 노트북 마우스 5000
  • 413c : 8161 Dell Computer Corp. Wireless 365 Bluetooth (Broadcom BCM2046B1)

아래의 두 로그는 페어링 가능한 장치 (휴대폰)의 경우 키가 링크 키 파일에 저장되어 있음을 보여줍니다. 이것은 마우스의 경우가 아닙니다. 이전 버전의 블루투스 버전은 마우스에 대한 링크 키를 저장하는 데 사용되었습니다. askubuntu 및 ubuntuforum에는 두 OS간에 마우스를 공유하기위한 특정 목적을 위해 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[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를 가지고 있고 디렉토리는 나를 위해 존재하지만 맥 주소는 내 내부 블루투스를위한 것이고 링크 키는 비어있다.
Fabby

14.04를 가지고 14.10으로 업그레이드했는데 이제 디렉토리를 찾을 수 없습니다. BT 마우스의 링크 키를 설정하려는 것과 동일한 문제가 있습니다.
Alasjo

답변:


3

잠시 후, 나는 내가 직면 한 문제를 마침내 해결했습니다. 나는 여전히 초기 질문에 대한 답을 찾지 못했습니다 (이 특정 bluez / adapter / peripheral 조합에 대한 링크 키가 어디에 저장되어 있는지 확인할 수 없었습니다). 그러나 bluez가 링크 키 파일을 읽는다면 파일의 키를 사용합니다.

따라서 페어링 후 링크 키가 파일에 기록되지 않더라도 해당 키를 링크 키 파일에 수동으로 추가하여 해당 키를 무시할 수 있습니다.

키 유형이 올바르게 설정되어 있어야합니다. 그렇지 않으면 키가 무시됩니다.

참고로 내 경우에 작동 한 키 유형은 다음과 같습니다. https://askubuntu.com/a/246791/352576


1

우분투 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
예, 블루투스 버전은 4.101입니다. var/lib/bluetoooth/<adapter address>폴더가 존재하지만 linkkeys 파일이나 모든 하위 디렉토리가 없습니다. 블루투스 장치가 페어링되어 작동하므로 키가 어딘가에 저장되어 있지만 확실히 거기에 없습니다. 어쩌면 우분투 버전은 다른 곳에 키를 저장하고 어디에서 찾으려고 노력하고 있습니다. 표준 14.10 데스크톱 설치를 사용하고 있습니다. 블루투스 표시기를 통해 페어링하면 아무 것도 아닙니다.
ATAKAMA

1
일부 블루투스 어댑터에는 하드웨어 키 저장소가 있습니다. Ubuntu bluetoothd가 파일 시스템이 아닌 어댑터 메모리에만 링크 키를 저장할 수 있습니까? 어댑터는 다음과 같습니다. 413c : 8160 Broadcom BCM2046 기반의 Dell Computer Corp. Wireless 365 Bluetooth
ATAKAMA

핸드폰, 다른 장치를 페어링하려고 했습니까? ... 나중에 14.10이
설치된

방금이 어댑터와 페어링되지 않은 휴대 전화를 페어링했습니다 (우분투와 Windows 모두). 링크 키 파일이 생성되었습니다. 그런 다음 마우스를 다시 페어링하려고 시도했지만 페어링되었지만 링크 키가 파일에 추가되지 않았습니다. 파일에서 링크 키를 읽고 어댑터에서 링크 키를 사용하지 않는 방법은 무엇입니까?
ATAKAMA

정말 궁금합니다. 어쩌면 Windows에서 장치를 제거하면 우분투가 파일을 만듭니다.
J.Serra

0

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

어디 {bluetoothaddr}는 블루투스 인터페이스 (하나만 있어야합니다, 그것은 MAC 주소 모양)

파일 형식은 {remoteaddr} {128 bit link 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

질문 텍스트를주의 깊게 읽으십시오. 해당 파일은 14.10 설치에 더 이상 존재하지 않습니다. 파일 시스템 어디에도 링크 키 파일이 없습니다. 키는 다른 곳에 저장되어 있습니다. 문제는 어디에 있습니다.
ATAKAMA

14.10을 설치 한 새 랩톱 (업데이트 없음)에는 설명대로 여전히 파일이 있습니다. 블루투스 4.101. 새 장치를 페어링하려고 할 때 syslog에 표시되는 메시지는 무엇입니까?
Xavier

질문을 편집하고이 마우스의 검색 및 연결 설정과 링크 키가 저장된 휴대폰의 연결 설정을 비교하기 위해 일부 로그를 추가했습니다.
ATAKAMA

0

데비안 Jessie & 나는 Ubuntu를 사용하여 PIN을 수동으로 설정하여 사용할 수 있다고 가정합니다.

  1. 이 게시물 https://askubuntu.com/a/246791/352576에서 Windows 키를 얻는 방법에 대해 설명합니다.
  2. 당신의 /var/lib/bluetooth/XX:XX:XX:XX:XX:AA(여기서 XX: ... :AA당신의 BT 마우스 / 키보드의 맥이있는 디렉토리를 포함해야 PC의 BT 어댑터의 MAC입니다) (나는 등을 대표하는거야 XX: ... :BF&, 설정 및 파일의 설정.
  3. 안에는 root에 대한 권한 rw를 가진 루트가 소유 한 XX: ... BF파일이 info있습니다. 다른 권한은 없습니다 .-- 내용은 다음과 같아야합니다.

    [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.