快科技 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 形式提交,目的是先就架构方向获取维护者反馈,后续将扩展测试范围并作为正式补丁重新提交。



登录后才可以发布评论哦
打开小程序可以发布评论哦