듀얼 부팅 Bluetooth LE(저에너지) 장치 페어링

듀얼 부팅 Bluetooth LE(저에너지) 장치 페어링

Fedora 26에서 두 개의 Bluetooth 장치, 마우스 및 키보드를 페어링하려고 합니다. 저도 윈도우 10이 설치되어 있습니다. 내가 한 일은 다음과 같습니다. Linux와 Windows에서 페어링했지만 Windows에서 얻은 키를 삽입하려고 하면 [LinkKey]위에서 언급한 항목을 찾을 수 없습니다.내가 따르는 지침

다음은 장치 중 하나에 대한 정보 파일에 있는 내용입니다.

[General]
Name=Designer Mouse
Appearance=0x03c2
AddressType=static
SupportedTechnologies=LE;
Trusted=true
Blocked=false
Services=00001800-0000-1000-8000-00805f9b34fb;00001801-0000-1000-8000-00805f9b34fb;0000180a-0000-1000-8000-00805f9b34fb;0000180f-0000-1000-8000-00805f9b34fb;00001812-0000-1000-8000-00805f9b34fb;

[IdentityResolvingKey]
Key=D8F3A0A146FEB991BF2ECD9756C8BDFA

[LocalSignatureKey]
Key=23AB7AF05C5AC930F9322CF44114856B
Counter=0
Authenticated=false

[LongTermKey]
Key=D2681BEA8B2C177B1AB8786F22C89DBB
Authenticated=0
EncSize=16
EDiv=48309
Rand=10283782112900107958

[DeviceID]
Source=2
Vendor=1118
Product=2053
Version=272

[ConnectionParameters]
MinInterval=6
MaxInterval=6
Latency=60
Timeout=300

투어 가이드에 따르면 입구여야 하는데 [LinkKey]입구가 없습니다.

Windows에서 키를 얻었으며 위에서 언급한 방법도 시도했습니다.이 문제

답변1

문제는 귀하의 장치가 Bluetooth LE(저에너지) 장치이고 다르게 처리된다는 것입니다. 듀얼 부팅을 위해 Microsoft 3600 마우스를 설정하는 데 도움이 되는 다음 두 가지 솔루션을 찾았습니다.

여기에서 Bluetooth LE 장치를 사용하여 이 작업을 수동으로 수행하는 방법에 대한 튜토리얼을 확인하세요.http://console.systems/2014/09/how-to-pair-low-energy-le-bluetooth.html

주요 단계는 다음과 같습니다.

  • Linux의 첫 번째 쌍
  • 재시작
  • Windows에서 페어링
  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys\{computer-bluetooth-mac}\{device-bluetooth-id}에서 키 값을 가져옵니다.
    • SYSTEM\Select에서 찾을 수 있는 ControlSet001 또는 ControlSet002일 수 있지만 일반적으로 ControlSet001입니다.

  • 예를 들어 chntpw(Linux에서) cd {PATH_TO_WINDOWS_PARTITION}/Windows/System32/config/
    chntpw -e SYSTEM을 사용하여 이 작업을 수행할 수 있습니다.
  • /var/lib/bluetooth/{computer-bluetooth-mac}으로 이동합니다.
  • 매우 유사한 장치 블루투스 ID에 대한 디렉토리를 확인하십시오(다시 페어링할 때마다 변경될 수 있으므로 일반적으로 약간 다릅니다).
  • 장치 ID와 일치하도록 디렉터리 이름을 바꿉니다.
  • 이름이 바뀐 디렉터리에서 정보 파일을 편집합니다.
  • 다음 값을 복사합니다.
    • IRKKey입력하다IdentityResolvingKey
    • CSRKKey입력하다LocalSignatureKey
    • LTKKey입력하다LongTermKey
    • ERandinto Rand: 16진수 값을 얻습니다.ab cd ef, 바이트 역방향(EF CD ab) 이를 십진수로 변환합니다(예: 계산기 앱의 프로그래밍 모드 사용).
    • EDIVinto EDiv: 16진수 값을 가져와 정상적으로 변환하거나 표시되는 경우 10진수 값을 직접 사용합니다(chntpw가 표시함)
  • 재시작

또는
Mygod에서 제공하는 Python 스크립트를 사용하여 다음 단계를 수행하십시오. https://gist.github.com/Mygod/f390aabf53cf1406fc71166a47236ebf

저는 스크립트를 사용했고 Groups 의 Key 항목 LongTermKey과 group의 및 항목을 복사했습니다 .LocalSignatureKeyIdentityResolvingKeyEDivRandLongTermKey

수동 경로 연결 시 고려 사항
저에게는 실제로 효과가 없었기 때문에 사용하지 않았습니다. 하지만 다른 사람에게도 효과가 없다면 다음과 같은 일반적인 해결 방법을 따르세요.

  • 이 튜토리얼에서는 이에 대해 언급하지 않지만 IRK 항목이 있는 경우 해당 값을 IdentityResolvingKey키에 복사하세요.
  • KeyLength를 EncSize에 복사하지 마십시오. 그냥 그대로 놔두세요(저의 경우 16개)
  • 장치 이름이 정확히 동일하지 않은 경우 디렉터리를 이동하는 것을 잊지 마십시오.
    • 내 경우에는 다섯 번째 세트에서 각 페어링을 계산합니다.

이 스크립트에 대한 추가 도움말은 다음과 같습니다.

  • 리눅스에서 실행됩니다.
  • Windows 파티션을 마운트해야 합니다.
  • 명령은 다음과 같아야 합니다.
    ./export-ble-infos.py -s {PATH_TO_WINDOWS_PARTITION}/Windows/System32/config/SYSTEM
    • SYSTEM 파일을 다른 위치에 복사하고 다음 명령을 사용하여 경로를 전달할 수도 있습니다.-s {PATH}
  • Windows가 LE가 아니거나 적어도 이 형식이 아닌 다른 Bluetooth 장치가 있다는 것을 알게 되면 충돌이 발생합니다.

답변2

이전 답변에 설명된 방법을 시도했습니다(예: 튜토리얼 따르기).http://console.systems/2014/09/how-to-pair-low-energy-le-bluetooth.html) Windows 10 및 Ubuntu 18.04m LTS 이중 부팅 구성을 사용하는 Surface Book 2에서 원활하게 작동하도록 Surface 키보드를 설정합니다. 저는 직업을 가지고 있지 않습니다.

먼저 Ubuntu 18.04에서 Surface를 최대한 활용하려면 Jakeday 커널(https://github.com/jakeday/linux-surface). 둘째, Microsoft Surface 키보드(블루투스)를 사용하려면 최신 버전의 bluez(https://medium.com/@overcode/fixing-bluetooth-in-ubuntu-pop-os-18-04-d4b8dbf7ddd6).

아이디어는 페어링 순서를 반대로 바꾸고 Ubuntu에서 인증을 비활성화한 다음 키를 Windows 10 레지스트리에 복사하는 것입니다.

  1. Windows 10에서 Surface 키보드를 페어링하세요. 그러면 장치에 대한 레지스트리 키가 생성됩니다.

  2. 우분투에서 재부팅하십시오.

  3. Ubuntu에서 키보드를 페어링하고 에서 키보드 Bluetooth 주소를 가져온 다음 Settings>Bluetooth연결됨을 클릭하여 Surface Keyboard복사합니다 Address(내 시스템에서는 에 위치하므로 CE:2E:25:B9:D1:0C이 점을 명심하십시오!).
  4. 터미널 콘솔을 열고 root: 를 입력합니다 sudo -i.
  5. info인증을 제거하려면 Bluetooth 프로필을 편집하세요 . 키보드 구성 디렉토리를 입력하십시오: cd /var/lib. 해당 디렉터리의 내용을 나열하여 Bluetooth MAC 주소를 얻은 ls다음 cd키보드의 구성 폴더에 넣습니다. 내 시스템에서 cd /var/lib/bluetooth/B8:31:B5:9A:5D:15/CE:2E:25:B9:D1:0C마지막 숫자는 3단계의 키보드 Bluetooth 주소입니다. 즐겨 사용하는 편집기를 사용하여 info이 디렉터리의 파일을 열고 필드를 [LocalSignatureKey] Authenticated로 변경 false하고 [LongTermKey] Authenticated필드를 으로 변경합니다 0. info내 컴퓨터에서 파일은 다음과 같습니다 .
[General]
Name=Surface Keyboard
Appearance=0x03c1
AddressType=static
SupportedTechnologies=LE;
Trusted=true
Blocked=false
Services=00001800-0000-1000-8000-00805f9b34fb;00001801-0000-1000-8000-00805f9b34fb;0000180a-0000-1000-8000-00805f9b34fb;0000180f-0000-1000-8000-00805f9b34fb;00001812-0000-1000-8000-00805f9b34fb;[ConnectionParameters]
MinInterval=12
MaxInterval=12
Latency=20
Timeout=200

[DeviceID]
Source=2
Vendor=1118
Product=2327
Version=304

[IdentityResolvingKey]
Key=BAC8FF051F3EB6014D0B66678C725435

[LocalSignatureKey]
Key=C7E1BDA700A3213E12463D801F4B4496
Counter=0
Authenticated=false

[LongTermKey]
Key=721CEF56A21CFD5CB0BEF8F565F7F5A6
Authenticated=0
EncSize=16
EDiv=44718
Rand=14981484917123435222
  1. Surface 키보드를 끄고(배터리 제거) Ubuntu를 다시 시작합니다.
  2. 설정 > Bluetooth > Surface 키보드에서 연결을 켜고 배터리를 다시 삽입하세요. 키보드가 연결되어 제대로 작동해야 합니다. 배터리를 제거하지 않고 다시 재부팅하여 키보드가 제대로 작동하는지 확인하세요.
  3. 파일을 저장/인쇄하여 info키에 액세스하여 키보드의 Windows 10 레지스트리 키를 업데이트하세요. 제 경우에는 Windows 10 및 Ubuntu에 설치된 디스크에 파일을 저장했습니다(Windows 10 레지스트리에 데이터를 복사/입력할 수 있도록).
  4. Surface 키보드를 끄고(배터리 제거) Windows 10으로 재부팅합니다. PSTools's psexec레지스트리를 편집하는 데 사용됩니다 . 먼저 PSTools다음에서 다운로드하세요.http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx. zip 파일의 압축을 풀고 관리자 권한으로 터미널 콘솔을 열고 압축을 푼 파일로 디렉터리를 변경한 후 를 실행하면 psexec -s -i regedit.exe페어링 키가 저장된 권한 있는 레지스트리 키에 액세스할 수 있습니다.
  5. 파일의 키를 infoSurface 키보드의 Windows 레지스트리 키에 복사합니다. 먼저 키보드의 두 항목 이름을 바꿔야 합니다. 항해 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters. 아래 항목 DevicesKeysSurface 키보드에 해당하는 항목의 이름을 바꿉니다. 키보드가 페어링될 때마다 이전 페어링과 구별하기 위해 주소가 조금씩 변경됩니다. 제 경우에는 초기 Windows 10 페어링이 켜져 있었고 ce2e25b810c후속 Ubuntu 페어링도 켜져 있었습니다 CE:2E:25:B9:D1:0C(소문자 and를 제외하고 거의 동일한 주소이지만 :to가 증가한 점에 유의하세요). 원래 Windows 10 페어링 주소에 해당하는 레지스트리 이름을 마우스 오른쪽 버튼으로 클릭하고 이름을 Ubuntu 주소로 바꿉니다.b8B9

레지스트리 키의 이름을 바꾼 후 내 시스템에서는 다음과 같이 표시됩니다. 여기에 이미지 설명을 입력하세요.

  1. info파일 의 키를 Keys/{MAC Address}/{Bluetooth Address}레지스트리 키( \Keys\b831b59a5d15\ce2e25b9d10c예제에서는)에 복사합니다. 먼저 필드를 마우스 오른쪽 버튼으로 클릭하고 Bluetooth 주소를 Ubuntu에서 페어링하는 데 사용된 주소로 업데이트합니다(예제에서는 원래 Windows 10의 "ce2e25b810c"와 Ubuntu의 "ce2e25b910c"가 16진수로 페어링됨) Modify.Address

여기에 이미지 설명을 입력하세요.

마찬가지로 Modify다음 각 레지스트리 필드는 infoUbuntu 파일의 데이터를 해당 Windows 10 레지스트리 필드에 복사/키 지정합니다.

  • IdentityResolvingKey Key값은 IRK레지스트리 필드로 들어갑니다. 수정 시에는 hex 항목을 삭제하고 8) 단계에서 저장한 파일 Key에서 hex 형식으로 입력합니다.info

  • LocalSignatureKey Key값 입력CSRK

  • LongTermKey Key입력하다LTK

  • RandEnter: DECIMAL 형식 ERand으로 파일의 데이터를 입력합니다.info

  • EDivEnter EDiv: DECIMAL 형식으로 데이터를 입력합니다.

info12. 파일 의 간격, 지연 및 시간 초과 값을 Device레지스트리 키에 복사합니다(모두 DECIMAL 형식).

  • MaxInterval입력하다LERemoteConnParamsIntervalMax

  • MinInterval입력하다LERemoteConnParamsIntervalMin

  • Latency입력하다LERemoteConnParamsLatency

  • Timeout입력하다LERemoteConnParamsLSTO

여기에 이미지 설명을 입력하세요.

  1. Windows를 다시 시작하고 Windows Bluetooth 서비스에 연결되는 Surface 키보드에 배터리를 다시 삽입합니다. 키보드를 다시 페어링할 필요 없이 Windows 10에서 Ubuntu 18.04로 또는 그 반대로 원활하게 부팅할 수 있어야 합니다.

관련 정보