带有 Ubuntu 的 Imac(Lubuntu 20.04)-控制风扇速度

带有 Ubuntu 的 Imac(Lubuntu 20.04)-控制风扇速度

情况

我将一台旧的 Imac (2008) 换成了 Lubuntu。虽然它可以顺利地完成我需要做的所有事情,但启动 20 分钟后 CPU 风扇开始变得非常响。以下是 psensor 的屏幕截图:psensor 屏幕截图 psensor 截图

基本上,2 个传感器 TD0D 和 temp1 的温度会升高,直到达到 105°C,从而触发 CPU 风扇速度的增加。该风扇逐渐加速,直到其最大值 3600 RPM,这会使 imac 非常响。这确实会降低这两个传感器的温度,直到 80°C 左右,但这还不足以降低风扇速度。

这很烦人,因为我认为,例如,将固定速度设置为 2000 RPM,温度会稳定在可接受的温度下,希望低于 90°C,而噪音仍然可以接受。

我迄今为止尝试过

我尝试按照此处描述的步骤进行操作:如何控制风扇速度?,因此基本上设置了 lm-sensors,然后在 pwmconfig 的帮助下设置 fancontrol 但是 pwmconfig 回答:没有安装支持 pwm 的传感器模块 即使将模块 applesmc 添加到 /etc/modules 并重新启动后,也没有机会。

我也尝试安装mbpfan:https://github.com/linux-on-mac/mbpfan但它适用于 MacBook,而不适用于 IMac,因此似乎只考虑了一个传感器,然后所有风扇速度同时提高,这对我来说没有帮助(见https://github.com/linux-on-mac/mbpfan/issues/211

我认为可以行得通,但不确定如何

pwmconfig“只是”创建 fancontrol 设置文件的辅助程序。因此,我可以自己制作此设置文件,并为 CPU 风扇设置 200 RPM 的最小速度。但我不确定这是否可行,因为 fancontrol 可能只能控制 PWM 风扇,而 imac 风扇不是 PWM。此外,如果它可以工作,我不确定每个风扇的路径应该放在该文件中,以及在哪里可以找到设置文件的示例。

那么:fancontrol 可以工作吗?如果不行,您还有其他想法吗?

实际上,我意识到问题似乎来自 GPU,因为 temp1 似乎位于 Radeon PCI 部分。我的 imac 有 Radeon RV630 显卡。是不是有更好的驱动程序可以减少发热?这种情况发生在浏览互联网或甚至不做任何事情时,因此与复杂的图形计算无关......

这是传感器的输出,如果有帮助的话

applesmc-isa-0300
Adapter: ISA adapter
ODD :         698 RPM  (min =  700 RPM, max = 4800 RPM)
HDD :        1229 RPM  (min = 1200 RPM, max = 5900 RPM)
CPU :        3602 RPM  (min = 1200 RPM, max = 3600 RPM)
TA0P:         +27.8°C  
TC0D:         +50.5°C  
TC0H:         +49.8°C  
TC0P:         +50.0°C  
TG0D:         +78.8°C  
TG0H:         +66.2°C  
TG0P:         +71.0°C  
TH0P:         +57.8°C  
TL0P:         +58.0°C  
TO0P:         +49.8°C  
ERROR: Can't get value of subfeature temp11_input: I/O error
TW0P:             N/A  
Tm0P:         +53.2°C  
Tp0P:         +82.8°C  

radeon-pci-0100
Adapter: PCI adapter
temp1:        +80.0°C  

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +49.0°C  (high = +105.0°C, crit = +105.0°C)
Core 1:       +59.0°C  (high = +105.0°C, crit = +105.0°C)

非常感谢您的帮助!

答案1

我有一台 2011 iMac,mbpfan这是风扇控制最简单的解决方案。

答案2

首先,我没有运行 Ubuntu,我运行 MX Linux,但由于 MX Linux 兼容 Debian 并且 Ubuntu 具有类似的 Debian 类型基础,因此相同的工具应该可以正常工作。

我刚刚将我儿子那台出故障的 2006 年款 iMac 换成了一台 2010 年款的,我发现之前的主人在安装 SSD 时拆除了 HDD 传感器,所以内部风扇全速运转,转速高达 6000rpm,而且噪音非常非常大。

我只需安装 mbpfan,几秒钟内,无需执行任何其他操作,所有风扇的转速就会降至大约 1200 rpm 并基本保持在该转速。经过一天的使用和使用传感器查看器测量热量范围后,我认为机器运行得有点太热,因此我按照一些简单的说明获取了所需的信息。以下 2 个命令生成了最小和最大风扇速度结果,但请记住 mbpfan 仅控制 CPU 风扇速度。

cat /sys/devices/platform/applesmc.768/fan*_min
cat /sys/devices/platform/applesmc.768/fan*_max

深入挖掘后,我发现这台机器的价值观是

ODD min 1000  max 4350
CPU min 1100  max 6300
HDD min 1200  max 4000

下一个命令识别 CPU 的最高温度,而不是最高温度

cat /sys/devices/platform/coretemp.*/hwmon/hwmon*/temp*_max

无论结果如何,除以 1000 即可得到摄氏度的温度。这台机器的温度是 89000 ÷ 1000 = 89°c

有了这些信息,我只需在 /etc/mbpfan 中编辑 3 行,系统就会随着热量的增加而开始提高风扇速度。我将值从

low_temp = 55
high_temp = 65
max_temp = 88

low_temp = 50
high_temp = 60
max_temp = 85

现在机器运行温度低了几度。随着温度升高,噪音会变大一些,但我们听不到鱼缸里水滴和冒泡的声音,所以还是可以接受的。

简单、有效。

答案3

我注意到了与 Mike Pavletich 相同的事情,并编写了一个 shell 脚本来更轻松地写入这些文件,这不是完美的解决方案,但我可以手动调节它们检查以及sensors命令

https://github.com/juampapo546/fan-control

它已在 2011 年的 iMac 上进行了测试,但它应该可以在较旧的 iMac 上使用

答案4

好的,我稍微进步了一下,在这里回复,希望有一天能对别人有所帮助。

我找到了一种控制我的 imac 的所有 3 个风扇(cpu、HD、光驱)的方法:macfanctld(参见http://manpages.ubuntu.com/manpages/bionic/man1/macfanctld.1.html)我根据这里建议的更改重新编译了它https://github.com/MikaelStrom/macfanctld/pull/11因为它无法控制 CPU 风扇。

所以我现在可以控制我的 3 个风扇,设置最小速度、最低速度和最高速度,这是一个成功!

但即使初始速度很高,启动后 Tp0P 传感器达到 84 度时,我有时仍会遇到爆发。然后 CPU 风扇会加快速度,直到温度降低,但要经过很长时间才能生效,所以通常要 10 分钟,非常响。我认为我无法在任何地方更改此值,这很遗憾,因为我认为它真的不会比这个高得多。

所以我想我还是会研究一下原因:是电源单元 (PSU) 过热了,而不是我之前说的 GPU。我正在考虑在机箱上打孔以被动降低热量,或者以某种方式直接在 PSU 上安装一个新风扇。对机箱进行深度清洁后,PSU 已经降温了几度。

相关内容