i8kctl 不适用于 Dell Inspiron 风扇控制

i8kctl 不适用于 Dell Inspiron 风扇控制

我正在尝试使用戴尔笔记本电脑的 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_BOOTOperation 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

相关内容