Windows와 Linux Mint/Ubuntu를 이중 부팅할 때 Bluetooth 장치를 계속해서 다시 페어링해야 할 수도 있습니다. 운영 체제를 전환할 때마다 이런 일이 발생합니다.
이제 이런 일이 발생하지 않도록 어떻게 방지합니까?
나는 테스트한 다음 가이드를 통해 내 질문에 대답하고 있습니다.
- 우분투 14.4
- 우분투 20.04
- 우분투 22.10
- 리눅스 민트 17.X
- 리눅스 민트 18.X
- 리눅스 민트 21.X
- 페도라 25
Windows 측에서는 7, 10 및 11에서 작동합니다.
답변1
왜 이런 일이 발생합니까?
기본적으로 장치를 페어링하면 Bluetooth 서비스는 고유한 페어링 키 세트를 생성합니다. 먼저, 컴퓨터는 Bluetooth 장치의 MAC 주소와 페어링 키를 저장합니다. 둘째, Bluetooth 장치는 컴퓨터의 MAC 주소와 일치하는 키를 저장합니다. 이는 일반적으로 잘 작동하지만 Bluetooth 포트의 MAC 주소는 Linux와 Windows 모두에서 동일합니다(하드웨어 수준에서 설정됨). 따라서 Windows 또는 Linux에서 장치를 다시 페어링하고 새 키를 생성하면 해당 키가 Bluetooth 장치에 이전에 저장된 키를 덮어쓰게 됩니다. Windows는 Linux 키를 덮어쓰며 그 반대의 경우도 마찬가지입니다.
블루투스 LE 장치:이들은 서로 다른 방식으로 쌍을 이룰 수 있습니다. 직접 살펴보진 않았지만 도움이 될 수도 있겠네요듀얼 부팅 Bluetooth LE(저에너지) 장치 페어링
어떻게 고치는 지
아래 지침에 따라 Bluetooth 장치를 Ubuntu/Linux Mint와 먼저 페어링한 다음 Windows와 페어링합니다. 그런 다음 Linux 시스템으로 돌아가 Windows에서 생성된 페어링 키를 Linux 시스템에 복사합니다.
- 모든 장치를 Mint/Ubuntu와 페어링
- 모든 장치를 Windows와 페어링
- 다음 두 가지 방법 중 하나로 Windows 페어링 키를 복사합니다.
psexec -s -i regedit.exe
Windows에서 사용하세요(어려움).psexec
이 값을 표시하려면 충분한 권한이 없는 일반 regedit가 필요합니다 .- 제어판의 "장치 및 프린터"로 이동한 다음 Bluetooth 장치의 속성으로 이동합니다. 그런 다음 Bluetooth 섹션에서 고유 식별자를 찾을 수 있습니다. 복사하세요(나중에 필요함).노트:최신 버전의 Windows에서는 설정 -> Bluetooth 및 장치 -> 장치 ->를 통해 장치 속성에 액세스하세요.추가 장치 및 프린터 설정
- 다음에서 PsExec을 다운로드하세요.http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx.
- 다운로드한 zip의 압축을 풀고 높은 권한으로 cmd 창을 엽니다. (시작 메뉴를 클릭하고 검색한
cmd
후 CMD를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 클릭합니다.) - 다운로드 압축을 푼 폴더에 cd를 넣으세요.
- 달리기
psexec -s -i regedit.exe
- 키를 찾으려면 탐색하세요
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys
. 그렇지 않다면CurrentControlSet
시도해 보십시오ControlSet001
. - MAC 주소가 포함된 일부 키 라벨이 표시되어야 합니다. 앞서 복사한 고유 식별자와 연결된 MAC 주소를 기록해 두세요.노트:만약 있다면보이지 않는 열쇠페어링 후에는 다음이 필요할 수 있습니다.읽기 권한 추가(마우스 오른쪽 버튼 클릭->권한)
Keys\
- 편의상 텍스트 파일로 내보냅니다. 파일->내보내기->텍스트로를 클릭하고 공유 파티션/클라우드에 저장합니다.
Linux 배포판에서 사용하세요
chntpw
(더 쉬움). 그런 다음 터미널에서 시작하십시오.sudo apt-get install chntpw
읽기-쓰기 모드로 Windows 시스템 드라이브 마운트
- 사용할 드라이브를 찾습니다
sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
. 이중 부팅 설정 방법에 따라 이는ntfs
일반적으로 드라이브의 첫 번째 파티션입니다/boot/efi
. 참고하시기 바랍니다NAME
. sudo mkdir /mnt/c
sudo mount --read-only /dev/<NAME> /mnt/c
- 드라이브를 안전하게 마운트 해제
sudo umount /mnt/c
- 다른 드라이브를 시도해야 하거나 이 지침을 모두 완료한 후
- 사용할 드라이브를 찾습니다
cd /[WindowsSystemDrive]/Windows/System32/config
- Windows 10의 경우 루트 폴더는 "Windows"이고, Windows 7의 경우 루트 폴더는 "WINDOWS"입니다.
chntpw -e SYSTEM
콘솔 열기콘솔에서 다음 명령을 실행하세요.
> # If there is no ControlSet001, then try CurrentControlSet > # on Windows 7, "services" below is lowercased. > cd ControlSet001\Services\BTHPORT\Parameters\Keys > ls # shows you your Bluetooth port's MAC address Node has 1 subkeys and 0 values key name <aa1122334455> > cd aa1122334455 # cd into the folder > ls # lists the existing devices' MAC addresses Node has 0 subkeys and 1 values size type value name [value if type DWORD] 16 REG_BINARY <001f20eb4c9a> > # Get the value of the REG_BINARY entry > hex 001f20eb4c9a => :00000 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX ...ignore..chars.. # ^ the XXs are the pairing key
어떤 Bluetooth 장치 MAC 주소가 어떤 페어링 키와 일치하는지 확인하세요. Mint/Ubuntu는 중간에 공백이 필요하지 않습니다. 소홀히 하다
:00000
.
- Linux로 돌아가서(아직 Linux를 사용하지 않는 경우) Linux 구성 항목에 Windows 키를 추가합니다. Windows에서 Linux로 마이그레이션하는 경우 Bluetooth 포트의 MAC 주소 형식이 다릅니다. 위 예에서는 Windows에서 aa1122334455로 참조됩니다. Linux 버전은 모두 대문자이며 두 문자마다 ":"가 표시됩니다(예: AA:11:22:33:44:55). Linux 버전에 따라 다음 중 하나를 수행할 수 있습니다.
- 프리민트 18/16.04다음을 수행할 수 있습니다.
sudo edit /var/lib/bluetooth/[MAC address of Bluetooth]/linkkeys
- [블루투스의 MAC 주소]는 해당 블루투스 폴더 내의 유일한 폴더여야 합니다.파일은 다음과 같아야 합니다.
[Bluetooth MAC] [Pairing key] [digits in pin] [0] AA:11:22:33:44:55 XXXXXXXXxxXXxXxXXXXXXxxXXXXXxXxX 5 0 00:1D:D8:3A:33:83 XXXXXXXXxxXXxXxXXXXXXxxXXXXXxXxX 4 0
Linux 페어링 키를 공백을 제외한 Windows 페어링 키로 변경합니다.
- Mint 18(및 Ubuntu 16.04) 이상다음을 수행해야 할 수도 있습니다.
루트로 전환: (
sudo -i
이전 버전의 Ubuntu에서는 "su -")블루투스 구성 위치로 CD를 이동하세요.
/var/lib/bluetooth/[bth port MAC addresses]
여기서는 페어링한 각 장치에 대한 폴더를 찾을 수 있습니다. 폴더 이름은 Bluetooth 장치의 MAC 주소이며 단일 파일을 포함합니다
info
. 이 파일에는 아래와 같이 Windows 링크 키로 바꿔야 하는 링크 키가 표시됩니다.[LinkKey] Key=B99999999FFFFFFFFF999999999FFFFF
- 프리민트 18/16.04다음을 수행할 수 있습니다.
- 일단 업데이트되면,블루투스 서비스를 다시 시작하세요다음 방법 중 하나를 사용하면 됩니다!
우분투, 민트, 아치:
sudo systemctl restart bluetooth
또는 컴퓨터를 Linux로 재부팅합니다.
- Windows로 재부팅하면 작동합니다!
답변2
[linkKey]
첫째, 많은 답변에서 파일 섹션의 키 교체를 제안합니다 /var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/<DEVICE_MAC_ADDRESS>/info
. 이 섹션은 지금 호출되는 것 같습니다 [LongTermKey]
. 그리고, [LocalSignatureKey]
지금은 그런 것 같습니다 [IdentityResolvingKey]
. 일부 답변에서는 의 키 변경만 언급 [linkKey]
하지만 의 키뿐만 아니라 Enc
및 Ediv
항목 도 필요합니다 .Rand
[IdentityResolvingKey]
둘째, 장치의 MAC 주소가 일정하지 않을 수 있습니다. 제가 사용하는 로지텍 G604의 경우 페어링할 때마다 1씩 증가합니다. 업데이트했습니다이것들스크립트여기이 문제를 해결하기 위해.
지시하다
- Linux로 부팅하고 Bluetooth 장치를 페어링합니다. 새로 생성된 합계가 필요합니다
info
.attributes
/var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/<DEVICE_MAC_ADDRESS>/
- Windows로 재부팅하고 Bluetooth 장치를 페어링합니다.
- 다운로드프로그램 실행그리고 관리자 모드로 실행되는 명령 프롬프트에서 다음 명령을 실행합니다.
PsExec64.exe -s -i regedit /e C:\BTKeys.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys
C:\BTKeys.reg
파일을 USB 플래시 드라이브에 복사합니다 (C:
Linux 운영 체제에서 파일에 액세스할 수 있는 경우 드라이브에 그대로 둡니다).- Bluetooth 장치를 끄고 Linux로 재부팅하십시오. Linux에서 장치를 다시 페어링하지 마십시오. 새로운 MAC 주소가 생성되어 Windows 페어링이 중단될 수 있습니다. (이것이 정상인지는 모르겠지만 Logitech G604에서 발생합니다.)
- 파일을
BTKeys.reg
Linux 파일 시스템에 복사합니다. clean_reg_file.py --file_path BTKeys.reg --output clean.reg
파일을 정리하려면 실행하세요 (인코딩을 UTF8로 변환하고 따옴표 제거).- 달리기
bluetooth_fix.py --reg_path clean.reg
. - 이 있는 터미널에서 로
sudo
이동합니다/var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/
. - 장치의 mac 주소에 해당하는 새 디렉토리를 만듭니다
BTKeys.reg
. info
attributes
이전 Mac 주소 디렉터리에서 새 디렉터리로 복사 합니다 ./var/lib/bluetooth/<ADAPTOR_MAC>/<NEW_DEVICE_MAC>/info
8단계의 출력을 기반으로 값을 열고 수정합니다.- Bluetooth 다시 시작 을 사용하십시오
sudo systemctl restart bluetooth
.