Open eubnara opened 1 year ago
thinkpad bluetooth keyboard version 1 을 가지고는 위 방법으로 성공했는데, logitech lift 론 실패했다. bluetooth 5.1 부터 뭔가 내용/방법이 약간 다른듯. https://wiki.archlinux.org/title/bluetooth#Preparing_Bluetooth_5.1_Keys 에 문서가 잘 되어있긴한데 동작하지 않았다. 두 제품 다 멀티페어링이 되긴하는데, lift 의 경우 같은 번호라 하더라도 다시 페어링할 때마다 다른 mac address 로 등록되는게 관련이 있지 않나 싶다. 펌웨어와 관련있을듯
이게 관련있을 듯 하다.
=> 성공했다. 리눅스에서 같은 mac 번호로 이름을 바꾸고 뒤에 일련의 절차를 그대로 진행했다.
keychron b1 의 경우에도 성공했다. 이 경우 리눅스의 info 파일에서 다음 내용을 변경했다.
IdentityResolvingKey.Key
LongTermKey.Key
LongTermKey.EDiv
LongTermKey.Rand
PeripheralLongTermKey.Key
SlaveLongTermKey.Key
특이사항으로는 다음과 같다. keychron b1 에 대한 설명이 딱 있는 건 아니라서 비슷한 값들을 다른 기기에 적용하는 것과 유사하게 적용했다.
https://wiki.archlinux.org/title/bluetooth#Preparing_Bluetooth_5.1_Keys 참고.
두 개를 섞은 느낌
LongTermKey.EDiv
는 이진수로 넣는다. 다음의 경우에서 23376 이란 값을 넣었다.
(...)\Parameters\Keys\047bcbbb1d05\e1f253a03150> ls
Node has 0 subkeys and 13 values
size type value name [value if type DWORD]
16 3 REG_BINARY <LTK>
4 4 REG_DWORD <KeyLength> 16 [0x10]
8 b REG_QWORD <ERand>
4 4 REG_DWORD <EDIV> 23376 [0x5b50]
16 3 REG_BINARY <IRK>
8 b REG_QWORD <Address>
4 4 REG_DWORD <AddressType> 1 [0x1]
16 3 REG_BINARY <CSRKInbound>
8 b REG_QWORD <InboundSignCounter>
16 3 REG_BINARY <CSRK>
4 4 REG_DWORD <OutboundSignCounter> 0 [0x0]
4 4 REG_DWORD <CEntralIRKStatus> 1 [0x1]
4 4 REG_DWORD <AuthReq> 45 [0x2d]
bluetooth 장치와 노트북의 mac address 를 키값으로 사용하여 페어링하는 일련의 로직이 있는데, 멀티페어링을 지원하는 제품이라도 노트북의 bluetooth 장치의 mac address 는 동일하여 충돌이 되는지 한쪽 페어링하고 다른 OS 로 부팅하여 또 페어링하면 원래 OS 로 재부팅시 또 연결이 안되는 문제가 발생한다.
https://unix.stackexchange.com/questions/255509/bluetooth-pairing-on-dual-boot-of-windows-linux-mint-ubuntu-stop-having-to-p
리눅스에서 페어링 => 윈도우에서 페어링 후에 위 링크에 나온 방법을 이용해서 키값을 알아내어 설정하니 연결이 잘된다.