驱动之家 12小时前
风扇、传感器、背光拆成独立驱动!Intel Mac的SMC代码终于要现代化了
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

快科技 10 月 30 日消息,Intel Mac 用户在 Linux 下的硬件支持即将迎来一次底层重构。开发者 Atharva Tiwari 近日向内核邮件列表提交了 14 个 RFC 补丁。

他计划用为 Apple Silicon 开发的 macsmc 驱动框架,全面取代服役多年的 applesmc 驱动,让 Intel Mac 的 SMC 支持获得与 M 系列芯片同等级别的模块化能力。

applesmc 驱动的问题在于架构陈旧。它将风扇控制、温度传感器、光线传感器、运动传感器和键盘背光全部塞进单一文件,且通信方式独成一套,导致代码难以扩展,新机型适配成本很高。

而 SMC 在 Intel Mac 与 Apple Silicon 上的工作方式本质相同,差异仅在于与芯片的通信路径,这为代码复用提供了基础。

补丁集的第一步是架构拆分。macsmc 驱动被拆分为通用核心与后端两层,原本为 Apple Silicon 准备的 RTKit 通信代码移入独立后端,同时新增一个专为 Intel Mac 设计的 ACPI 后端。该后端支持传统的 I/O 端口、MMIO 以及中断驱动完成机制,这些能力 applesmc 并不具备。

在此基础上,原本臃肿的单体驱动被切分为多个职责单一的小驱动,统一使用标准内核接口。

新增内容包括基于 SMC 的看门狗驱动,可在系统无响应时重置机器;IIO 框架下的光线与加速度传感器驱动;以及键盘背光 LED 驱动。RTC、电源供应和 hwmon 也获得了针对 Intel Mac 的专门支持。

电源管理同样被重新接管。在启用 macsmc-power 的 Intel Mac 上,内核会主动禁用 acpi-sbs 以及 ACPI 电池与适配器驱动,避免新旧两套机制产生重复设备。

hwmon 部分还补充了 Intel Mac 常用的有符号定点数等数据类型,解决了旧驱动无法读取部分 SMC 键值的问题。

作者已在 MacBook Pro 16,1、iMac 20,1、MacBook Air 4,2、MacBook Pro 12,1 和 MacBook Pro 15,1 等多款 Intel 机型上完成测试,仅运动传感器驱动因未找到对应硬件而尚未验证。

目前该系列以 RFC 形式提交,目的是先就架构方向获取维护者反馈,后续将扩展测试范围并作为正式补丁重新提交。

智客推

智客推

ZAKER 智客推 GEO | AI 时代的品牌认知解决方案

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

intel linux imac 传感器 芯片
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论