Can't write data to applesmc 错误,升级到 Arch linux 内核 5.8.1 后

zeg*_*nix 7 linux linux-kernel

我正在使用来自 Arch User Repository 的当前版本的 mbpfan (mbpfan-git-2.2.1.r4.g52d8973-1-x86_64),在 2010 年年中的 MacBookPro 6,1 上运行 Arch linux(实际上是在外部 USB 上) . Mbpfan 是一个小型守护进程,旨在控制 mac 风扇速度和解决散热问题。

最近从 5.7.12 升级到 5.8.1 内核后,mbpfan 不起作用,出现错误

8 月 20 日 17:19:56 ehost 内核:applesmc:send_byte(0x03, 0x0300) 失败:0x00 8 月 20 日 17:19:56 ehost 内核:applesmc:FS!: 写入数据失败

ehost mbpfan[380]:无法设置风扇速度:输入/输出错误 8 月 20 日 17:21:56 ehost 内核:applesmc:send_byte(0x40, 0x0300) 失败:0x00 Aug 20 17:21:56 ehost 内核:applesmc:F0Tg : 写入数据失败

FS!失败是说,不能将风扇更改为“手动”,而 F0Tg 是第一个尝试写入新速度的风扇。

从在寻找/sys/devices/platform/applesmc.768一个可以看到,即使根只能写fan1_manual,fan1_min和fan1_output,例如。

-r--r--r-- 1 root root 4096 Aug 18 21:00 fan1_input
-r--r--r-- 1 root root 4096 Aug 18 21:01 fan1_label
-rw-r--r-- 1 root root 4096 Aug 18 21:00 fan1_manual
-r--r--r-- 1 root root 4096 Aug 18 21:00 fan1_max
-rw-r--r-- 1 root root 4096 Aug 18 21:00 fan1_min
-rw-r--r-- 1 root root 4096 Aug 18 21:00 fan1_output
Run Code Online (Sandbox Code Playgroud)

当 mbpfan 工作时,上述权限与早期内核相比没有改变。它们在 mbpfan 工作的安装上完全相同(不同的 U 盘,同一台机器)。

权限应该不是问题,据我所知,有人写入“fan1_output”,即 rw,以设置所需的风扇速度(违反直觉)。

作为测试,我将另一个安装有工作的 mbpfan(内核 5.7.9)升级到 5.8.1,同样没有出现写入问题。

--似乎内核中影响mbpfan的东西在5.7.125.8.1之间发生了变化

当然,我已经在开发人员的 git 中心区域报告了这一点。我一直在挖掘代码,但到目前为止我真的对驱动程序一无所知,这很难。- 我真的很感激任何关于我可能会尝试让它工作的建议......