Linux 패치, 드디어 Bluetooth를 통한 Apple Magic Keyboard/Mouse 배터리 모니터링 지원
요약
Linux 커널에서 Bluetooth로 연결된 Apple Magic Keyboard, Mouse, Trackpad의 배터리 잔량을 확인할 수 있도록 하는 패치가 공개되었습니다. 기존에는 USB 연결 시에만 배터리 정보가 노출되었으나, 이번 패치를 통해 무선 연결 시에도 정확한 잔량 보고가 가능해질 전망입니다.
핵심 포인트
- Bluetooth 연결 시 배터리 잔량이 0%로 표시되던 결함 해결
- 정보 가져오기 작업을 워크큐(workqueue)로 이동하여 시스템 락 방지
- Magic Mouse의 충전 상태 보고 기능 추가
- Linux 메인라인 커널 반영을 위한 검토 단계
Linux 패치, 드디어 Bluetooth를 통한 Apple Magic Keyboard/Mouse 배터리 모니터링 지원

Linux는 이미 입력 장치로서 Magic Mouse와 Magic Keyboard를 지원해 왔지만, 배터리 보고가 USB를 통해 연결되었을 때만 작동한다는 한계가 있었습니다... 이는 Bluetooth를 통해 무선으로 연결되었을 때 배터리 잔량이 훨씬 더 중요하기 때문에 그리 유용하지 않습니다. 현재의 Linux 커널 버전은 Bluetooth를 통한 Apple 장치에 대해 배터리 0%를 보고하며, 이는 분명히 전혀 도움이 되지 않습니다.
오픈 소스 개발자 Alec Hall은 Apple Magic Keyboard와 Magic Mouse 2, 그리고 Magic Trackpad 2에 대해 Bluetooth를 통한 배터리 보고가 작동하도록 하는 일련의 패치를 공개했습니다. Alec은 이 주목할 만한 결함을 해결하는 패치 시리즈에 대해 다음과 같이 설명했습니다:
"Apple의 Magic Keyboard와 Magic Trackpad 2 / Magic Mouse 2는 호스트에 배터리 정보를 보고하지만, 커널은 USB를 통해서만 이를 노출합니다. 이 장치들이 거의 항상 Bluetooth를 통해 사용됨에도 불구하고, Bluetooth 상에서의 power_supply는 0%에 멈춰 있습니다.
두 드라이버 모두 이미 배터리 정보(입력 보고 0x90에 대한 GET_REPORT)를 가져오고 있지만 USB를 통해서만 가능합니다. 이를 Bluetooth에서 단순히 활성화하면 시스템이 하드 락(hard-lock)에 걸립니다. 정보 가져오기가 타이머 콜백(atomic context)에서 실행되는데, uhid 전송 계층이 hid_hw_request() 내부에서 슬립(sleep) 상태가 되기 때문입니다. 따라서 각 드라이버의 패치는 Bluetooth에서 활성화하기 전에 정보 가져오기 작업을 워크큐(workqueue)로 이동시킵니다. 마지막 패치는 hid-magicmouse가 장치의 상태 바이트(status byte)로부터 충전 상태를 보고하도록 합니다.
패치 3은 비트 의미가 경험적으로 결정된 벤더 상태 바이트(vendor status byte)를 해석합니다. 리뷰어들이 선호한다면 HID_BAT_CHARGING을 노출하는 리포트 디스크립터 수정(report-descriptor fixup) 방식으로 재작업할 수 있습니다.
BlueZ (uhid) 상에서 Magic Keyboard 2021과 Magic Trackpad 2로 테스트되었습니다."
이 패치들은 현재 검토 중이며, 이를 통해 hid-magicmouse 및 hid-apple 드라이버 개선 사항이 메인라인 Linux 커널에 반영되기를 기대하고 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기