Just a Blog

동일한 PC/시스템에서 듀얼부팅하는 서로 다른 OS(Linux, macOS) 내 동일 블루투스 장비 페어링 방법 본문

IT, Computer

동일한 PC/시스템에서 듀얼부팅하는 서로 다른 OS(Linux, macOS) 내 동일 블루투스 장비 페어링 방법

wehong 2021. 4. 19. 12:35

1. 문제 상황

한 대의 PC에서 서로 다른 OS(Windows, Linux, macOS 등)를 다중부팅(multi-booting)해서 사용하는 사용자들이 있을 것이다. 이런 환경에서 그 PC에 동일한 블루투스(bluetooth) 장비를 각 OS에 모두 사용하려면 문제가 발생한다. 블루투스 장비의 입장에서 보면 자신이 접속해야 할 블루투스 MAC 어드레스는 하나인데(하드웨어(블루투스 모듈)에 할당되므로 OS 간에 동일하다) 페어링 키는 OS 별로 서로 다르게 설정되게 되므로, 마치 하나의 접속대상이 다른 키를 사용하는 것 처럼 보여지기 때문이다. 경험 상, 블루투스 연결 채널이 3개인 블루투스 하드웨어도 접속하려는 MAC 어드레스가 동일한 장비에 대해 키 값만 달리 해서 채널 별로 별도로 연결되지는 않았다.

개인적으로 Linux(Ubuntu 18.04)와 macOS(Mojave)를 듀얼부팅하는 맥 미니(2012년형)에 블루투스 키보드와 마우스를 붙이려고 하면 하나의 장비에 두 환경에 동시에 적용이 안되었다.

 

2. 일반적 해결방법

모든 블루투스 장치에 대한 해결 방법은 아니지만 키보드 등의 단순 페어링 장치의 경우 askubuntu.com에 올라 온 글을 참조하여 해결했다. 절차를 대충 해석하면 다음과 같다.

(1) Linux(Ubuntu)로 부팅해서 페어링

(2) macOS로 부팅하여 페어링

(3) macOS의 터미널에서 'sudo defaults read com.apple.bluetoothd.plist LinkKeys'를 입력하여 결과를 확인하고 저장. 출력 내용을 보면 PC의 블루투스 MAC address가 보이고 그 아래 페어링된 장비의 블루투스 MAC 어드레스와 링크키(link key)가 나와 있다.

(4) 블루투스 장비 전원 off

(5) Linux로 부팅하고 터미널에 'sudo service bluetooth stop'를 입력하여 블루투스 서비스 중지

(6) Linux의 'var/lib/bluetooth' 디렉토리 아래에 (3)에서 확인한 PC의 블루투스 MAC 어드레스와 동일한 디렉토리가 있는지 확인 (macOS에서 '01-02-03-04-05-06'의 형식이었다면 Linux에서는 '01:02:03:04:05:06'의 형식임)

(7) 'sudo gedit /var/lib/bluetooth/01\:02\:03\:04\:05\:06/1A\:1B\:1C\:1D\:1E\:1F/info'과 같은 명령으로 파일 확인. '01\:02\:03\:04\:05\:06' 자리는 (6)에서 확인한 PC의 블루투스 MAC 어드레스이고, '1A\:1B\:1C\:1D\:1E\:1F' 자리는 (3)에서 확인한 장비들의 블루투스 MAC 어드레스

(8) 파일에 Key라는 항목에 (3)에서 확인한 링크키를 변환하여 입력. 변환하는 방식은, 터미널에 " echo <<(3)에서 확인한 Link Key값>> | sed 's/ //g;s/../\U&\n/g' | tac | tr -d '\n'"를 입력(예. echo fe998c62 4bb29a7c 40b2e670 10db71ed | sed 's/ //g;s/../\U&\n/g' | tac | tr -d '\n')하여 터미널에 출력된 값 사용.

(9) 터미널에 'sudo service bluetooth start'를 입력하여 블루투스 서비스 시작

(10) 블루투스 장치의 전원을 on하여 동작 여부 확인

(11) macOS로 재부팅하여 동작여부 확인

 

3. 문제점

키보드(로지텍 K810)의 경우 위와 같은 방법이 동작했으나 마우스(로지텍 MX Master)는 이와 같은 방식으로 동작하지 않았다. 마우스의 경우 좀 더 복잡한 방식으로 페어링 하는 것 같다.

관련 문서를 참조하여 macOS의 터미널에서 'sudo defaults read /private/var/root/Library/Preferences/blued.plist'를 입력하면 블루투스 연결에 대한 자세한 정보가 나오는데, MX Master의 경우 IRK, ITK 등 다양한 키가 존재하며 Linux 쪽 Info 파일의 내용과 맵핑시키기 쉽지 않았다.

 

 

 

 

 

 

Comments