我正在尝试使用戴尔笔记本电脑的 i8kctl 包手动控制风扇速度。
系统 - Ubuntu 16.04,4.17.19-041719-generic Dell 7567 Inspiron
我按照https://askubuntu.com/a/398635答复,成功禁用BIOS风扇控制。
然而,当我这样做的时候
ik8ctl fan 2 2
输出为
-1 -1
我认为这意味着风扇速度设置不成功。
ik8ctl fan 返回0 0
指示没有风扇开启,因为 BIOS 风扇控制已被禁用。
打开 BIOS 控制时我没有遇到任何问题,但有时我需要将风扇速度调到最大,而由于某些奇怪的原因,BIOS 无法做到这一点。
为什么 am8ctl 不能设置风扇速度?
更新:以 root 身份运行
sudo ik8ctl fan 2 2
返回 0 0,而不是之前的 -1 -1。仍然没有按预期工作。
更新2 查看此错误报告解决方案(https://bugs.launchpad.net/i8kutils/+bug/1620580),我强制加载模块
sudo rmmod dell-smm-hwmon
$ sudo modprobe dell-smm-hwmon restricted=0
风扇控制现在可在有限时间内(1 秒)工作。看起来由于某种原因,偏置仍然在控制。
答案1
我找到了适用于我的 Vostro 5481 的解决方案。它也可能适用于您(和其他人)。
必需的
git clone https://github.com/TomFreudenberg/dell-bios-fan-control.git
cd dell-bios-fan-control
make
sudo ./dell-bios-fan-control 0
如果你收到这样的错误
ioperm:: Operation not permitted
ioperm:: Operation not permitted [1]
4701 segmentation fault
您需要进入 BIOS/UEFI 并禁用 SECURE BOOT。然后再次运行该命令。输出现在应该是BIOS CONTROL DISABLED
。
快速测试
现在您可以去检查适合您需求的风扇控制解决方案。如果您想快速测试,可以使用 i8kutils:
git clone https://github.com/vitorafsr/i8kutils
cd i8kutils
make
sudo ./i8kctl fan 2 2
您的风扇现在应该以最高设置运行,而不会受到 BIOS/UEFI 的干扰。
日常工作中控制风扇
现在你的 BIOS/UEFI 不再控制风扇,你必须自己处理它。我建议https://linux.die.net/man/8/fancontrol为此。可以使用pwmonfig
(随附)轻松配置它,并将其自身添加为系统服务。
十分感谢
感谢 Tom Freudenberg 的创建,并在我遇到错误时dell-bios-fan-control
指出我应禁用该功能。 SECURE_BOOT
Operation not permitted
https://github.com/TomFreudenberg
https://askubuntu.com/users/293845/tom-freudenberg。
答案2
在我的情况下,dell-bios-fan-control 最初不起作用,经过一番努力后,我意识到由于某种原因,sudo ./dell-bios-fan-control 0
在手动运行 make 后它可以工作,而不是sudo dell-bios-fan-control 0
(由于 ioperm)。不确定为什么(也许在这期间我禁用了 idrac,这也可能是原因)但无论如何,然后我能够将风扇速度永久设置为 0,这导致我的系统崩溃,最后我做了下面的工作,它起作用了(Dell R415 poweredge,所以服务器很旧)
sudo apt-get install ipmitool # install
sudo ipmitool sdr type fan # check fan speed
sudo ipmitool raw 0x30 0x30 0x01 0x00 # disable automatic control
sudo ipmitool raw 0x30 0x30 0x02 0xff 0x00 # set fan speed to 0x00