CPU 전압을 낮춰서 CPU 온도를 낮추자 II... CPU Undervolt on Hardy

 거의 한달만에 포스팅이다. 원래 한번 포스팅 했던 내용에 대해서는 큰 변화가 없으면, 다시 포스팅 하지 않는다는 게 나만의 포스팅 원칙이지만 원하시는 분이 계셔서 짧게 포스팅 한다. Gutsy에서 Hardy로 오면서 PHC 적용에 애를 먹었다. 물론 성공하신 분들이 계신듯 하지만, 몇번 해봤는데 잘 되지 않아서 그냥 커널의 speedstep-centriono.c를 수정하는 방법으로 전압을 조정하였다.

 이전에 포스팅 했던 이 글 역시 PHC를 이용한 것이 아닌, speedstep-centriono.c를 수정함으로써 커널 상에서 전압을 고정시키는 방법이다. 주의할 것은 앞으로 진행할 방법은 자신의 CPU의 전압 조절에 대한 충분한 안정성 테스트가 없을 경우, 커널을 읽는 단계 이후로 진행 할 수 없는 문제가 발생할 수 있다. 나의 경우 이미 이 전압으로 노트북을 써온지 1년도 넘었기에 별 문제는 없었다.

① 우선 적절한 디렉토리에 커널 소스를 받는다. 나는 /usr/src에 소스를 받았다. 현재 최신 버전 커널은 2.6.24-18 이다. 앞으로 커널 소스를 /usr/src에 받았다는 가정하에 얘기하겠다.
sudo apt-get source linux-image-2.6.24-18-generic

② speedstep-centrino.c 수정을 통한 클럭/전압 조절한다.

 커널 소스의 아래의 디렉토리에 들어가보면 speedstep-centrino.c 라는 파일이 존재하는데, 이 파일을 열게 되면..
/usr/src/linux-2.6.24/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
90 번째 줄 부터 Intel의 노트북용(모바일) CPU 들에 관한 클럭과 전압이 정의 되어 있다. 이 부분부터 자신의 CPU에해당하는 CPU 부분을 찾아서 전압을 적절히 고쳐주면 된다. 각 CPU에 적용 가능한 최저 전압 정보는 여기를 보면 사용자들이 자신의 사용 전압을 적어놓은 부분이 있는데, 그곳의 수치를 참고해서 수정하면 된다.
아니면 MS Windows용 전압 조절 프로그램인 NHC와 관련해서 자료를 찾거나 해당 노트북 모임(예: nbinside.com) 같은 곳에 가면 적절한 전압을 찾을 수 있을 것이다.

내 CPU에 맞는 클럭/전압 정의는 226번째 줄부터 있는데, 기존에는 다음과 같이 되어 있었다.
/* Intel Pentium M processor 750 / 1.86 GHz (Sonoma) */
static struct cpufreq_frequency_table sonoma_1862[] =
{
    OPEX( 798, 133,  988,  988,  988,  988),
    OPEX(1064, 133, 1084, 1080, 1068, 1056),
    OPEX(1330, 133, 1180, 1172, 1132, 1124),
    OPEX(1596, 133, 1276, 1264, 1196, 1192),
    OPEX(1862, 133, 1356, 1356, 1260, 1260),
    { .frequency = CPUFREQ_TABLE_END }
};
798Mhz에서 0.988V, 1.064Ghz에서 1.084V.... 이런식이다. 이것을 아래와 같이 바꾸어 준다.
/* Intel Pentium M processor 750 / 1.86 GHz (Sonoma) */
static struct cpufreq_frequency_table sonoma_1862[] =
{
    OPEX( 798, 133,  700,  988,  988,  988),
    OPEX(1064, 133,  780, 1080, 1068, 1056),
    OPEX(1197, 133,  828, 1172, 1132, 1124),
    OPEX(1330, 133,  876, 1172, 1132, 1124),
    OPEX(1463, 133,  924, 1264, 1196, 1192),
    OPEX(1596, 133,  972, 1264, 1196, 1192),
    OPEX(1729, 133, 1020, 1356, 1260, 1260),
    OPEX(1862, 133, 1036, 1356, 1260, 1260),
    { .frequency = CPUFREQ_TABLE_END }
};
클럭은 1.197(1.2)Ghz, 1.463(1.46)Ghz, 1.729(1.73)Ghz가 추가되어서 8단계로 클럭이 변하게 되며, 전압도 기존보다 0.3V 가량 낮추었다. 다시 한번 말하지만 이는 충분히 검증된 전압을 적용해 주어야 한다. 가장 중요한 전압은 최하 클럭의 전압과 최고 클럭의 전압이다. 특히 최고 클럭의 전압에서 오랜 시간 풀 로드(Full Load)로 테스트 해 보아야 한다. 그렇지 않을 경우 컴파일 등과 같은 CPU를 많이 쓰는 작업을 할 경우, 어이없게 컴퓨터가 다운될 수도 있다.

커널 컴파일 옵션이 정의된 .config 파일을 새로 받은 커널 소스 디렉토리에 복사한다.
sudo cp /boot/config-2.6.24-18-generic /usr/src/linux-2.6.24/.config

CPU 클럭/전압에 관련된 모듈만 컴파일 해준다. /usr/src/linux-2.6.24 디렉토리에서 해야한다.
sudo make oldconfig
sudo make prepare
sudo make scripts
sudo make M=./arch/x86/kernel/cpu/cpufreq

컴파일 된 새로운 모듈을 기존의 커널의 모듈과 바꾸어준다. 문제가 생길 수 있으니 기존의 모듈은 적절한 곳에 복사해두는 것도 좋은 방법이다.
sudo cp arch/x86/kernel/cpu/cpufreq/speedstep-centrino.ko /lib/modules/2.6.24-18-generic/kernel/arch/x86/kernel/cpu/cpufreq

여기까지 완료됐다면 재부팅을 해주면 새롭게 설정된 전압과 클럭이 적용되서 부팅이 된다.


 내 cpu에만 그런지는 모르겠지만, linux 커널에서 설정된 전압 값이 MS Windows에 적용된 전압값보다 높았다. 때문에 이 undervolt 적용으로 인해 기존의 풀로드 시 90도 넘게까지 치솟았던 cpu의 온도가 60도 초반으로 안정되면서 cpu 팬의 rpm이 줄어서 소음까지 줄어드는 효과도 얻었다. 물론 이런 undervolt가 cpu에 전압이 충분히 공급되지 못해서 cpu의 성능까지 줄인다는 얘기가 있지만, 그 부분에서 체감적으로 느껴지지 않아서 그냥 적용해서 쓰고 있다.

by sakuragi | 2008/06/06 22:17 | :: C space :: 컴퓨터 | 트랙백 | 핑백(1) | 덧글(10)

트랙백 주소 : http://sakuragis.egloos.com/tb/4406895
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Linked at Open Sea : Under.. at 2008/06/07 01:31

... 사쿠라기님의 포스트를 보고 다시 undervolt 를 시도해볼까 하였다. 여름도 다가오고.. 배터리도 윈도때보다 확실히 빨리 닳고 있다는게 보일 정도라서.. 그런데 이전에도 없었지만 사 ... more

Commented by 떠돌이 at 2008/06/07 01:09
역시 이 방법은.. 제 CPU는 할 수 없군요..ㅠㅠ
Commented by sakuragi at 2008/06/21 23:04
늦었지만 해결 하신거 축하 드립니다.
Commented by 환상경 at 2008/06/07 01:53
흐... 에버라텍은 이미 포기... 그냥 Window머신으로만 사용해야할듯해요 =_=
Commented by sakuragi at 2008/06/21 23:05
저는 에버라텍은 리눅 주력, 회사 놋북은 윈도우 주력으로.. ^^
Commented by 헤즈 at 2008/06/10 13:01
90도까지 오른단 말야? =.=
내껀 40도에서 열받으면 60도까지 봤는데;;
펜린이 좋아..
=3=333
Commented by sakuragi at 2008/06/21 23:15
나도 윈도우에선 7~80도 정도인데.. 리눅에서는 전압이 더 높게 설정되어 있어서 그런지 더 높게 나오네. = _=);;
Commented by at 2008/06/28 13:31
근데 이런 건 걍 커널에서 기본으로 지원되고
GUI로 세팅해서 쓸 수 있게 써야 함.
Commented by sakuragi at 2008/06/29 00:09
사실 그래서 나온 것이 PHC 인데, 저는 PHC보다 이 쪽이 빠르고 편하더군요. :)
Commented at 2008/07/02 17:14
비공개 덧글입니다.
Commented by sakuragi at 2008/07/03 00:55
9월에 나온다더니. 애매한 시기에 나오는군~ :S

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶

:+: sakuragi's Steam :+: