테크매니아
듀얼 부팅 시에 블루투스 매번 페어링 하는 현상 원인 및 해결법 본문
reference url
http://askubuntu.com/questions/253949/how-can-i-avoid-having-to-pair-my-bluetooth-mouse-all-the-time
요약하자면, 블루투스는 맥주소와, 연결 키(Link key)값 한 쌍으로 연결을 하게 되는데, 한번 페어링 시 이 Link Key는 OS에 의해 자동 할당된다.
따라서 만일 윈도우로 페어링 후 우분투로 접속하여 페어링을 하게 되면, 기존에 윈도우에서 만들어진 Link Key 값을 우분투가 페어링 하면서 덮어쓰기 된다.
윈도우와 페어링 시 윈도우는 A키를 갖게 되고 디바이스 역시 A키를 갖게 된다. 그런데, 우분투에서 재 페어링하면 우분투는 B키를 만들어 디바이스와 페어링하고 디바이스는 B키를 갖게 된다. 당연히 윈도우에선 A키를 가지고 디바이스와 페어링하려 들테니 디바이스는 윈도우에서 동작하지 않게 된다.
따라서 두 Link key를 맞춰줘야 하는데
나는 window10 과 ubuntu 16.04 LTS를 듀얼 부팅 중이었고, 두 OS중 윈도우가 만든 키를 우분투가 쓰도록 하기로 했다.
먼저 윈도우에서 페어링을 하게 되면, C:\Windows\System32\config\ 아래에 SYSTEM이라는 파일이 있다.
이 파일 아래에는 내 컴퓨터의 블루투스 장치 맥주소가 있고, 그 아래에는 컴퓨터와 페어링 했었던 디바이스들의 맥주소 가 있다.
먼저
1. 윈도우 와 한번 페어링하여 윈도우가 link key를 생성하도록 한다.
2. 블루투스 기기 전원을 끄고 다른 OS로 부팅한다. 기기 전원 끄는 이유가 이전 키값을 가지고 페어링을 자꾸 시도해서 무슨 문제가 난다고 몇몇 글을 보았는데,
어떤 문제가 어떻게 일어나는지 정확히는 모르겠다. 내 나름의 무식한 추측에는, 뭔가 맞지 않는 키를 계속 시도하다가 디바이스가 유효하지 않다고 생각하여 아예 막혀버린는 것 같다. 허허헣.... 무식한 추측이야 무식한 추측... 기기전원을 켠채로는 해본적이 없어서 이 부분은 웬만하면 진행하는걸로.....
3. 우분투에서 디바이스와 페어링한다. 이때 페어링이 이뤄지면 /var/lib/bluetooth/[bluetooth mac address]/ 아래에 [device bluetooth mac address]이라는 파일이 생기고 그 아래
[자기 블루투스 장치 맥주소]/info 라는 파일이 있다. 일반 권한으로 접근하면 페어링 디바이스 파일이 보이지 않으니 sudo 로 접근해야한다.
sudo vi /var/lib/bluetoothinfo/[bluetooth mac address]/[device bluetooth mac address]/info
혹은
sudo vi /var/lib/bluetooth/[bluetooth mac address]
하여 편집기 상에서 하위로 내려가면 된다.
4. 우분투에서 윈도우키를 가져오기 위해, 우선 윈도우가 있는 파티션을 마운팅한다. 마운팅 하면
/media/[user name]/[volume name]/Windows/System32/config 이동한다.
cd /media/[user name]/[volume name]/Windows/System32/config
5. 윈도우 레지스트리 키를 얻어오기 위해 레지스트리 값을 읽고 쓰게 해주는 패키지를 설치한다.
sudo apt-get install chntpw
6. 레지스트리 키를 얻기 위해 SYSTEM의 하위로 접근한다
chntpw -e SYSTEM cd ControlSet001/Services/BTHPORT/Parameters/Keys/[computer bluetooth mac address]
7. 이동하고 나면, 하위에 윈도우에서 페어링 했던 디바이스들의 블루투스 맥주소 들이 모여 있을 것이다.
이중 내가 듀얼로 사용할 디바이스의 맥주소들을 헥스값으로 바꿔 link key를 얻어야 한다
hex [device bluetooth mac address]
8. 얻어진 link key는
00000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx ~
형식이다. 00000 이후의 16바이트가 link key로 16바이트를 복사해서 갖고 있는다.
9. 듀얼 연결할 디바이스의 페어링 정보가 담긴 파일로 이동하여, 우분투가 생성한 link key를 복사한 윈도우가 만든 link key로 적용해주기 위해
sudo vi /var/lib/bluetooth/[Bluetooth Adapter MAC address]/[Bluetooth module MAC address]/info
해서 아래와 같이 Key 부분에 얻은 window link key를 공백 없이 붙여 넣는다.
[LinkKey]
Key=XXXXXXXXXXXXXXXXXXXXXXXXXXXX
Type=4
PINLength=0
참고로 여기서 Type은 디바이스 종류로 Type=5 는 키보드고, Type=4는 마우스다.
end...
이제 디바이스를 키면, 디바이스는 윈도우키로 계속 연결 시도를 하고 우분투 역시 윈도우키로 디바이스와 페어링 하기 때문에 작동이 된다.
물론 위 방법과 반대로 윈도우에서 윈도우 link key를 얻거나, 우분투가 생성한 link key를 윈도우에 설정 할 수 있지만,
보안 및 권한 문제로 윈도우가 레지스트리 키를 접근 조차도 못하게 해서 얻기가 쉽지 않다.
admin으로 접속을 해도 들어가지 못하기 때문에 우분투에서 윈도우 link key를 가져 오는게 편하다.