우분투와 윈도우10 멀티부팅시 블루투스 연결문제 해결기

성훈·2021년 6월 3일
0

OS

목록 보기
1/5
post-thumbnail

* 알림! 필자는 무지렁이 뉴비 개발자지망이며, 모든 내용은 필자가 더듬더듬 구글링해서 해결한 과정을 적은 것이라 전문성이 결여 되어있음을 미리 알립니다.

노트북 키보드로만 타이핑해오던 필자는 블루투스 키보드에 대한 열망이 항상 가슴 한구석에 있었다.

항상 만원, 이만 원짜리 가벼운 키보드가 아닌 제대로 된 키보드가 가지고 싶었던 필자는 공돈이 조금 생긴 틈을 타 충동구매 해버렸다.

그렇게 결정한 프레셔스한 키보드 앱코 KN01 BT.
원래 레오폴드 750r 저소음 적축 키보드를 사용했었는데 안타까운 사건으로 생이별하게 되고, 이번엔 무접점 키보드를 한번 써보지 싶어서 바로 결제해버렸다.

그리고 이왕 쓰는 거 제대로 써보지 싶어서, 키캡도 이쁘장한 거로 맞추고, 윤활제도 사고, 흡음재도 사서 키보드를 더욱 강력하게 만드는 데 성공! 스테빌 소리는 아직 못 잡은게 너무 아쉽다

각설하고 부끄럽지만 전역 후 방황의 시간을 가지다가 최근에 관심이 있던 코딩의 길을 걷자 결심해 평생 윈도우만 쓰다가 우분투도 깔아보고 우분투랑 친해지는 시간을 보내고 있었는데 새로운 두 친구(우분투, 키보드)가 영 친해지지 못하는 것이다.

윈도우에서 사용하다가 우분투로 들어가면 페어링 잡히긴 하나 0.5초마다 연결 해제를 반복하며 키보드의 인디케이터도 점멸을 반복하는 것이었다.

멀티페어링 지원하는 키보드라 1번에 윈도우, 2번에 우분투, 3번은 아이패드에 연결해서 사용했는데도 사용하는 데는 실패하고 말았다.

내가 잘못 뽑았나? 앱코 카톡문의로 이런 현상이 보고된 것이 있는지 물어봤지만 15일 안 됐으면 무상 수리해줄 테니 입고시키라는 말만 돌아오고 나는 정신이 점점 아득해짐을 느낀 필자.

그제야 구글링해보니 나만 이런게 아니라 원래 멀티부팅으로 우분투/윈도우를 쓰면 일어나는 현상임을 알고, 어디 문의하기 전에 구글링을 생활화하자는 걸 다시 한번 깨달았다.

링크를 타고 타고 들어가보니 글이 예전 글이거나 블루투스 버전이 안 맞는 글이라 한참을 헤매다 겨우 해결했는데, 다른 분들은 돌아가지 마시라고 포스팅해본다.

필자의 장비는 각각 씽크패드 E14 Gen2, 앱코 KN01 BT이며 블루투스 버전은 각각 5.0, 5.0 LE이다.

순서

  1. 우분투 / 블루투스 키보드 연결
  2. 윈도우 / psexec 설치
  3. 윈도우 / 블루투스 키보드 연결
  4. 윈도우 / CMD로 psexec를 이용, 블루투스 레지스트리 저장 및 캡처
  5. 우분투 / 4의 정보를 우분투에 덮어쓰기
  6. 우분투 / 블루투스 껐다 켜기

쓰고 나니 내가 참고한 블로그 글이랑 비슷해 굳이 다시 포스팅해야 하나 싶지만, 키보드 자랑도 하고, 나는 그분들이 친절하게 적어줘도 못 알아먹는 빡빡이니까 내 수준에 맞춰서 적어보도록 하겠다.

1. 우분투 / 블루투스 키보드 연결

말 그대로 블루투스 연결하면 된다. 다만 연결하기 전에 윈도우에 블루투스 연결을 해놓았었다면 윈도우에서의 연결은 해제하고 연결하시라.
사실 나중에 다시 연결할 거라 굳이 안 해도 될 것 같긴 한데 삽질하다가 마지막 시도해서 성공했을 때 필자는 윈도우 연결을 해제하고 우분투로 먼저 연결했었다.
블루투스 연결했으면 다시 윈도우로 ㄱㄱ

2. 윈도우 / psexec 설치

다운로드 페이지
다운로드 링크

윈도우로 부팅해서 가장 먼저 해야할 것은 psexec를 설치하는 것이다.
원래는 원격조정등에 주로 사용하는 툴 같은데 전술한 것 처럼, 필자도 잘 모른다.
이걸 원래 알고 있던 사람들은 굳이 내 블로그까지 와서 이걸 안 보고 있지 않을까?
필자처럼 우분투랑 안 친하거나 무지성으로 그냥 알려조 응애의 스탠스를 가진 사람을 위한 글이니 이해해 달라.

설치 방법은 간단하다.
PsTools.zip파일을 압축해제해서 나온 PsTools 폴더를 c:/windows/system32 안으로 집어 넣어라.
필자는 이것도 몰라서 한참 헤맸다.
폴더에 집어넣었으면 psexec.exe와 psexec64.exe를 한번씩 실행해서 라이선스 동의를 해주자.

3. 윈도우 / 블루투스 키보드 연결

키보드를 윈도우와 연결하는데, 단 멀티페어링 지원하는 키보드라면 우분투에 연결한 번호로 연결해야 한다.

4. 윈도우 / CMD로 psexec를 이용, 블루투스 레지스트리 저장 및 캡처

자 여기서 필자가 한 삽질을 셀 수 있다면 수영장 하나 정도는 나오지 않을까 싶었던 부분이다.
필자가 참고한 블로거님들은 제대로 적어놨는데 필자가 제대로 못 알아듣고 죄 없는 블로거님들만 욕해서 수명을 며칠 늘려드리지 않았을까 싶다.

우선 cmd 실행할때 관리자 권한으로 실행하고

cd c:/windows/system32/pstools

상기 명령어는 psexec를 사용하기 전에 그 프로그램이 있는 곳으로 터미널 위치를 이동한다는 명령어이다.
그대로 cmd에 붙여 넣어주고

32bit
psexec.exe -s -i regedit /e C:\BTKeys.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys
64bit
psexec64.exe -s -i regedit /e C:\BTKeys.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys

이어서 상기 명령어도 cmd에 그대로 붙여 넣어준다.

Q. 본인 운영체제가 32비트로 설치되었는지 64비트로 설치되었는지 모르겠어요.
A. 그냥 한 번씩 붙여넣어봐라. 운영체제 안 맞아도 실행할 수 없다는 오류 팝업 하나 뜨고 끝이다.

Q. 에러코드 0 라면서 실패하는데 뭐가 문제죠?
A. 잘 된거다. 성공하면 에러코드 0이 뜬다.

에러코드 0은 뭐가 더 있는 거 같긴 한데 역시 필자는 잘 모른다.
그냥 우리 수준에선 얘가 일을 잘했구나 정도로만 알아두자.
그냥 success 나 done을 출력 해줬으면 더 좋았을텐데

해당 명령어가 잘 수행이 되었으면 C:\에 BTkeys.reg 라는 레지스트리가 하나 보일거다.
메모장켜서 열기 -> 모든 파일로 설정 바꾸고 읽으면

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys\8cc681da2469]
"MasterIRK"=hex:3a,a5,6b,05,a6,0a,0b,88,3e,e7,54,15,5f,71,25,d3

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys\8cc681da2469\ef161e07fca9]
"LTK"=hex:18,bc,19,5a,f9,e4,cd,c7,72,3e,b4,98,25,56,65,fd
"KeyLength"=dword:00000010
"ERand"=hex(b):7b,56,b3,23,ea,43,78,1d
"EDIV"=dword:000037d0
"IRK"=hex:38,ba,79,43,ce,50,a0,ef,82,bf,2c,71,96,2a,3c,81
"Address"=hex(b):a9,fc,07,1e,16,ef,00,00
"AddressType"=dword:00000001
"MasterIRKStatus"=dword:00000001
"AuthReq"=dword:0000002d

이런게 보일거다. 캡처를 하든, 복사를 하든 적어놓자.

다 적었으면
다시 cmd로 돌아가서

32bit
psexec.exe -s -i regedit
64bit
psexec64.exe -s -i regedit

상기 명령어를 입력하면 레지스트리 편집기가 나올 것이다.

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys\AA11AA11AA11\BB22BB22BB22

상기 경로로 들어가면 되는데 여기서 AA11AA11AA11은 노트북의 MAC 주소고, BB22BB22BB22는 키보드의 MAC 주소다.

저런 경로로 들어가면 상기 레지스트리가 나올건데 이걸 캡쳐하자.

Q. 블루투스 연결해 놓은게 너무 많아서 뭐가 키보드인지 모르겠어요
A. 그냥 다 찍어두고 우분투로 들어가서 블루투스 설정가면 키보드 MAC 주소 나온다.
그때가서 맞는거 쓰자.

필자는 BTKeys 와 해당 사진을 구글 킵에 올려놨는데 보기 편하고 괜찮더라.
핸드폰으로 찍어서 볼 생각이었다면 WIN+shift+S 단축키로 캡쳐하고 구글 킵을 이용하자.

자 다했다. 우분투로 다시 넘어가자.

5. 우분투 / 4의 정보를 우분투에 덮어쓰기

우분투 켰으면 터미널 켜서 하기 명령어를 입력하자.

sudo apt install nautilus-admin -y

상기 명령어로 GUI로 루트 경로를 탐색할 수 있게 만들었다.

이제 우클릭하면

이런 식으로 관리자 권한으로 열기가 나오는데 ]

클릭하고 암호를 두번 입력하면 우측 상단, 상기 사진의 내 폴더 자리에 관리자 최상위 폴더를 볼 수 있게된다.

그 버튼을 눌러 루트 경로로 진입한 다음, 다음 경로로 따라 이동하자

/var/lib/bluetooth/AA11AA11AA11/BB22BB22BB22

만약 키보드의 MAC 주소를 모른다면 우측 상단 클릭해서 블루투스 설정으로 진입하면 연결되어 있지만 오류로 사용은 안되는 블루투스 키보드가 보일 것이다.
클릭하면 나오는 팝업 하단에 나오는 주소가 MAC 주소이다.

/var/lib/bluetooth/AA11AA11AA11/BB22BB22BB22 여기까지 이동했다면
info 파일과 attributes 파일이 보일텐데 info 파일을 열면 대략

[General]
Name=ABKO KN01BT
Appearance=0x03c1
AddressType=static
SupportedTechnologies=LE;
Trusted=false
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=3AA56B05A60A0B883EE754155F7125D3

[LongTermKey]
Key=18BC195AF9E4CDC7723EB498255665FD
Authenticated=1
EncSize=16
EDiv=14288
Rand=2123521897205552763

[SlaveLongTermKey]
Key=0FE4242925D75F89AFAAC6B97355B36B
Authenticated=1
EncSize=16
EDiv=25079
Rand=2283227609017638928

[DeviceID]
Source=2
Vendor=1452
Product=594
Version=256

[ConnectionParameters]
MinInterval=6
MaxInterval=16
Latency=6
Timeout=43

[ServiceChanged]
CCC_LE=2

이런 메모가 열릴 것이다.
여기서 우리가 수정할 것은 단 4개

LongTermKey의 Key, EDiv, Rand와
IdentityResolvingKey의 Key가 그것이다.

차례대로
LongTermKey의 Key는 우리가 아까 메모해뒀던 BTKeys의 LTK
LongTermKey의 EDiv는 레지스트리 캡쳐의 EDiv 의 10진수 값
LongTermKey의 Rand도 레지스트리 캡쳐의 ERand 10진수 값 이다.

그리고

IdentityResolvingKey의 Key는 BTKeys의 MasterIRK 값을 입력해주자.

주의할 점은 BTKeys에 있는 값을 가져올땐 특수문자 띄어쓰기 없이 대문자로 입력해야하는 것이다.
10진수 값은.. 그냥 틀리지 않게 잘 옮기자.

6. 우분투 / 블루투스 껐다 켜기

잘 옮겼으면 다시 터미널로 가서 후술할 명령어를 입력해 블루투스를 껐다 켜면 끝이다.

sudo service bluetooth restart

자 드디어 끝났다.

이건 필자가 가진 5.0 le 키보드에 해당하는 거고,
3.0 이하거나 le가 아니면 linkkey만 잘 옮겨쓰면 된다더라.

그런데 안돼서 필자에게 도움을 청해도 도와줄 수 없다.
도와주기 싫은게 아니라 진짜 모른다.

이것도 별것 아닌 거 같지만 실제로 별거 아니다 안된다는 팝업 뜨고 에러 코드 0 뜨고 할 때마다 머리가 띵 했다.

그래서 필자처럼 우분투와 이제 막 만나서 알아갈 시간이 부족했거나, 아니면 별로 알 생각 없는 사람을 위해 글을 써보자 해서 써봤는데 평소에 글쓰는 사람이 아니다 보니 영 어색하고 읽기 거북한 결과가 나와버렸다. 별 수 있나 좀 지나서 익숙해지면 글 쓰는 실력도 늘겠지.

본의 아니게 글이 좀 산만하게 길어졌는데 이해해주길 바라며, 필자가 수명을 늘려드린 몇몇 블로거분들에게 감사드리면서 글을 마치겠다.


21.07.01 추가

이번에 필자가 로지텍 마우스 mx master 3을 구매했는데, 키보드 연결이랑 조금 다르길래 공유한다.

5번에 키값 옮길때

LongTermKey의 Key는 우리가 아까 메모해뒀던 BTKeys의 LTK,
IdentityResolvingKey의 Key는 IRK를 옮겨주고,
MAC 주소를 스크린샷 찍은걸 확인해서 일치시켜준 뒤 터미널에서 블루투스를 껐다 켜준다.

키보드의 경우 윈도우 우분투 오고갈때 1,2,3 번에 할당되어있는 블루투스 맥 어드레스는 안바뀌었는데 마우스는 바뀌어서 조금 헤맸던 것 같다.

그래도 키보드 한번 연결 했다가 연결하니 쉽게 되어서 대만족

이제 다시 공부하러 가야지...


도움된 글

NoUnique님 - 정보 전반 - https://nounique.github.io/development/multiboot-sharing-bluetooth/
프즈님 - 노틸러스 관리자 권한 - https://tolovefeels.tistory.com/23
desktopi18n님 - https://desktopi18n.wordpress.com/2018/02/02/bluetooth-mouse-in-dual-boot-of-windows-10-and-linux/

글을 쓴지가 오래되어서 연습도 해볼겸 포스팅 해봤습니다.
감사합니다.

profile
어떻게 이걸 풀어낼 수 있을까

0개의 댓글