Linux PHC patch (CPU 코어 전압 조절) Part 3

병맛의 이미지

/etc/phc-config/undervolt 파일 수정 : (맥북 Core 1 Duo 2.0 GHz 기준)

VTABLE_PATH="/sys/devices/system/cpu/cpu0/cpufreq/phc_vids" 변수를

CPU0_VTABLE_PATH="/sys/devices/system/cpu/cpu0/cpufreq/phc_vids"
CPU1_VTABLE_PATH="/sys/devices/system/cpu/cpu1/cpufreq/phc_vids"

이렇게 두 개의 변수로 바꾸고 경로도 .../cpu0/... , .../cpu1/... 각각 알맞게 손본다.

DEFAULT_VTABLE="15 14 13 11 10 7"

기본 phc_vids도 실제 phc_vids 파일 대로

DEFAULT_VTABLE="44 40 36 32 28 19"

라고 고친다. 또한 바로 위의 SWITCH_BACK 옵션도 "yes"로 고친다. 이렇게 하면 undervolt 스크립트를 중단 (/etc/init.d/undervolt stop)
할 때 기본 전압으로 돌아간다. 그냥 그래야할 것 같아서 yes라고 골랐다. 선택은 알아서.

CUSTOM_VTABLE="8 6 4 2 1 0"

이제 CUSTOM_VTABLE을 원하는 값으로 바꾼다. 글쓴이의 경우는

CUSTOM_VTABLE="31 28 26 23 21 16"

라고 고쳤다. 최저값인 16이 Vcc로 환산하면 ( 16 x 16 + 700) 바로 956 mV이다. 나머지 값들은 몇 번의 시스템 다운을
겪으면서 낮은 값을 골라 적었다.

주의 : 실제 /etc/init.d/undervolt start를 실행하여 전압을 바꾸려면 phc-config/undervolt 파일에서

IS_CONFIGURED="yes"

처럼 IS_CONFIGURED를 yes로 바꿔야 한다. 처음엔 no로 되어 있다. 신중하게 전압값을 생각하라는 의미다.
또한 전압값이 완전하게 안정적이라고 확인하기 전까지 init.d/undervolt 스크립트를 부팅 시 자동 실행되도록 하지 말 것.

불안정한 전압값을 넣은 채 자동 실행되도록 서비스에 추가하면, 부팅 진행 -> undervolt 스크립트에서 전압이 바뀌는 순간
시스템 리붓 및 다운 -> 다시 부팅 진행 -> 또 Undervolt 스크립트에서 리붓 및 다운이 되버린다.

Lilo에서 겨우 linux single 명령을 기억해내 자동 실행을 취소하고 원상 복구를 할 수 있었던 경험이 있다.

0.2.x 버전을 쓰던 분은 실제 mV 값을 vids 값으로 변경한 후 소수점은 적당히 잘라내거나 올려서 적으면 될 것이다.

앞 페이지에서도 적었지만 ( mV - 700 ) / 16이 phc_vids 값이다. 따라서 현재 글쓴이는

2.00 GHz에서 1196 mV (원래 1404 mV
1.83 GHz에서 1148 mV (원래 1340 mV
1.66 GHz에서 1116 mV (원래 1276 mV
1.50 GHz에서 1068 mV (원래 1212 mV
1.33 GHz에서 1036 mV (원래 1148 mV
1.00 GHz에서 956 mV (원래 1004 mV

로 해놓고 있는 셈이다.

다음은 /etc/init.d/undervolt 수정 :

31번, 45번, 62번 줄의 VTABLE_PATH 변수를 CPU0_VTABLE_PATH로 고친다.

61번 줄의

echo "${1}" > ${VTABLE_PATH} && \

echo "${1}" > ${CPU0_VTABLE_PATH} && \
echo "${1}" > ${CPU1_VTABLE_PATH} && \

이와 같이 수정하여 CPU0과 CPU1의 전압을 모두 수정하도록 한다.

그리고 실제 /etc/init.d/undervolt start를 실행. 일단 다운이 되지 않아도 안심하지 말고
X 윈도 체제를 다시 시작하거나 컴파일 등을 실행하여 가혹 테스트를 진행한다.

젠투 위키의 페이지에 prime 사용법이나 기타 가혹 테스트를 소개해 놨다. 돌려 보고 문제가 없다면
전압 조절이 안정적으로 된 것이다.

/etc/init.d/undervolt 스크립트를 rcconf 등으로 자동 실행하도록 등록한다.

CPU 온도를 측정해 보면 이전과 차이가 있을 것이다.

----

뭐든지 GUI가 짱! 파이썬과 GTK+로 만든 PHCtool만 있으면 이제까지의 복잡한 작업을 손쉽게
GUI에서 할 수 있다는...

PHC 패치가 당연히 되어 있어야 하고 msr 모듈이 필요함

https://www.dedigentoo.org/trac/linux-phc/wiki/UsingPHCtool

https://www.dedigentoo.org/trac/linux-phc/browser/trunk/src/utils/phctool/doc/docfiles/images/cpuinfo.png?format=raw
https://www.dedigentoo.org/trac/linux-phc/browser/trunk/src/utils/phctool/doc/docfiles/images/voltages.png?format=raw
https://www.dedigentoo.org/trac/linux-phc/browser/trunk/src/utils/phctool/doc/docfiles/images/throttling.png?format=raw
https://www.dedigentoo.org/trac/linux-phc/browser/trunk/src/utils/phctool/doc/docfiles/images/analysis.png?format=raw

단 /etc/phc-config/undervolt 및 /etc/init.d/undervolt와 연동되는지는 잘 모름. 안 쓰므로.
이미 이제껏 적은 삽질로 다 해놨기에.

phc 패치 파일의 utils 디렉터리에는 버그 리포트 유틸과 클럭 측정 유틸이 들어 있다.

댓글

환상경의 이미지

이번 우분투 Gutsy를 설치하고 언더볼트 패치가 안먹어서 포기하고 있었는데
저런 방법으로 하면 되는군요
오늘 집에가서 바로 테스트 해봐야겠습니다.

젠투여 영원하라......~! http://blog.naver.com/khmirage.do

==================================================================
정체된 일상.... 계기를 만들어야 하는데........
BLOG : http://khmirage.tistory.com/

익명 사용자의 이미지

그다지 중요하진 않지만, phctool의 inc/libs/voltages.py를 보면 cpu에 따라서 vid를 계산하는 방법이 약간씩 다른가 봅니다.

    def voltage_from_vid(self, formula, vid):
    #this calculates the Voltages from VIDs
    #The formulas may fit different cpu series
        VID = int(vid)
        voltage = 0
        if formula == "pentium_m":
        ##Pentium M (centrino)
            voltage = (700.0 + (VID * 16))/1000
 
        if formula == "coreduo":
        ##Core and Core2 CPUs
            voltage = (712.5 + (VID * 12.5))/1000
 
        if formula == "amd_64":
        ##Athlon64, Turion, Opteron.
        ##Found in the internet - not yet verified
            voltage = (1550.0-(VID * 25))/1000
 
        return voltage

제 랩탑(Thinkpad X60s)의 경우, 원래 vid값들이 "28 23 19"인데 이걸 "23 19 0"으로 바꾸어서 써 보고 있는데, 잘 동작하고 있습니다. 특별한 스트레스 테스트를 한 것은 아니지만, 문제가 생기면 그때 값들을 수정하면 되겠죠. 그런데 사실 "이거 제대로 동작하고 있는 건가" 하는 그런 느낌입니다.

병맛의 이미지

그다지 중요한 게 아니라 많이 중요하네요. 메뉴얼엔 Centrini의 vids를 예로 든 것인데
전 그냥 그걸 썼거든요. 내용도 다시 수정해야지.

---------------------------------------------------------------------------------------------------------------------------------------------

azirael의 이미지

gutsy에서 사용하고 있습니다.
사용하는 랩탑은 Dell 700m입니다.
Dothan 1.8GHz cpu인데,
그동안 최고클럭에서 cpu 온도가 99-100도까지도 올라가더군요.
이 패치 먹이고 몇 번의 시행착오를 반복하면서 얻은 값으로 현재 사용중인데,
76도 이상 올라가지 않습니다.
효과는 괜찮은 것 같습니다.
배터리 타임도 더 길어지기는 할텐데, 얼마나 더 길어질 지는 두고봐야겠습니다.
그리고 설정해주는 값의 패러미터가 좀 바뀐 것 같더군요.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.