질문
나는 내 컴퓨터의 팬이 불필요하게 최고 속도로 켜지고 있다는 것을 깨닫기 시작했고, 이를 제어하기 위해 i8kmon 서비스를 설치했습니다. BIOS 팬 제어를 수동으로 비활성화할 때까지 i8kmon은 i8kfan 명령을 사용하여 팬을 제어할 수 없는 것으로 보입니다.
내 설정
- 델 XPS 13 9380
- 우분투18.04
통나무
서비스가 실행 중입니다.
root@pl438-pro:/home/inzaghi# /etc/init.d/i8kmon status
● i8kmon.service - Dell laptop thermal monitoring
Loaded: loaded (/lib/systemd/system/i8kmon.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-05-07 09:58:26 CEST; 20min ago
Docs: man:i8kmon
Main PID: 1222 (tclsh)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/i8kmon.service
└─1222 tclsh /usr/bin/i8kmon --nouserconfig
mai 07 10:18:40 pl438-pro i8kmon[1222]: temp, left fan state, right fan state, ac state: 50 0 0 0
서비스가 고온을 감지했지만 명령이 무시되었습니다.
May 7 10:14:32 pl438-pro i8kmon[1222]: temp, left fan state, right fan state, ac state: 65 0 0 0
May 7 10:14:32 pl438-pro i8kmon[1222]: # (65>=65), state=1, low=55, high=75
May 7 10:14:32 pl438-pro i8kmon[1222]: /usr/bin/i8kfan 1 1
May 7 10:14:34 pl438-pro i8kmon[1222]: temp, left fan state, right fan state, ac state: 65 0 0 0
구성 파일/etc/i8kmon.conf
# Sample i8kmon configuration file (/etc/i8kmon.conf, ~/.i8kmon).
set config(use_conf) 1
set config(auto) 1
# External program to control the fans
set config(i8kfan) /usr/bin/i8kfan
# Report status on stdout, override with --verbose option
set config(verbose) 1
# Status check timeout (seconds), override with --timeout option
set config(timeout) 2
# Temperature threshold at which the temperature is displayed in red
set config(t_high) 80
# Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt}
# These were tested on the I8000. If you have a different Dell laptop model
# you should check the BIOS temperature monitoring and set the appropriate
# thresholds here. In doubt start with low values and gradually rise them
# until the fans are not always on when the cpu is idle.
set config(0) {{0 0} -1 60 -1 65}
set config(1) {{1 1} 50 70 55 75}
set config(2) {{2 2} 60 80 65 85}
set config(3) {{2 2} 70 128 75 128}
# Speed values are set here to avoid i8kmon probe them at every time it starts.
set status(leftspeed) "0 1000 2000 3000"
set status(rightspeed) "0 1000 2000 3000"
# end of file
해결책
서비스를 다시 시작해도 /etc/init.d/i8kmon
아무 것도 변경되지 않았습니다. BIOS도 팬을 제어하려고 하는 것을 발견하여 BIOS를 설치했습니다.https://github.com/TomFreudenberg/dell-bios-fan-control스냅샷을 사용하면 실행이 /snap/dell-bios-fan-control/2/dell-bios-fan-control 0
원활하게 진행됩니다.
이 설정은 BIOS에 영구적으로 저장되어 있는 줄 알았는데, 컴퓨터를 켤 때마다 실행해야 할 것 같습니다. 서비스로 추가해야 하나요?
답변1
dell-bios-fan-control 0
편집 2: 마침내 해결 방법을 더욱 "깨끗하게" 만들었습니다. 시작 시 실행되는 서비스를 만들었습니다.
편집: 더 이상 작동하지 않거나 매우 무작위로 작동합니다. 작동하려면 여전히 실행 /snap/dell-bios-fan-control/2/dell-bios-fan-control 0
하고 재부팅 해야 합니다 .i8kmod
다음과 같이 구성 파일 dell-smm-hwmon
에 모듈을 추가하는 것을 잊은 것 같습니다 ./etc/modules
/etc/modprobe.d/dell-smm-hwmon.conf
options dell-smm-hwmon restricted=0
지금은 작동하기 위해 아무것도 설정할 필요가 없습니다.
답변2
Dell-bios-fan-control의 스냅 버전이 Ubuntu 22.04 및 Dell Precision 5520에서 충돌합니다.
# dell-bios-fan-control 0
ioperm:: Operation not permitted
ioperm:: Operation not permitted
Segmentation fault (core dumped)
소스에서 컴파일했습니다 - https://github.com/TomFreudenberg/dell-bios-fan-control——드디어 팬들을 멈추게 만들었습니다!