Linux PHC patch (CPU 코어 전압 조절) Part 2
(내용이 길어서 두 개로 나눔)
phc 인터페이스를 살펴 보면 사용하는 CPU 갯수에 따라
/sys/devices/system/cpu/cpu0/cpufreq/
/sys/devices/system/cpu/cpu1/cpufreq/
/sys/devices/system/cpu/cpu2/cpufreq/
......
/sys/devices/system/cpu/cpuX/cpufreq/
까지의 디렉터리의 파일을 건드려 전압을 조절한다. 각각 파일의 역할을 다음과 같다.
------------------------------------------------------------------------------------------
파일명 | 퍼미션 | 기능 | 기타
------------------------------------------------------------------------------------------
phc_controls | 644 | FID:VID pairs/ 또는 설정 | 쓰기 가능
phc_default_controls | 444 | 기본 FID:VID pairs |
phc_default_vids | 444 | 기본 VIDs값 |
phc_fids | 444 | 기본 FIDs값 |
phc_vids | 644 | VIDs값/ 또는 설정 | writable
phc_version | 444 | PHC 버전 |
------------------------------------------------------------------------------------------
VID = Voltage Identifer, 정수값만 사용.
FID = Frequency Identifer, 정수값만 사용.
즉 VID는 전압, FID는 CPU 클럭이라고 보면 된다. 마찬가지로 해당 클럭에서 얼만큼의 전압을 줄지
짝지어둔 게 FID:VID pairs다.
여기서 실제로 건드리는 파일은 phc_vids 뿐이다. VID 값은 이렇게 얻어진다. 센트리노 프로세서의 경우,
{ (실제 전압:단위 mV) - 700 } / 16
코어 듀오나 AMD64는 조금 다르므로 Linux PHC patch Part 3의 덧글 내용을 참고할 것. 이 문서에선
별다른 언급 없이 계속 센트리노 기준으로 계산을 할 것이다.
PHC 0.2.x에선 실제 mV 단위를 적었는데 0.3부터 바뀌었다.
맥북 Core 1 Duo 2.0 GHz의 경우 기본 VID는 44 40 36 32 28 19로 각각
2.00 GHz일 때 1404 mV
1.83 GHz일 때 1340 mV
1.66 GHz일 때 1276 mV
1.50 GHz일 때 1212 mV
1.33 GHz일 때 1148 mV
1.00 GHz일 때 1004 mV
가 기본값이다. FID를 실제 클럭으로 바꾸는 공식은 메뉴얼에 나와 있지 않은데 아무튼 가장 큰 값이 최고 클럭
가장 작은 값이 최저 클럭을 가리킨다. 역시 맥북 Core 1 Duo 2.0 G의 경우
12 11 10 9 8 6
값을 가진다. 따라서 기본 FID:VID pairs는
12:44 11:40 10:36 9:32 8:28 6:19
와 같다.
여기서 phc_vids 파일을 수정하여 각각의 FID일 때의 VID 값을 고치면 전압도 바뀐다.
주의: 코어 듀오, 코어 2 듀오 프로세서는 0.956v 이하의 전압은 사용할 수 없다. 강제로
적용할 수는 있지만 기기에 좋지 않은 영향을 미친다고 여겨진다.
여러 사례에서 0.956v 이하의 값을 주면 에러가 난다고 보고됐다. 글쓴이의 경우는 0.850v
까지도 써봤는데 이유없이 자주 발생하는 오류의 원인이 이 때문이었던 것 같다.
펜-M 프로세서(예: 도선)는 하드웨어가 뻗지 않는 한 최대한 낮춰서 사용할 수 있지만
코어 듀오 프로세서들은 공식적으로 최고 클럭에서의 기본 전압보다 높게 할 수 없고
최저 클럭의 기본 전압보다 낮게 할 수 없다.(하지만 방금 말했듯이 0.956v까지는 가능)
펜-M 프로세서에서의 전압 설정은 젠투 위키쪽 페이지에 테이블로 잘 나와 있다.
-----
패치 파일 안의 init-scripts 디렉터리를 보면 ubuntu, gentoo 디렉터리가 있고 각각의 디렉터리에
etc/phc-config(또는 conf.d)/undervolt 파일과 /etc/init.d/undervolt 파일이 있어
phc-config/undervolt 파일에서 phc_vids 값과 기타 설정을 조작하며
init.d/undervolt 파일이 실제로 작동하는 스크립트임을 알 수 있다.
글쓴이는 데비안을 쓰기에 ubuntu/ 디렉터리의 phc-config/undervolt를 /etc/phc-config/undervolt 파일로
init.d/undervolt 파일을 /etc/init.d/undervolt 파일로 복사했다.
기본 phc-config/undervolt 파일은 맥북 Core Duo와는 다른 CPU의 설정값이 잡혀 있고 CPU도 하나만 조절하도록
되어 있으니 이를 조금 손봐서 써야 한다. 또한 init.d/undervolt 스크립트 역시 마찬가지다. 그리 어려운 일은 아니다.
참고로 패치 파일의 kernel-modules 디렉터리에는 커널 버전 별로 미리 컴파일해둔 모듈이 몇 개 있어 이것을 바로
이용할 수도 있게 해놨다. 하지만 2.6.22 버전은 우뿡투용밖에 없어 직접 커널 컴파일을 했다.
댓글
좋은정보
좋은정보 감사합니다.
--------------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'
http://heu
-----------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'
DEBIAN TESTING, KDE...
debpolaris.blogspot.kr
댓글 달기