Linux, Apple Silicon SoC의 복잡한 센서 문제 해결 중
요약
Apple Silicon SoC의 복잡한 센서 데이터를 Linux 커널에서 정확히 보고하기 위한 하드웨어 모니터링(HWMON) 작업이 진행 중입니다. James Calligeros는 일관성 없는 SMC 펌웨어 키-값 시스템을 체계적으로 정리하기 위해 Devicetree 노드를 분리하는 패치 시리즈를 공개했습니다.
핵심 포인트
- Apple Silicon의 불규칙한 센서 데이터 노출 문제 해결 시도
- Devicetree(.dtsi)를 활용한 센서 데이터 구성 체계화
- SoC 및 장치 클래스별로 센서 노드를 분리하여 중복 제거
- Linux 환경에서 Apple Mac의 전력 및 열 모니터링 기반 마련
Linux, Apple Silicon SoC의 복잡한 센서 문제 해결 중

Apple Silicon Linux 기여자인 James Calligeros는 Apple Silicon 센서로부터 온도, 전압, 전력 및 팬 속도 데이터를 Linux에서 제대로 보고받기 위해 Apple SMC 하드웨어 모니터링 (HWMON) 노드를 정리하여 이 혼란을 해결하는 작업을 진행해 왔습니다. 이 문제를 해결하기 위한 최신 패치 시리즈가 오늘 Linux 커널 메일링 리스트(Linux kernel mailing list)에 공개되었습니다.
James는 다양한 Apple Silicon SoC에 걸쳐 하드웨어 센서가 얼마나 무질서하게 변하는지에 대한 상황을 다음과 같이 설명했습니다:
"SMC hwmon 드라이버를 추가했던 시리즈에 이어, 이번 시리즈는 hwmon 드라이버가 작동하는 데 필요한 Devicetree 노드를 분리하여 추가합니다. 이 노드들은 지난 12월에 누락되었던 것들입니다.
Apple Silicon 장치의 시스템 관리 컨트롤러(System Management Controller)는 SoC 및 장치 전반에 흩어져 있는 수많은(잠재적으로 수백 개에 달하는) 센서로부터 온도, 전압, 전력 및 팬 속도 데이터를 노출합니다. 불행하게도 Apple이 SMC 펌웨어의 FourCC 키-값(key-value) 시스템을 사용하여 이를 노출하는 방식에는 일관된 규칙이나 논리가 거의 없습니다. 전체 플랫폼의 총 전력 소비를 측정하는 PSTR과 같이 모든 장치와 모든 SoC에서 안정적으로 공통되는 센서가 있는가 하면, 팬이 있는 장치에만 존재하는 팬 제어 키와 같이 특정 장치 클래스에만 국한되는 것도 있습니다. 어떤 것들은 단일 SoC에만 특화되어 있고, 또 어떤 것들은 단일 장치에만 특화되어 있습니다. 상황을 더욱 복잡하게 만드는 것은 일부 SoC조차 장치 간에 일관되지 않다는 점입니다. 특정 SoC의 애플리케이션 코어 온도 센서는 해당 SoC가 탑재된 장치에 따라 서로 다른 키에서 읽힙니다...
이 모든 것을 모든 장치의 Devicetree에 표현하려고 시도하는 것은 무모한 일입니다. 중복을 제거하기 위해, 우리는 대신 .dtsi 파일을 사용하여 각 장치에 대한 센서 세트를 더 합리적인 방식으로 구성합니다:
-
모든 장치의 모든 SoC에 존재함이 경험적으로 증명된 센서들은 hwmon-common.dtsi에 포함됩니다.
-
특정 SoC를 탑재한 모든 장치에 존재함이 경험적으로 증명된 센서들은 현재 PMGR 및 GPIO를 처리하는 방식과 유사하게 SoC 전용 hwmon-${soc}.dtsi 파일에 포함될 수 있습니다.
-
특정 클래스의 모든 장치에 존재함이 경험적으로 증명된 센서들은 hwmon-${class}.dtsi (예: hwmon-laptop.dtsi)에 포함됩니다.
-
팬 제어 엔드포인트 (Fan control endpoints)는 팬이 있는 모든 장치에서 안정적으로 공통되므로, hwmon-fan-*.dtsi를 #include 하게 됩니다.
-
단 하나의 장치에만 특화된 센서들은 해당 장치의 특정 .dts 파일에 표현될 수 있습니다.
이 시리즈에서는 본격적인 시작을 위해 우리가 알고 있는 몇 가지 기본적인 센서들을 소개합니다. 상상하시겠지만, 모든 장치에서 유효한 모든 센서를 찾아내고 그것이 실제로 무엇을 측정하는지 파악하는 것은 지루하고 노동 집약적인 과정이므로, 향후 어느 시점에 더 많은 센서가 추가될 것을 예상해 주시기 바랍니다.
완전히 해결하기까지는 시간이 걸릴 불행한 혼란스러운 상황이지만, 적어도 Linux에서 Apple Mac의 전력 및 열 모니터링 (thermal monitoring) 등에 관심이 있는 이들을 위한 센서 처리 방식을 정리하는 데 진전이 이루어지고 있습니다. 이와 동시에, 매우 제한적인 기능으로 Apple M4를 Linux에서 부팅하기 위한 디바이스 트리 (Device Trees) 패치 리뷰와 M3 Pro / Max / Ultra 하드웨어를 부팅하기 위한 리뷰도 계속 진행되고 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기