본문 바로가기
자유 게시판

xda 커널은 클럭 스텝 조절이 가능한데 Lulz 커널은 불가능?

by 테그라크 2011. 10. 23.
KT갤스2 2011/10/23 02:43
m250k. 통신사결제가 되길래 구입하고 룰즈커널 플래시했습니다.
클럭 스탭이 제가 원하는대로 조절하거나 삭제가 안되서 불편하네요.
예를들면 갤럭시s2는 L0~L6까지 고정이 되어있는데,
200,500,800,1100,1400이나 혹은 200,400,800,1200 이렇게 조절 불가능하네요.
XDA에서 만든 Voltage Control이나 SetCPU처럼 클럭단계를 삭제하고 생성할 수 있게 만드셔야 할것같습니다.


조금 자세히 설명을 드릴께요.
먼저 아셔야 할 것은..
리눅스 디바이스인 안드로이드 폰에서는 scaling frequency 값이란 것을 통해서
CPU 실제 최대 동작값과 최소 동작값을 제한할 수 있습니다.
scaling max 값은 최대값의 제한선, scaling min 값은 최소값의 제한선입니다.
본론으로 들어가보죠..

자 그럼 말씀하신 xda에서 OC 커널로 배포되는 것들 중에 Siyah 커널을 예로들어 비교해 볼께요.
Siyah 커널과 Lulz 커널의 CPU 레벨 비교표입니다.
LevSiyahLulz
L0 1600MHz 1204MHz
L1 1400MHz 1152MHz
L2 1200MHz 1100MHz
L3 1000MHz 1000MHz
L4 800MHz 800MHz
L5 500MHz 500MHz
L6 200MHz 200MHz

Siyah 커널을 설치하면 scaling max 값이 1.2GHz로 설정 되어있고
SetCPU 등의 앱을 통해서 이 값을 1.4 혹은 1.6으로 변경하면 오버클럭된 더 높은 수치를 사용할 수 있게됩니다.
즉 동적으로 레벨이 추가되거나 감소하는 것이 아니라 원래 있던 녀석을 쓸 수 있게 제한선을 풀어주는 것 뿐이죠.
Siyah 커널에서 scaling min을 500MHz로, scaling max를 1GHz로 설정하면 500-800-1000만 사용되게 됩니다.

그리고 스텝이란 녀석은 애시당초에 동적으로 변환이 가능하도록 디자인된 녀석이 아니기도 합니다.
런타임시에 CPU 동작 스텝을 삭제한다거나 추가하는 것이 불가능하다는 뜻입니다.
꼭 하려고 한다면 할 수는 있겠지만 아주 많은 파트들의 코드를 수정해야 합니다.
이 룰은 Lulz 커널 역시 동일합니다.
위 표에서 보셨다시피 레벨별 클럭값을 얼마나 줬냐, 기본 최대값을 얼마로 제한해두냐의 차이만 있는 것입니다.

그럼 Lulz 커널에서 어떻게 원하시는 설정으로 만드는지 말씀드릴께요.
첫번째, 200-500-800-1000-1400으로 사용하시려면
L0 1408
L1 1404
L2 1400
L3 1000
L4 800
L5 500
L6 200
이렇게 만드신 후 scaling max를 1.4로 잡아주시면 원하시는 설정이 되게 되는 거죠.

두번째, 200-500-800-1000-1200을 원하시면
L0 1208
L1 1204
L2 1200
L3 1000
L4 800
L5 500
L6 200
요렇게 만드시고 scaling max를 1.2로 잡아주시면 되는 거구요.

추가, 200-500-800-1000-1200-1400-1600 Siyah 커널과 동일한 설정을 원하시면
L0 1600
L1 1400
L2 1200
L3 1000
L4 800
L5 500
L6 200
요렇게 만드시고 scaling max를 1.6으로 잡아주시면 되는 거구요.

최대한 쉽게 풀어쓰려고 하는데 잘 안되네요. 한두번 직접 해보시면 감이 오실것 같습니다 ^^;
그리고 답변을 원해서 쓰신 글이라면, 대화명을 조금 더 신경써주시는 건 어떨까요
힘들여 써도 다시 오지 않을 사람같은 대화명이면 답변 다는 사람은 좀 기운이 빠지거든요..


Gliese 2011/10/23 13:49
답변 감사합니다.

제가 말한건 Voltage control 앱은 200부터 1700까지 클럭스탭이 프리셋으로 있지만, 개별로 쉽게 on/off 할 수 있다는거죠. 설명하신대로 할수있지만, 불편한건 사실입니다 1200를 최대로 쓰려면 최대오버클럭수치를 1400이상으로 올리고 제한을 1200걸고 나머지 스탭들은 omit하는건 UI적으로 봤을 때 비효율적이라 생각이 드네요. verizon sch-i500를 사용할 때는 모든 커널의 스탭 configuration이 가능했습니다.

음 그리고 질문 한가지 더, 갤럭시s2는 시스템적으로 cpu 클럭이 200,500,800,1000으로 픽스되나요? 제가 질문한 200,400,800,1200는 설명에 없습니다.

말씀하신대로 닉네임 바꿨습니다. 대화명에 예민하신가보네요. 불퀘하셨다면 죄송하지만, 전 그저 대화명 상관없이 소비자로서 문의한것 입니다. 감사합니다.


Q. 제가 말한건 Voltage control 앱은 200부터 1700까지 클럭스탭이 프리셋으로 있지만, 개별로 쉽게 on/off 할 수 있다는거죠.
A. 프리셋에서 개별로 쉽게 on/off가 가능하다는건 최소~최대 범위를 바꾸는게 아니라 중간에 있는 것을 없앨 수 있다는 뜻이신가요?
정확히 어떤 커널과 voltage control을 쓰셨는지 알려주시면 확인해 보도록 하겠습니다.
최소한 제가 아는 유럽 갤럭시S/갤럭시S2의 xda에 있는 커널중에 중간 단계를 끌 수 있는건 없습니다.
정정합니다 voltage control로 중간단계를 활성/비활성화 할 수 있다고 하네요.
변명을 하자면 설마 저런걸 구현할 필요가 있을까 하는 생각에 그냥 넘겨짚은걸 사실처럼 적어버렸습니다..
제대로 알아보지 않고 잘못된 정보를 드려 죄송합니다.

Q. 1200를 최대로 쓰려면 최대오버클럭수치를 1400이상으로 올리고 제한을 1200걸고 나머지 스탭들은 omit하는건 UI적으로 봤을 때 비효율적이라 생각이 드네요.
A. 제가 1200을 최대로 쓰려면 1400이상으로 다른걸 올리라고 말씀드린적 있나요?
여튼 1200-1400-1600으로 두고 1200으로 제한을 걸어두는건 일단 원래 클럭으로 사용하게 해뒀다가
필요시 scaling max 변경만으로 쉽게 1400 혹은 1600까지의 성능을 내도록 하기 위해서 아니겠습니까?

Q. 갤럭시s2는 시스템적으로 cpu 클럭이 200,500,800,1000으로 픽스되나요?
A. 네 원래 200/500/800/1000/1200인데, 1000이하의 값을 변경 불가능하게 해둔 것은
200<->800, 500<->1000으로 클럭이 변경될때 CPU 드라이버에 특별한 처리가 되어 있기 때문입니다.
이 코드 때문에 1000이하 클럭을 그냥 변경할 수 있게 할 경우 눈으로 보이는 클럭은 변해도 실제 동작 클럭은 엉뚱한 값이 될 수 있습니다.
이걸 굳이 변경가능하도록 뜯어고쳐봐야 별로 이득볼 것도 없고 해서 그 누구도 이 부분을 수정하진 않습니다.
저렇게 코딩된게 조금의 오버헤드를 줄여서 더 효율적으로 클럭 변경이 이루어지게 되도록 구현해놓은 것이기 때문입니다.

Q. 제가 질문한 200,400,800,1200는 설명에 없습니다.
A. Fascinate의 경우 원래 스텝이 5단계 입니다.
근데 200/400/800/1200은 대체 어디서 보신걸까요?
Fascinate로 저 설정을 하려면 원래 100/200/400/800/1000 인데 1000을 1200으로 오버하고 scaling min 값을 200으로 잡아둔거겠죠.
정정합니다 갤럭시S2에서 이렇게 할 수는 없냐는 뜻이군요..
네 저는 일단 하위클럭을 변경하는 것이나 중간 스텝을 비활성화 하는 것은 별로 의미가 없다고 생각하기 때문에 손댈 수 없게 해두었구요
오버클럭 앱의 주목적이 순정 커널에서 제대로 동작하는 것이기 때문이기도 합니다.
하위 클럭이 제대로 변경되게 하려면 소스를 수정해줘야 하거든요.
또한 커널 상에서 몇몇 특정한 상황에서는 하위클럭 중 지정된 스텝의 클럭을 사용해서 동작이 되어야만 하는 부분도 있습니다.

Q. 대화명에 예민하신가보네요.
A. 네 대화명에 예민합니다. 답글이 조금 길어질 경우 대화명이 확실하지 않으면 허공에다 소리치는 것 같아서요.

댓글