Dell XPS 15 9570 - 如何控制风扇?

我正在双启动Windows 10和Ubuntu 18.04(使用来自link的改版)。一切工作正常,但风扇不断开启和关闭。CPU温度在39-42摄氏度之间。我认为风扇在这个范围内被激活,然后冷却CPU,再次收到停止风扇的信号,依此类推。在Windows上,闲置或轻负载时风扇是完全关闭的。

我已经做了什么

  • lm_sensors:即使在 "sudo sensors-detect" 之后也找不到风扇

  • i8kutils:找不到 /prod/i8k

  • BIOS 升级到版本 1.5.0

  • 内核版本为 4.19.2-041902-generic

  • 已安装并激活 thermald、tlp、powertop 和 intel-microcode。

  • 将显卡设置为 Intel 以节能

    • "sudo prime-select intel"
  • 对核心和 CPU 的电压进行了 -140 mV 的降压,并对 iGPU 进行了 -40 mV 的降压(使用此 link

  • 已安装 smbios-utils 并将其设置为不同模式(平衡、低温、静音、性能)

  • 禁用风扇 BIOS 控制(参见 link

一切都没有任何效果。

我还想做的事情

  • 重新粘贴

统计数据

sudo tlp stat

+++ System Info

System         = Dell Inc. XPS 15 9570
BIOS           = 1.5.0
Release        = Ubuntu 18.04.1 LTS
Kernel         = 4.19.2-041902-generic #201811132032 SMP Tue Nov 13 20:34:19 UTC 2018 x86_64
/proc/cmdline  = BOOT_IMAGE=/boot/vmlinuz-4.19.2-041902-generic root=UUID=5394fef0-92d3-4753-a6a1-fd7b5c4f9cea ro quiet splash quiet acpi_rev_override=1 acpi_osi=Linux scsi_mod.use_blk_mq=1 nouveau.modeset=0 nouveau.runpm=0 mem_sleep_default=deep vt.handoff=1
Init system    = systemd v237
Boot mode      = UEFI

+++ Temperatures
CPU temp               =    43 [°C]
Fan speed              = (not available)

我猜Ubuntu无法检测到风扇,因此无法控制它们。有什么建议可以控制它们吗?
3个回答

我找到了解决自己问题的办法。
使用lm_sensors来查看风扇信息。
dell-smm-hwmon添加到模块中:
sudo su
echo "options dell-smm-hwmon restricted=0 force=1" > /etc/modprobe.d/dell-smm-hwmon.conf
echo "dell-smm-hwmon" > /etc/modules
exit
sudo update-initramfs -u

重启后,风扇应该是可见的:
sensors
dell_smm-virtual-0
Adapter: Virtual device
fan1:           0 RPM
fan2:           0 RPM

掌控风扇的控制权

然后按照这个指南安装i8kutils

sudo apt install i8kutils
sudo su 
echo "i8k" > /etc/modules
echo "options i8k force=1" > /etc/modprobe.d/i8k.conf
exit

重启:
sudo modprobe i8k force=1

配置 i8kutils:
sudo -H gedit /etc/i8kmon.conf

最后,使用TomFreudenberg开发的这个程序来禁用Dell BIOS风扇控制,让接管。
git clone https://github.com/TomFreudenberg/dell-bios-fan-control.git
cd dell-bios-fan-control
make
sudo dell-bios-fan-control 0

只需启动i8kmon服务,它将控制您的风扇。您也可以禁用i8kmon并尝试使用ik8fan手动控制风扇(不建议这样做,因为您可能会关闭风扇,从而使CPU和GPU处于危险之中!)。
i8kfan 2 2

你的/etc/i8kmon.conf文件里有什么内容?当我尝试使用博客文章中提到的细节时,风扇反而以双倍速度运转。 - amarchin
我只是使用了默认的配置文件。只有三种模式可用:关闭、低速、高速。 - J. Ehrling
戴尔 BIOS 风扇控制由 TomFreudenberg 所做的更改是否写入 BIOS 固件?我有一个双系统的 Ubuntu/Windows,希望确保这些 Linux 配置调整不会影响 Windows 下的风扇控制。谢谢!编辑:我仔细按照上述步骤操作,但在使用 dell-bios-fan-control 0 和 i8kmon 守护程序模式时,风扇不会自动转动。当我浏览网页和阅读 PDF 文件时,CPU 温度升高到约 90°C。还有其他需要注意的地方吗,以确保这个方法能正常工作? - remi
更改将写入BIOS,因此请确保在关闭计算机时重新启用控制。看起来Dell BIOS风扇控制是有效的,但你是否尝试过使用i8kfan手动控制风扇?另外,你可以更改/etc/i8kmon.conf以在较低温度下旋转(只是为了检查它是否有效)。如果没有,请确保i8k模块已加载。 - J. Ehrling
如果这对你来说可以的话,Ehrling,请将其标记为已接受的答案。 - tommy61157
2如果你在使用sudo和>组合时,文件重定向会在用户的上下文中进行,这样就会出现权限被拒绝的错误。 - Ferrybig
1你刚刚让我清空了/etc/modules文件吗? - Nicky De Maeyer
我最初只是想监控风扇速度,所以只使用了dell-smm-hwmon部分就可以了。干杯! - chilicheech
非常小心回答,因为它会覆盖你的/etc/modules文件!!在'echo "i8k" > /etc/modules'行中,应该使用>>而不是>。 - aviv
@aviv 我已经运行了那个命令。我不确定/etc/modules/里面是否有任何内容。 - Sudhir Singh Khanger
现在我感觉大部分戴尔的买家都是依靠开源社区来生存的,因为他们没有从官方戴尔那里得到足够的解决方案,而这个问题似乎对Dell XPS来说是非常普遍的。 - Amreesh Tyagi

使用powertop是一种更不会干扰的方法来降低温度(因此不需要风扇)。
 cat /sys/bus/pci/devices/0000\:01\:00.0/power/control # (on?. That is bad)
 sudo powertop --auto-tune
 cat /sys/bus/pci/devices/0000\:01\:00.0/power/control # (auto?. That is good)

为了永久保存更改,请参考如何使Powertop的更改永久生效?。然而,在TLP的帮助文件中提到,“在每次启动时尝试应用powertop的--auto-tune设置将与TLP冲突”。目前,对我来说(XPS 15 9570,bios 1.5)一切正常运行。

我的Dell 9570(Intel i7-8750H)运行Linux Mint 19.1和Windows 10。
Bios版本:1.10.1 内核:4.18.0-21
在Mint上,只需使用Phobya NanoGreace Extreme重新涂抹CPU/GPU后,我在“CPU温度指示器”软件监控下获得了42°C的空闲温度**。这使我在空闲状态下获得了约-7°C的温度降低,而在满负荷运行时效果更加显著。
通过添加Powertop Intel软件(可在软件管理器中获取),我在我的系统上仅获得34°C的空闲温度**,平均接近38°C。
官方网站:https://01.org/powertop/ 首先,我对我的系统进行了Powertop校准(校准过程需要几分钟时间,在此期间计算机部分无法使用),然后执行它。
sudo powertop --calibrate

sudo powertop --auto-tune

查看powertop的手册:https://www.systutorials.com/docs/linux/man/8-powertop/ 要在系统启动时简单地启用Powertop,我在/etc/cron.d中创建了一个名为powertop的cron函数文件,具有执行权限,并包含以下函数内容:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

@reboot root powertop --auto-tune

不要同时使用TLP,会引起冲突。

在Windows上重新涂散热剂后,空闲时的低温为38°C**,平均接近42°C(使用Intel Extreme Tuning Utility软件)。使用Dell Power Manager校准为Optimized(标准)或Silence(静音)模式。我认为Dell Power Manager校准了BIOS以得到此数值,对我来说很满意。Optimized模式似乎是Linux的最佳设置。

我还进行了一些硬件优化:打开空气通风口(位于风扇正中间的底部),在CPU/GPU散热管上添加两个热垫(3 x 1 cm / 17 W/mK),一个在左上方,一个在右上方,正好在风扇前面。

我不喜欢对CPU进行降压,因为Linux似乎不能很好地处理这个。

在所有这些操作下,我在Linux上的空闲温度大约提高了-15°C**。我的笔记本电脑变得非常安静,我终于对它完全满意。

** 最佳分数


你有没有尝试过其他建议,比如i8kutils? - WinEunuuchs2Unix
不,我不使用i8kutils。这是一个旧版本的软件,版本号为1.43,发布于2017年2月7日。我不认为它适用于我的Dell 9570。我的系统工作正常,我不想让它变得不稳定... - phil995511 -
使用tlp时,我遇到了与i8kutils相关的各种问题,导致机器暂停和视频卡顿。 - WinEunuuchs2Unix
这并不让我感到惊讶,因为i8kutils会引起问题。我也不使用TLP。我认为同时运行两个优化程序是不可取的...这可能会导致不稳定性。Powertop工作得很完美。 - phil995511 -