Macbook Air에 Debian을 설치했는데(왜? 재미있어서요.) 실제로 꽤 잘 돌아갑니다.
그러나 "kidle_inject"라는 프로세스가 모든 코어에서 CPU의 100%를 차지하고 있다는 것을 알아차린 후 온도를 확인하고 싶었고 "센서"가 섭씨 96도를 맴돌고 있다고 말했습니다. 팬이 거의 돌아가지 않네요.
나는 OSX에서는 시스템을 켤 때마다 그것이 실행된다는 것을 알아차렸습니다(아마도 조금 전에는 뜨거웠을 것입니다). 반면 Debian에서는 그 소리가 거의 들리지 않고 노트북을 만지면 더 따뜻해 보입니다. 데비안에서.
데비안이 팬을 보다 적극적으로 사용하도록 하는 방법이 있습니까?
답변1
http://allanmcrae.com/2010/05/simple-macbook-pro-fan-daemon/이는 유용한 시작임이 입증되었습니다.
에는 /sys/devices/platform/applesmc.768/
팬 속도를 제어하는 데 유용한 몇 가지 옵션이 있습니다.
여기서 "fan1_min" 및 "fan1_max"는 최소 및 최대 팬 속도이고 "fan1_output"은 팬을 직접 제어하는 설정이며 "fan1_manual"은 시스템이 최소 및 최대 설정을 무시하고 "fan1_output"의 변경 사항에 직접 응답하도록 합니다. ".
이를 자동으로 제어하는 방법은 다음 의제입니다.
편집: 또한 팬을 끄는 것만으로도 시스템이 과열될 위험이 있으므로 이러한 설정에 주의하십시오.
두 번째 편집:
해당 페이지의 정보는 약간 오래된 것 같습니다. 온도 센서 판독값이 페이지에서 제안한 다른 디렉토리가 아닌 팬 설정과 동일한 디렉토리에 있다는 것을 알았기 때문입니다.
세 번째 편집: 해당 페이지의 알고리즘을 기반으로 루트로 실행하면 제대로 작동하는 빠른 Python 스크립트를 작성했습니다.
#!/usr/bin/python
import time
import glob
import math
last_temp = 0
while True:
time.sleep(1)
files = glob.glob("/sys/devices/platform/applesmc.768/temp*_input")
temp = 0
for file in files:
with open(file) as openfile:
sensor_temp = openfile.read()
temp = max(int(sensor_temp)/1000, temp)
with open("/sys/devices/platform/applesmc.768/fan1_input") as fan1_input:
current_speed = int(fan1_input.read())
increasing = temp > last_temp
last_temp = temp
if increasing:
if temp <= 65:
speed = max(current_speed, 2000)
elif 65 < temp < 80:
step = (6200 - 2000) / ((80 - 65) * (80 - 64) / 2)
speed = max(current_speed, math.ceil(2000 + (temp - 65) * (temp - 64) / 2 * step))
elif temp >= 80:
speed = 6200
else:
if temp >= 80:
speed = 6200
elif 55 < temp < 80:
step = (6200 - 2000) / ( (80 - 55) * (80 - 54) / 2 )
speed = min(current_speed, math.floor(6200 - (80 - temp) * (81 - temp) / 2 * step))
elif temp <= 55:
speed = 2000
print "Temperature: " + str(temp) + " Increasing?: " + str(increasing) + " Current speed: " + str(current_speed) + " Target: " + str(speed)
with open("/sys/devices/platform/applesmc.768/fan1_min", "w") as fan1_input:
#with open("/home/werner/testtemp", 'w+') as fan1_input:
fan1_input.write(str(int(speed)))