증상

노트북(Acer Nitro, Windows 11)에서 블루투스가 통째로 사라졌다.

  • 설정에 블루투스 On/Off 토글이 아예 없다
  • 장치 관리자에 "Bluetooth" 카테고리 자체가 없다
  • 대신 USB 컨트롤러 아래에 노란 경고 아이콘이 하나 떠 있다: Unknown USB Device (Device Descriptor Request Failed)
  • 재부팅해도 그대로다
  • Wi-Fi 는 멀쩡하다

진단: 저 정체불명 장치가 범인일까

이 노트북의 무선 카드는 MediaTek MT7921 이다. Wi-Fi 와 블루투스가 한 장에 같이 붙어있는 콤보 카드인데, 구조가 이렇다.

  • Wi-Fi 는 PCIe 로 연결. 그래픽카드나 SSD 가 쓰는 그 고속 통로다
  • 블루투스는 내부 USB 로 연결. 겉으로는 안 보이지만, 메인보드 안쪽에서 USB 포트 하나를 차지하고 있다

즉 카드는 하나지만 통로가 둘이라, 한쪽만 죽을 수 있다. Wi-Fi 가 멀쩡한데 블루투스만 사라진 게 딱 그 모양이었다.

결정적 단서: 둘의 주소가 같았다

Windows 는 모든 장치에 대해 "이게 메인보드의 어디에 꽂혀 있는가"를 주소로 기록해둔다. 집 주소가 "시 → 구 → 동 → 번지" 순으로 좁혀지듯, 이 주소도 큰 부품에서 작은 자리로 좁혀진다. 그래서 두 장치의 주소를 뽑아 비교해봤다.

장치 Windows 가 기록한 주소
정체불명 USB 장치 ...#ACPI(XHCI)#ACPI(RHUB)#ACPI(HS10)
사라진 블루투스 라디오 (원래 자리) ...#ACPI(XHCI)#ACPI(RHUB)#ACPI(HS10)#USBMI(0)

암호처럼 보이지만 조각을 하나씩 떼어보면 별거 아니다.

조각 읽는 법
ACPI 메인보드가 "내 부품들은 이렇게 배치돼 있다"고 운영체제에 알려주는 표준 규격. 여기서는 "메인보드 기준 주소"라는 표시 정도로 읽으면 된다
XHCI USB 컨트롤러. USB 포트 전체를 관장하는 칩이다
RHUB 루트 허브 (root hub). 그 컨트롤러에 매달린 포트들의 뿌리다
HS10 10번 포트. HS 는 High Speed(고속)의 약자다
USBMI(0) 그 포트에 꽂힌 장치의 0번 통로. 포트보다 한 단계 더 안쪽이라는 뜻이다

정리하면 두 줄 다 "USB 컨트롤러 → 루트 허브 → 10번 포트" 를 가리킨다. 같은 자리다.

그리고 10번 포트는 이 노트북에서 내부 무선 카드가 물려있는 자리다. 블루투스 라디오가 원래 앉아있던 그 자리에, 지금은 정체불명 장치가 앉아있다. 즉 저 "정체불명 USB 장치"는 다른 무언가가 아니라 블루투스 라디오 본인이었다. 켜지려다 실패해서 이름표를 못 달고 있었을 뿐이다.

정황 증거도 하나 더 있다. 두 장치의 MAC 주소(네트워크 장치마다 부여되는 고유 번호)가 딱 1 차이 나는 연속 주소였다. Wi-Fi 가 ...:93 으로 끝나는데 블루투스가 ...:92 로 끝나는 식이다. 콤보 모듈이 두 기능에 연속된 번호를 할당하는 건 흔한 관행이라 같은 모듈이라는 심증을 굳혀준다. 다만 이건 어디까지나 방증이고, 확증은 포트 위치가 같다는 사실 쪽이다.

원인: 펌웨어가 멈춰 있었다

여기서 헷갈리기 쉬운 게 있다. "Device Descriptor Request Failed" 는 에러 코드가 아니라 장치 이름이다. 둘은 별개다.

  • 이름: Unknown USB Device (Device Descriptor Request Failed) - USB 드라이버가 장치의 자기소개를 못 받아냈을 때 임시로 붙여주는 이름이다
  • 에러 코드: Code 43 - "드라이버가 이 장치에 문제가 있다고 보고했다"는 뜻이다. 공식 문서상 정식 명칭은 CM_PROB_FAILED_POST_START [1]

USB 장치는 연결되면 "나는 이런 장치야"라고 자기 소개를 보내야 한다. 이 자기소개 데이터를 장치 서술자(descriptor)라고 부른다. 응답이 없으면 Windows 는 그 장치를 정체불명으로 처리하고, 이름표 대신 위 문구를 붙인다.

즉 블루투스 칩이 전기는 들어와 있는데, 켜지다 말고 멈춰 있는 상태였다. 여기서 멈춘 건 Windows 가 아니라 칩 안의 펌웨어(firmware)다. 펌웨어는 칩 자체에 심어져 있는 작은 프로그램으로, Windows 와는 별개로 돌아간다. 이 구분이 이 글의 핵심이다. Windows 를 아무리 다시 켜도, 칩 안에서 멈춰버린 펌웨어는 그대로 남을 수 있다.

해결: 잔류 전원 빼기

  1. 완전 종료
  2. 충전기 분리
  3. 전원 버튼 길게 누르기 (Dell 공식 문서 기준 20초 [2]. 나는 넉넉하게 40~60초 눌렀다)
  4. 다시 켜기

끝. 블루투스가 즉시 돌아왔고, 페어링해둔 기기 6대(에어팟 2, 헤드셋, 키보드 2, 마우스)가 전부 다시 잡혔다.

왜 재부팅으로는 안 되고 이건 되나

여기가 이 글에서 제일 재밌는 부분이다.

핵심은 소프트웨어를 다시 켜는 것과, 칩에서 전기를 실제로 빼는 것은 다른 일이라는 점이다.

재부팅은 Windows 를 처음부터 다시 올린다. 소프트웨어 관점에선 완전한 초기화다. 하지만 재부팅은 보드에서 전기를 빼지 않는다. 멈춘 게 Windows 가 아니라 칩 안의 펌웨어였으니, 전기가 계속 들어오는 한 그 칩은 멈춘 그대로 남아있다. 재부팅을 아무리 해도 안 풀렸던 이유가 이거다.

빠른 시작(Fast Startup) 은 한술 더 뜬다. 이건 종료할 때 Windows 의 핵심부와 드라이버 상태를 통째로 파일 하나에 저장해두고(최대 절전 모드가 쓰는 그 hiberfil.sys 파일이다), 다음에 켤 때 그 저장본을 되살리는 방식이다 [3]. 즉 "종료 후 켜기"를 해도 장치들이 처음부터 초기화되는 게 아니라 저장된 상태로 되살아난다. 이상한 상태까지 같이 되살아날 수 있다는 뜻이다.

여기서 반전이 하나 있다. Windows 의 "다시 시작"은 빠른 시작 경로를 타지 않고 항상 완전히 처음부터 부팅한다 [3:1]. 그러니까 소프트웨어를 깨끗하게 초기화하고 싶다면 "종료 후 켜기"보다 "다시 시작"이 오히려 낫다. 직관에 어긋나지만 사실이다. 다만 이번 문제는 소프트웨어가 아니라 칩의 전기가 문제였으니, 둘 다 소용없었다.

그럼 완전 방전은 뭐가 다른가. 메인보드에는 전기를 잠깐 담아두는 축전기(capacitor) 가 많고, 전원을 꺼도 여기엔 미세한 전기가 남는다. Dell 은 이걸 flea power(잔류 전원) 라고 부르며, "전원을 끄고 배터리를 빼도 메인보드 축전기에 남아있는 전기"라고 공식 문서에 정의해뒀다 [2:1]. 충전기를 뽑은 채로 전원 버튼을 길게 누르면, 보드가 켜지려 하는데 공급되는 전기가 없으니 축전기에 남은 그 전기를 끌어다 쓰면서 소진해버린다. 그제서야 칩이 진짜로 전기가 끊긴 상태가 되고, 다시 켤 때 펌웨어가 처음부터 올라온다.

흔한 오해 하나: 이건 배터리를 방전시키는 게 아니다. Dell 의 정의가 그대로 답이다. 배터리를 아예 빼도 flea power 는 남는다. 즉 빠지는 건 보드 축전기에 갇힌 미세한 전하이지 배터리 잔량이 아니다. 원래는 배터리까지 분리하는 게 가장 확실하지만(Dell 공식 절차도 배터리 분리를 포함한다), 요즘 노트북은 배터리가 내장형이라 뜯기 번거로우니 "충전기 분리 + 전원 버튼 길게 누르기"가 현실적인 대체 방법인 셈이다.

교훈

  1. "장치가 없다"와 "장치가 이름을 못 달았다"는 다르다. 장치 관리자에서 블루투스가 안 보인다고 카드가 죽은 게 아니다. 정체불명 USB 장치의 정체를 파보니 그게 블루투스였다.

  2. 위치가 가장 강력한 증거다. "이 정체불명 장치가 블루투스인 것 같다"는 추측이지만, "둘이 같은 포트에 앉아있다"는 확증이다. 하드웨어 문제는 심증으로 좁히지 말고 위치로 특정하자.

  3. "다시 켜기"와 "전기 빼기"는 다른 조치다. 재부팅은 소프트웨어를 처음부터 올리지만 칩에서 전기를 빼지는 않는다. 멈춘 게 드라이버가 아니라 칩 안의 펌웨어라면 재부팅으로는 영영 안 풀린다. 펌웨어가 멈춘 듯한 증상(Code 43, 장치 인식 실패)이면 방전을 먼저 시도하자. 제조사가 공식 문서에 넣어둔 표준 절차이고 [2:2], 부품을 건드리지 않으니 비용도 들지 않는다.

  4. 빠른 시작을 꺼두면 재발이 덜하다. 빠른 시작이 켜져 있으면 종료해도 장치가 저장해둔 상태에서 되살아난다. 끄면 종료할 때마다 장치가 처음부터 초기화되고, 부팅이 몇 초 느려지는 게 대가다. 레지스트리 값 하나(HiberbootEnabled = 0)로 끌 수 있다. powercfg /h off 명령으로도 꺼지지만 이건 최대 절전 모드까지 같이 없애버리니 주의.

참고 자료


  1. Microsoft Learn, CM_PROB_FAILED_POST_START - "Error Code: 43", 표시 메시지 "Windows has stopped this device because it has reported problems. (Code 43)" ↩︎

  2. Dell 공식 서비스 매뉴얼, Drain residual flea power (perform hard reset) - "flea power 는 전원을 끄고 배터리를 제거한 뒤에도 메인보드 축전기에 남아있는 잔류 전기"이며, 전원 버튼을 20초간 눌러 방전시키라고 안내한다 ↩︎ ↩︎ ↩︎

  3. Microsoft Learn, Distinguishing Fast Startup from Wake-from-Hibernation - 빠른 시작은 커널 세션과 드라이버를 hiberfil.sys 에 저장했다가 복원하는 하이브리드 종료다. "다시 시작"은 이 경로를 타지 않는다 ↩︎ ↩︎