Windows 및 Linux Mint/Ubuntu 듀얼 부팅 시 Bluetooth 페어링 - 장치를 페어링할 필요가 없습니다.

Windows 및 Linux Mint/Ubuntu 듀얼 부팅 시 Bluetooth 페어링 - 장치를 페어링할 필요가 없습니다.

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 시스템에 복사합니다.

  1. 모든 장치를 Mint/Ubuntu와 페어링
  2. 모든 장치를 Windows와 페어링
  3. 다음 두 가지 방법 중 하나로 Windows 페어링 키를 복사합니다.
    • psexec -s -i regedit.exeWindows에서 사용하세요(어려움). psexec이 값을 표시하려면 충분한 권한이 없는 일반 regedit가 필요합니다 .

      1. 제어판의 "장치 및 프린터"로 이동한 다음 Bluetooth 장치의 속성으로 이동합니다. 그런 다음 Bluetooth 섹션에서 고유 식별자를 찾을 수 있습니다. 복사하세요(나중에 필요함).노트:최신 버전의 Windows에서는 설정 -> Bluetooth 및 장치 -> 장치 ->를 통해 장치 속성에 액세스하세요.추가 장치 및 프린터 설정
      2. 다음에서 PsExec을 다운로드하세요.http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx.
      3. 다운로드한 zip의 압축을 풀고 높은 권한으로 cmd 창을 엽니다. (시작 메뉴를 클릭하고 검색한 cmd후 CMD를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 클릭합니다.)
      4. 다운로드 압축을 푼 폴더에 cd를 넣으세요.
      5. 달리기psexec -s -i regedit.exe
      6. 키를 찾으려면 탐색하세요 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys. 그렇지 않다면 CurrentControlSet시도해 보십시오 ControlSet001.
      7. MAC 주소가 포함된 일부 키 라벨이 표시되어야 합니다. 앞서 복사한 고유 식별자와 연결된 MAC 주소를 기록해 두세요.노트:만약 있다면보이지 않는 열쇠페어링 후에는 다음이 필요할 수 있습니다.읽기 권한 추가(마우스 오른쪽 버튼 클릭->권한)Keys\
      8. 편의상 텍스트 파일로 내보냅니다. 파일->내보내기->텍스트로를 클릭하고 공유 파티션/클라우드에 저장합니다.
    • Linux 배포판에서 사용하세요 chntpw(더 쉬움). 그런 다음 터미널에서 시작하십시오.

      1. sudo apt-get install chntpw

      2. 읽기-쓰기 모드로 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
          • 다른 드라이브를 시도해야 하거나 이 지침을 모두 완료한 후
      3. cd /[WindowsSystemDrive]/Windows/System32/config

        • Windows 10의 경우 루트 폴더는 "Windows"이고, Windows 7의 경우 루트 폴더는 "WINDOWS"입니다.
      4. chntpw -e SYSTEM콘솔 열기

      5. 콘솔에서 다음 명령을 실행하세요.

        > # 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
        
      6. 어떤 Bluetooth 장치 MAC 주소가 어떤 페어링 키와 일치하는지 확인하세요. Mint/Ubuntu는 중간에 공백이 필요하지 않습니다. 소홀히 하다 :00000.

  4. Linux로 돌아가서(아직 Linux를 사용하지 않는 경우) Linux 구성 항목에 Windows 키를 추가합니다. Windows에서 Linux로 마이그레이션하는 경우 Bluetooth 포트의 MAC 주소 형식이 다릅니다. 위 예에서는 Windows에서 aa1122334455로 참조됩니다. Linux 버전은 모두 대문자이며 두 문자마다 ":"가 표시됩니다(예: AA:11:22:33:44:55). Linux 버전에 따라 다음 중 하나를 수행할 수 있습니다.
    • 프리민트 18/16.04다음을 수행할 수 있습니다.
      1. sudo edit /var/lib/bluetooth/[MAC address of Bluetooth]/linkkeys- [블루투스의 MAC 주소]는 해당 블루투스 폴더 내의 유일한 폴더여야 합니다.

      2. 파일은 다음과 같아야 합니다.

        [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
        
      3. Linux 페어링 키를 공백을 제외한 Windows 페어링 키로 변경합니다.

    • Mint 18(및 Ubuntu 16.04) 이상다음을 수행해야 할 수도 있습니다.
      1. 루트로 전환: ( sudo -i이전 버전의 Ubuntu에서는 "su -")

      2. 블루투스 구성 위치로 CD를 이동하세요./var/lib/bluetooth/[bth port MAC addresses]

      3. 여기서는 페어링한 각 장치에 대한 폴더를 찾을 수 있습니다. 폴더 이름은 Bluetooth 장치의 MAC 주소이며 단일 파일을 포함합니다 info. 이 파일에는 아래와 같이 Windows 링크 키로 바꿔야 하는 링크 키가 표시됩니다.

        [LinkKey]
        Key=B99999999FFFFFFFFF999999999FFFFF
        
  5. 일단 업데이트되면,블루투스 서비스를 다시 시작하세요다음 방법 중 하나를 사용하면 됩니다!
    • 우분투, 민트, 아치:

      sudo systemctl restart bluetooth 
      
    • 또는 컴퓨터를 Linux로 재부팅합니다.

  6. Windows로 재부팅하면 작동합니다!

답변2

[linkKey]첫째, 많은 답변에서 파일 섹션의 키 교체를 제안합니다 /var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/<DEVICE_MAC_ADDRESS>/info. 이 섹션은 지금 호출되는 것 같습니다 [LongTermKey]. 그리고, [LocalSignatureKey]지금은 그런 것 같습니다 [IdentityResolvingKey]. 일부 답변에서는 의 키 변경만 언급 [linkKey]하지만 의 키뿐만 아니라 EncEdiv항목 도 필요합니다 .Rand[IdentityResolvingKey]

둘째, 장치의 MAC 주소가 일정하지 않을 수 있습니다. 제가 사용하는 로지텍 G604의 경우 페어링할 때마다 1씩 증가합니다. 업데이트했습니다이것들스크립트여기이 문제를 해결하기 위해.

지시하다

  1. Linux로 부팅하고 Bluetooth 장치를 페어링합니다. 새로 생성된 합계가 필요합니다 info.attributes/var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/<DEVICE_MAC_ADDRESS>/
  2. Windows로 재부팅하고 Bluetooth 장치를 페어링합니다.
  3. 다운로드프로그램 실행그리고 관리자 모드로 실행되는 명령 프롬프트에서 다음 명령을 실행합니다.
PsExec64.exe -s -i regedit /e C:\BTKeys.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys
  1. C:\BTKeys.reg파일을 USB 플래시 드라이브에 복사합니다 ( C:Linux 운영 체제에서 파일에 액세스할 수 있는 경우 드라이브에 그대로 둡니다).
  2. Bluetooth 장치를 끄고 Linux로 재부팅하십시오. Linux에서 장치를 다시 페어링하지 마십시오. 새로운 MAC 주소가 생성되어 Windows 페어링이 중단될 수 있습니다. (이것이 정상인지는 모르겠지만 Logitech G604에서 발생합니다.)
  3. 파일을 BTKeys.regLinux 파일 시스템에 복사합니다.
  4. clean_reg_file.py --file_path BTKeys.reg --output clean.reg파일을 정리하려면 실행하세요 (인코딩을 UTF8로 변환하고 따옴표 제거).
  5. 달리기 bluetooth_fix.py --reg_path clean.reg.
  6. 이 있는 터미널에서 로 sudo이동합니다 /var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/.
  7. 장치의 mac 주소에 해당하는 새 디렉토리를 만듭니다 BTKeys.reg.
  8. infoattributes이전 Mac 주소 디렉터리에서 새 디렉터리로 복사 합니다 .
  9. /var/lib/bluetooth/<ADAPTOR_MAC>/<NEW_DEVICE_MAC>/info8단계의 출력을 기반으로 값을 열고 수정합니다.
  10. Bluetooth 다시 시작 을 사용하십시오 sudo systemctl restart bluetooth.

관련 정보