CPU 클럭 조절하기

병맛의 이미지

그놈의 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는 루트 권한이 있어야 하네요. 뭐 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.

DebPolaris의 이미지

좋은정보 감사합니다.

--------------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'
http://heu

-----------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'

DEBIAN TESTING, KDE...
debpolaris.blogspot.kr

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.