CPU 클럭 조절하기
글쓴이: 병맛 / 작성시간: 화, 2007/08/28 - 4:50오후
그놈의 cpu scaling applet은 그놈 패널에만 올라가는 애플릿이므로, 플럭스박스에서도 CPU 클럭수를 조절하는 방법을 궁리해봤다.
1)
chmod o+x /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq chmod o+x /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
두 파일에 일반 계정의 쓰기 권한을 추가하라. 코어1 듀오이므로 cpu0, cpu1 양쪽 모두 해야 한다.
rc.local 스크립트 같은 데에 넣고선 부팅 시 자동 실행하게 해놓으면 대략 좋다.
저 파일이 없다면? 나도 모르겠다. 아마 CPU Frequency scaling 모듈인 ondemand니 performance하는 걸
주렁주렁 띄우면 될 것이다. 커널 컴파일 시 make menuconfig를 실행하여 CPU Frequency scaling 부분을
잘 참고하라.
2)
cpufreq 디렉터리 안에 FSB_base_frequency 파일을 열면 CPU가 사용하는 클럭수를 살펴볼 수 있다.
Macbook:/sys/devices/system/cpu/cpu0/cpufreq]# cat FSB_base_frequency Base FSB frequency computed from operating points table: 166667 kHz (2000000 / 12) 166636 kHz (1833000 / 11) 166700 kHz (1667000 / 10) 166667 kHz (1500000 / 9) 166625 kHz (1333000 / 8) 166667 kHz (1000000 / 6)
보기에선 2000000, 1833000, 1667000, 150000, 1333000, 100000을 사용할 수 있다.
(2.0, 1.8, 1.6, 1.5, 1.3, 1.0Ghz)
3)
echo 명령으로 적당한 값을 scaling_max_freq에 집어 넣으라. 풀로드 시 해당 클럭까지만 올라가게 된다.
echo "2000000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq; echo "2000000" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
4)
이제 이걸 플럭스박스 메뉴에서 할 수 있게 해보자. ~/.fluxbox/usermenu 파일에 다음 내용을 추가하라.
[submenu] (CPU 클럭) {} [exec] (2.0GHz) {echo "2000000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq; echo "2000000" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq} [exec] (1.8GHz) {echo "1833000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq; echo "1833000" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq} [exec] (1.5GHz) {echo "1500000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq; echo "1500000" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq} [exec] (1.3GHz) {echo "1333000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq; echo "1333000" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq} [exec] (1.0GHz) {echo "1000000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq; echo "1000000" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq} [end]
그리고나서 fluxbox-generate_menu를 실행하면 새로 메뉴가 갱신되고 클럭수를 조절할 수 있다.
5)
잘 안 되면 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 파일 내용을 확인해볼 것
demand여야 한다. 맥북의 경우 2.6.22 커널에서 Suspend 후 Resume 시 CPU1의 scaling_governor가
performance로 된다. 버그인듯. echo를 써서 다시 demand로 고치면 된다.
echo -n "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
댓글
혹시....
http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html
요기는 가보셨나요?
Gentoo사용자이시면, emerge sys-power/cpufrequtils 를...
제가 이것저것 사용해 봤지만 이게 가장 낫더군요.
cpufreq-set --help
There is no spoon. Neo from the Matrix 1999.
There is no spoon. Neo from the Matrix 1999.
cpufreq-utils는 루트
cpufreq-utils는 루트 권한이 있어야 하네요. 뭐 sudo에 추가하면 되지만...
CPU 스케일링을 설정하려는 게 랩톱에서 배터리 모드 시 사용 시간을 늘릴 수가 있죠.
배터리 사용 시 최고 클럭이 필요한 작업을 하는 것도 아니고...
흠... cpufreq-utils 때문이려나... 제 방법보다 CPU 온도가 대략 7도쯤 내려갑니다.
하앜하앜... 현재 플래시 재생하느라 2GHz인데 43도... ;;
---------------------------------------------------------------------------------------------------------------------------------------------
제가 볼때는 방법에 차이가 아니라 다른 요인이 있는 것 같습니다.
소스를 보시면 아시겠지만, cpufrequtil이나 본문의 echo로 sys에 값을 써 넣는 것이나 거의 차이가 없습니다.
cpufreqd 같은 경우는 데몬형태로 돌면서 acpi,lm_sensors,pmu,tau 등과 연동해서 전력소모, 배터리 잔량이나 온도등에 적절히 대응하는 보다 유연하고 섬세한 정책이 구현가능하지만, 일반 데스크탑 사용자인 저로서는 cpufrequtil로도 충분하더군요. 노트북 사용하시다면, cpufrequtil보다는 cpufreqd 쪽이 나을 수도 있을 것 같군요.
저 같은 경우 거버너를 ondemand로 해놓고 그냥 씁니다. 이따금, dosbox 같은 것 돌릴때 timidity의 sync가 안맞는 경우,
거버너를 performance로 바꾸고 min을 최고 주파수로 지정해 놓는 수준이고, 요즘은 거의 사용하지 않네요.
There is no spoon. Neo from the Matrix 1999.
There is no spoon. Neo from the Matrix 1999.
좋은정보
좋은정보 감사합니다.
--------------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'
http://heu
-----------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'
DEBIAN TESTING, KDE...
debpolaris.blogspot.kr
댓글 달기