X86 Open로그인

추천하기 twitter 로그인 facebook 로그인 google 로그인 카카오 로그인 네이버 로그인
Profile

[끝판왕] 당신의 CPU에 휴식시간을 부여하라! [Rev 16.03.08]

 

[https://www.x86.co.kr/hackintosh/1160224에 새로운 내용으로 글이 작성되었습니다.]

 

 

너무나 많고 방대한 양은 이제 지쳤습니다, 이 글 하나로 당신의 CPU가 편히 쉴 수 있기를 바랍니다.

끝판왕, 당신의 CPU에 휴식시간을 부여하라!편에 오신것을 환영합니다 :)

 

그동안 스피드스텝, 그리고 잠자기와 관련하여 연구해오면서?

쌓인 자료가 상당해졌습니다. 그리고 그것들을 모아 글로써 올렸는데, 편수만 대략 6편이더군요.

 

그렇게 올렸음에도 불구하고, 모든걸 전달하지 못한 아쉬움이 남습니다.

단 한 분이라도 더, 그리고 단 하나의 CPU라도 더 혜택을 누렸으면 한달까요?

 

그래서 Retina편에 이은 두번째 끝판왕 편을 마련하게 되었습니다.

이 글에는 CPU, SSDT, 잠자기와 관련하여 올렸던 6개의 글이 적절히 짬뽕되고 다시 재수정되어

좀 더 알아듣기 쉽고 적용하기 쉽게 바뀌었음을 미리 말씀드립니다.

 

그럼 시작하도록 하겠습니다.

 

1. 스피드 스텝과 관련한 CPU의 구조

1-1. P-State와 C-State가 뭔가요?

 

씨피유에는 크게 두가지의 전력관리 기술을 가지고 있습니다.

하나는 P-State, 나머지 하나는 C-State라는 것입니다.

 

이 두가지는 서로다른 동작방식을 통하여 서로가 서로를 보조하며

CPU가 실제로 소모하는 소모전력량 (TDP)를 감축합니다.

 

이것을 조금더 쉽게 비유하자면, 하나는 일손을 조절하여

일손이 많이 필요한 작업에는 그만큼 일손을 많이 불러들여 작업을 하고

일손이 별로 필요없는 경우에는 최소한만의 인력을 가지고 작업하는 것입니다.

 

그리고 나머지 하나는 같은 인력으로 일을 할 때에

작업에 걸맞는 도구를 사용하여 들어가는 에너지를 최소화시키는 것입니다.

 

바로 P-State이 전자에 해당되는 내용이며 C-State은 후자에 해당되는 내용입니다.

그렇지만, 단순히 이 두가지를 포괄적으로만 이해하기 쉽게 풀어쓴 것일 뿐

실제로는 두개의 모드 내에서도 그 급에따라 분류가 나뉘어지게 됩니다.

 

아래는 이것을 조금더 보기쉽게 그림으로 풀어낸 부분입니다.

cp.png

 

P-state은 P0 ~ Pn으로 나뉘어지며 씨피유가 활동중인 상태일 때의 전력 소모량 감축 기술입니다.

이부분은 C0라 불뤼는 Cpu-Activate 상태의 C-State모드에서 동작하는 부분입니다.

 

만약 씨피유가 더이상 일손이 필요하다고 생각되지 않을 경우

C0라는 모드를 변경하여 C1~C10의 상태에 있게 되는데, 이 모드별로 씨피유가 동작하는

범위의 차이가 매우 다양하게 나타납니다.

 

C1은 단순히 Halt라 불뤼는 부분으로써 그냥 작업을 쉬는 것입니다.

이때 코어가 완전히 꺼지는 것이 아니라, 코어의 동작속도를 매우 낮추어 쉬게됩니다.

 

C3/C4 모드는 씨피유가 잡아먹는 전압을 강하시킵니다.

그리고 L2 Cache를 부분적으로 비웁니다.

이 상태에서도 코어는 아직 동작중인 상태에 있습니다.

 

C6/C7 모드는 위의 모드들과는 달리 씨피유의 코어를 완전히 쉬게해줍니다.

그리고 L2 Cache를 완전히 비워버립니다.

 

위 그림에는 나와있지 않지만, C8~C10 모드도 존재하는데,

C8 이후의 기능은 인텔 씨피유의 하스웰 (하스웰은 모바일) 기종 이후부터 사용되어집니다.

 

C8/C9/C10 모드로 동작하게되면

C6/C7 상태에서 점차적으로 L3 Cache를 부분적으로 비우며

코어가 언제든지 다시 활성화상태로 돌아갈 수 있는, 예비 전력레일의 전압과 전력을 낮추게됩니다.

그리고 이보다 더 깊게 들어가게 되면 최종적으로 L3 Cache마저도 비워버리고

예비 전력레일마저 꺼버리게됩니다.

 

이렇게 CPU는 저희가 알지 못했던 그러한 기술을 사용하여

최적의 상태로 최고의 성능을 낼 수 있게끔 열심히 일을 하고 있다는 것입니다.

 

/* 1-2는 추가로 작성되었습니다. */

1-2. P-State와 C-State는 SSDT와 사촌지간?

 

여러분이 사용중이시고 너무나도 익숙해져버린 DSDT와 SSDT는

사실은 다소 높은 난이도를 자랑하는 중증의 컴덕후(?)들이 알아듣는 용어입니다.

 

이 DSDT, SSDT는 ACPI에 소속되어있는 친구들인데,

DSDT는 시스템의 기본적이면서도 서로 다른 부분들에 대하여 총 기술해둔 문서이고

DSDT가 주축이라면 SSDT는 보조로써 기타 장치에 대하여 추가기술해둔 문서라 볼 수 있겠습니다.

 

따라서 이 2가지는 컴퓨터에 대한 거의 대부분의 정보를 기술하고 있는 문서라 볼 수 있고

이것들을 잘만 조작하면? 어마무시한 일을 할 수 있다는 것을 조금만 머리를 굴려보면 알 수 있습니다.

 

여기서 CPU랑 관련이 깊은것은 SSDT로 둘 수 있는데, DSDT에서는 CPU에 대한 정보를

간략하게 코어 몇개 있어. 나머지는 외부 스크립트에 기술해두었으니 참조해서 볼게! 라는식으로만

시스템에게 말을 하기때문에, 실제로 CPU에 대한 정보가 없습니다.

 

그렇게? ACPI에서 SSDT (Secondary System Description)을 뒤져보면

CPU0Ist와 CPUPm으로 기술하고있는 씨피유 관련 정보 SSDT를 찾을 수 있습니다.

 

이것들은 CPU에 대한 정보를 나누어 기술하는건데 가장큰 특징을 꼽자면,

처음인 0번코어에 모든부분을 기술해두고 나머지 코어는 0번정보를 참조하여

쓰는 방식으로 동작한다라는 것입니다.

 

P-State, C-State에 대한 정보는 바로 이 SSDT에 존재하며

특히 CPU0Ist에 기술되어있다고 보면 되겠습니다.

 

여기서 조금 짚고 넘어가보아야 할 것은 CPUPm에 관한 부분은

CPU0Ist를 참조하는 좀 더 포괄적인 CPU관련 SSDT로써, 씨피유의 전력관리 및 동작에 있어

좀 더 큰 틀을 기술하고 있는 부분이라 볼 수 있습니다.

 

뺑글뺑글 돌려 말씀드렸는데, 간략하게 정리하자면

씨피유에 대한 정보는 DSDT의 경우는 간략기술이고,  SSDT에 자세히 기술되어있다는 것입니다.

따라서 이 SSDT에 기술된 내용 중 일부인 P-State와 C-State부분을 우리가 가로채서

다른 내용이 동작되게끔 해주어야한다는 것이죠.

 

이 과정에서 ssdtPRGen.sh등과 같은 SSDT파일들이 사용되는데

실제로 이 패치는 DSDT에 적용할 때가 가장 효력이 크게 나타나는편입니다.

 

왜냐하면 원리가 다르기 때문인데, DSDT는 SSDT를 참조합니다

그리고 SSDT는 CPU0IST가 담긴 SSDT와 CPUPm이 담긴 SSDT가 있는데

이때 DSDT는 CPU0Ist를 참조하고 CPUPm도 CPU0Ist를 참조합니다.

 

이 과정에서 만약 Original CPU0Ist대신에 다른 정보가 담긴 SSDT가 대체된다면

기존에 적용되는 CPU0Ist의 원본 값이 모두 무시되어버립니다.

이 이야기는 무엇을 의미하냐면, 혹시라도 모를 시스템 상의 고유한 값을 무시해버릴 수 있다는 것을 의미합니다.

 

가능하면 CPU는 덧붙이기 식으로 들어가야합니다.

만약 이 내용을 DSDT에 대신하여 넣어주게되면 시스템은 DSDT를 참고할 때 다음과 같이 참고합니다.

 

1. DSDT에 CPU P-State와 C-State가 기술된 것을 먼저 적용함

2. DSDT에서 참조하는 CPU0Ist SSDT를 추가로 적용함

(이때 이 값은 모두 덮어씌워지지 않고 참조용으로 보조로드될 가능성이 농후함)

3. CPUPm SSDT에서 참조하는 CPU0Ist SSDT정보에는 변경사항이 없음.

 

SSDT에는 ACST, APST, APPT, APCT등 여러가지 부분들이 기술되어있습니다.

여기서 중요한건 ACST, APST입니다. 바로 C_State, P_State를 의미하기 때문입니다.

 

하지만? 막상 찾아보면 CPUPm에서나 CPU0CST와 APCST를 로드할 뿐,

실질적으로 APST, ACST에대한 부분은 찾아볼 수 없습니다.

 

PST정도야 비슷한 것으로 _PSS가 있는데 이마저도 정보가 엉터리라는 것이지요.

바로 저희는 이러한 부분을 노려 _PSS는 냅두고 CPUPm이 로드하는 APST, ACST를 추가로

DSDT에 기술하여 정보를 로드시키는데에 주 목적이 있습니다.

 

다만 ACST는 아래에서 설명드리겠지만, 고유한 네이티브 값이 존재하기때문에

잘못 건드리면 원래보다 못한 상황이 연출될 수 있기때문에 패치하지 않습니다.

 

따라서, APST만 건드려주면 되는데 이것을 어떻게 건드려줄지에 대해서는

우선 CPU가 P-State, C-State를 잘 동작시키는지부터 확인하는 것이 우선이므로

먼저 CPU의 상태를 살펴보는 것부터 알아보도록 하겠습니다.

 

2. CPU의 상태 [P-State, C-State]를 확인해보자

 

그렇다면 이러한 CPU의 P-State과 C-State이 잡혀있는지

알 수 있는 방법은 없을지 궁금하실겁니다.

 

첨부파일에서 info4CPU 압축파일을 다운받아줍니다.

압축을 풀어주시면 AppleIntelInfo.kext와 IntelPowerGadget 설치 프로그램이 나오는데,

인텔 파워가젯의 경우에는 브로드웰 혹은 스카이레이크군에서 설치가 안되는 경우가 있습니다.

 

이 경우에는 CPU의 정보가 제대로 시스템에 로드되지 않아서 나오는 현상인데

클로버의 패치를 통하여 CPU정보를 올바르게 넣어주시면 설치가 될겁니다.

 

그래도 만약 설치가 안되거나 실행이 안되신다면 과감하게

HateIntelGadget 압축파일을 다운받아주시기 바라겠습니다 :)

단촐하지만 각 코어의 소모전력을 알려주는 프로그램입니다.

[인텔이 공식으로 지원하는 API로 제작되어 신뢰성이 있습니다]

 

켁스트는 직접 설치하시면 나중에 제거가 귀찮으므로 커맨드라인을 사용하여줍니다.

커맨드라인 입력창을 띄워줍니다. (터미널창입니다)

 

그리고 아래 명령어를 쳐줍니다.

 

Sudo chown -R 0:0 

 

엔터를 누르지 마시고 저 상태에서 0:0다음에 띄어쓰기를 해줍니다.

그런 후 터미널 창에 다운받으신 켁스트를 드래그 앤 드랍해주시면 경로가 적혀집니다.

 

그런 후에 엔터를 눌러줍니다.

그리고 같은 방식으로 Sudo kextLoad 를 쳐주고 띄어쓰기 한번 해주신 후에

드래그 앤 드랍으로 켁스트를 터미널창에 넣어주고 경로가 적혀지면 엔터를 눌러줍니다.

 

마지막으로 sudo cat /tmp/AppleIntelInfo.dat을 쳐줍니다.

아래는 정상적으로 적용된 상태의 터미널 사진입니다.

스크린샷 2016-03-07 오후 7.39.57.png

 

그리고 저상태에서 엔터를 꾹 누르면 아래처럼 나옵니다.

스크린샷 2016-03-07 오후 7.41.04.png

여기서 주의깊게 살펴야 할 것은 C3,C6,C7부분입니다.

코어가 제대로 0,1,2,3 나온 것이 보이시나요?

만약 여러분의 씨피유가 i7등이라면 0~7까지 나와야합니다.

 

그리고 P-State는 위의 사진을 보면 8~22 사이의 숫자가 생략된 것이 보이실겁니다.

원래는 이렇게 나오면 P-State가 정상적으로 잡힌 것이 아닙니다.

거의 모든 배수에 대해 촘촘하게 나와주어야 제대로 잡힌 것이라 볼 수 있는데,

 

여러분이 현재 켜두고 있는 모든 프로그램을 전부 종료해주세요.

아 물론 사파리르 종료하지 않으셔도 됩니다 ^^;

 

그런 상태에서 느긋하게 기다리시면서 마지막 문구인 sudo cat /tmp/AppleIntelInfo.dat을 쳐주시면

아래의 화면처럼 배수가 좀더 촘촘히 나오는걸 볼 수 있습니다.

 

스크린샷 2016-03-07 오후 7.45.23.png

그런데 아마도 대부분의 경우는 P-State가 제대로 잡혀있지 않아서

위의 사진처럼 촘촘하게 잡혀나오는 경우가 별로 없기 때문에, 따로 패치를 해주어야하는데

그부분은 조금 있다가 글의 아래부분에서 같이 해보도록 하겠습니다.

우선은 C-State의 추가 점검이 남았기 때문입니다.

 

참고로 위의 P-State을 확인 할 때에 백그라운드 프로세서를 모두 종료하여야 하는 이유는

씨피유가 충분히 쉴 수 있는 조건을 마련해주어야 하기 때문입니다.

일은 열심히 줘놓고 쉬라고 하면 말이 안되니깐요.

 

C-State을 확인하기 전에, 로드해준 켁스트를 언로드시켜줍니다.

명령어는 sudo kextunload를 해주시고

띄어쓰기 하신 후 켁스트 드래그 앤 드랍하시고 엔터해주시면 됩니다.

[나중에 패치 후 정상 작동확인을 위하여 삭제하는 하지 말아주세요]

 

그럼 켁스트도 삭제했겠다!

이제 C-State가 정말로 제대로 잡힌게 맞는건지 확인을 하기 위하여 Intel Power Gadget을 열어줍니다.

그리고 Power부분이 어떻게 움직이는지 유심히 살펴봐줍니다.

 

만약 그래프가 아래처럼 나온다면?

스크린샷 2016-03-07 오후 7.50.13.png

 

유감스럽게도 여러분의 씨피유는 C-State가 제대로 동작하고 있지 않을 가능성이 높습니다.

이부분을 확인하실 때에도 반드시 백그라운드 프로세서 및 모든 프로세서는 다 종료해주시고

순수하게 인텔파워가젯만 켜놓은 상태에서 확인하셔야합니다.

 

카카오톡같은 것도 전부 종료입니다.

[의심가는건 전부 종료해주세요.]

 

그리고 다시 파워가젯을 끄고 킨 후에 소모전력량을 체크해줍니다.

만약 아래 사진처럼 나왔다면 정상적으로 동작하는 것입니다.

스크린샷 2016-03-07 오후 7.54.45.png

보이시나요? 앞서 보여드렸던 그래프와는 전혀 딴판인, 매우 안정적인 그래프가말이죠

심지어 전력을 확인해보니 위에 0.14W라고 적혀있네요.

 

바로 위처럼 나오면 C-State이 제대로 동작한다고 볼 수 있겠습니다.

그러나 여러분의 씨피유는 저렇게 나올 수도 혹은 나오지 않을 수도 있을겁니다.

왜냐하면 제대로 패치가 되지 않았을 수 있기 때문이죠.

 

만약 여러분의 컴퓨터에서 Intel Power Gadget을 설치할 수 없거나 실행할 수 없는 경우라면!

다운받으셨던 HateIntelGadget 파일의 압축을 해제하고 로그램을 실행시켜주세요.

 

아마도 아래처럼? 단촐하지만 씨피유의 각 코어가 소모하는 소모전력이 나올겁니다.

스크린샷 2016-03-08 오후 9.56.22.png

 

자, 그럼 확인도 다 해봤겠다 만약 자신의 씨피유가 P-State과 C-State을 제대로

수행하지 못하는 것 같다고 판단이 되신다면 지금부터 작업하는 것들을

유심히 살펴보셔서 따라해주시면 되겠습니다.

 

3. CPU의 P-State와 C-State를 잡아보자!

3-1. P-State와 C-State 워밍업

 

우선 스피드 스텝을 위하여 반드시 로드되어야하는 켁스트들이 있습니다.

이 친구들이 정상적으로 로드되는지를 살펴보시면 되겠습니다.

 

X86PlatformPlugin.kext

X86PlatformShim.kext

 

혹은

 

ACPI_SMC_PlatformPlugin.kext

 

그리고

 

AppleLPC.kext

AppleAPIC.kext

AppleACPI*.kext

 

여기서 우리가 주로 패치하게될 친구들은

X86Platform~ 켁스트와 LPC켁스트 그리고 APIC 이 3가지의 켁스트들입니다.

 

우선 여러분의 부트로더를 살펴봐주세요.

카멜레온이든 클로버든, 여러분의 의도와는 상관없이 아마도

P-State, C-State관련 옵션이 켜져있을 수 있어요.

이부분들을 모두 꺼주세요.

 

왜냐면, 부트로더들이 지원하는 CPU의 전력관리 옵션은

강제로 표준화시켜서 적용하는 것이기 때문에 예기치 못한 오류와 동작 이상을

불러일으킬 가능성이 있기 때문이에요.

 

그리고 여러분이 따로 적용해둔 DSDT나 SSDT가 있다면 과감하게 백업을 해주고

시스템 적용을 해제시켜주신 후에 재부팅을 해줍니다.

혹은 여러분이 적용해둔 DSDT에 추가로 패치해주셔도 상관이 없습니다 ^^.

 

그리고 바이오스에서 C-State관련 기술이 disable되어있다면,

Auto 혹은 Enabled로 변경해주시기 바라겠습니다.

 

또한 여러분의 파워서플라이가 하스웰 전력모드를 지원하는지 확인해주세요.

일부 파워서플라이는 하스웰의 새로운 전력관리기술을 지원하지 않아

부득이하게 C-State의 C6/C7으로 진입 시 컴퓨터가 강제종료되는 현상이 일어날 수 있습니다.

 

확인하실 때에는 자신의 파워서플라이가 12V2에서 미니멈 0.05A를 만족하는지 확인해주시면 됩니다.

0.05A랑 같거나 0.05A보다 작은 숫자면 이상이 없는거에요.

 

모든 확인과 준비가 끝났다면, 첨부파일에서 MaciASL을 다운받아주세요.

이 프로그램은 여러분의 컴퓨터에서 SSDT, DSDT를 추출하여 수정할 수 있는

프로그램이기 때문에 이거 하나로도 충분히 작업이 가능합니다.

 

아 참, 여러분의 씨피유 값들을 좀 더 수월하게 넣기 위하여

첨부파일의 ssdtPRGen을 다운받아주셔서 바탕화면에 폴더채로 압축을 풀어줍니다.

 

그리고 폴더 안의 ssdtPRGen.sh를 터미널에 드래그 앤 드랍으로 가져다 실행시켜주시면

폴더 안에 ssdt.dsl과 ssdt.aml이 생성되는데, 반드시 ssdt.dsl혹은 ssdt.aml을 챙겨줍니다.

 

3-2. P-State와 C-State 패치를 위한 DSDT, SSDT작업

 

이제, MaciASL을 켜줍니다.

그리고 _PR이라 되어있는 부분을 선택해줍니다.

 

스크린샷 2016-03-07 오후 8.12.39.png

 

이부분을 선택하면, 아마도 우측화면에 아래처럼 작성되어있을거에요.

 

...~~~

    Scope (_PR)
    {
        Processor (CPU0, 0x01, 0x00001810, 0x06) {}
        Processor (CPU1, 0x02, 0x00001810, 0x06) {}
        Processor (CPU2, 0x03, 0x00001810, 0x06) {}
        Processor (CPU3, 0x04, 0x00001810, 0x06) {}
        Processor (CPU4, 0x05, 0x00001810, 0x06) {}
        Processor (CPU5, 0x06, 0x00001810, 0x06) {}
        Processor (CPU6, 0x07, 0x00001810, 0x06) {}
        Processor (CPU7, 0x08, 0x00001810, 0x06) {}
    }

 

...~~~~

 

이제 저 부분에 SSDT 내용을 패치해줄겁니다.

그런데 재미난 사실은? 여러분의 SSDT를 여기에 패치해 줄 때

오로지 P-State만 패치해주고, C-State은 건드리지 않는다는 것입니다.

 

이 이유는 C-State을 순수하게 오리지널로 여러분의 씨피유의 특성에 맞게끔

패치해 주기 위해선 고유 Latency라는 값이 필요한데, 이것을 구할 수 있는 방법이

없기 때문입니다.

 

그로 인하여 시스템에게 권한을 넘겨 알아서 자율적으로 사용하게끔 해주는 것입니다.

 

Processor (CPU0, 0x01, 0x00001810, 0x06) {} 여기를 보시면

{} <<이게 있을겁니다. 이 중괄호 사이에 여러분이 작성하게 될 내용을 넣어줄 것이므로 -_-;;

 

당황하지 마시고 헷갈리시는 부분이 있다면 첨부파일에서

followMeDSDT 압축파일을 다운받아주셔서 이것을 토대로

비슷하게 작성해나가면 되겠습니다.

 

Method (_INI, 0, NotSerialized)
            {
                Store ("eFxsDiT version......: 1.2 / Mac OS X 10.11.3 (Build 15D21)", Debug)
                Store ("host processor.......: Intel(R) Core(TM) i5-4670 CPU @ 3.4GHz", Debug)
                Store ("target processor.....: i5-4670", Debug)
                Store ("number of processors.: 1", Debug)
                Store ("baseFequency.........: 800", Debug)
                Store ("frequency............: 3400", Debug)
                Store ("busFrequency.........: 100", Debug)
                Store ("logicalCPUs..........: 4", Debug)
                Store ("maximum TDP..........: 84", Debug)
                Store ("packageLength........: 31", Debug)
                Store ("turboStates..........: 4", Debug)
                Store ("maxTurboFrequency....: 3800", Debug)
                Store ("machdep.xcpm.mode....: 1", Debug)
            }

 

우선은 위와같은 _INI로 보이는 부분을 아까 추출하였던 ssdt.aml에서 복사하여

DSDT의 CPU0에다가 넣어줍니다.

 

Name (APLF, Zero)
            Name (APSN, 0x04)
            Name (APSS, Package (0x1F)
            {
                Package (0x06)
                {
                    0x0ED8, 
                    0x00014820, 
                    0x0A, 
                    0x0A, 
                    0x2600, 
                    0x2600
                }, 

                Package (0x06)
                {
                    0x0E74, 
                    0x00014820, 
                    0x0A, 
                    0x0A, 
                    0x2500, 
                    0x2500
                }, 

                Package (0x06)
                {
                    0x0E10, 
                    0x00014820, 
                    0x0A, 
                    0x0A, 
                    0x2400, 
                    0x2400
                }, 

                Package (0x06)
                {
                    0x0DAC, 
                    0x00014820, 
                    0x0A, 
                    0x0A, 
                    0x2300, 
                    0x2300
                }, 

                Package (0x06)
                {
                    0x0D48, 
                    0x00014820, 
                    0x0A, 
                    0x0A, 
                    0x2200, 
                    0x2200
                }, 

                Package (0x06)
                {
                    0x0CE4, 
                    0x00013ADD, 
                    0x0A, 
                    0x0A, 
                    0x2100, 
                    0x2100
                }, 

                Package (0x06)
                {
                    0x0C80, 
                    0x00012DD8, 
                    0x0A, 
                    0x0A, 
                    0x2000, 
                    0x2000
                }, 

                Package (0x06)
                {
                    0x0C1C, 
                    0x0001210F, 
                    0x0A, 
                    0x0A, 
                    0x1F00, 
                    0x1F00
                }, 

                Package (0x06)
                {
                    0x0BB8, 
                    0x00011482, 
                    0x0A, 
                    0x0A, 
                    0x1E00, 
                    0x1E00
                }, 

                Package (0x06)
                {
                    0x0B54, 
                    0x00010832, 
                    0x0A, 
                    0x0A, 
                    0x1D00, 
                    0x1D00
                }, 

                Package (0x06)
                {
                    0x0AF0, 
                    0xFC1C, 
                    0x0A, 
                    0x0A, 
                    0x1C00, 
                    0x1C00
                }, 

                Package (0x06)
                {
                    0x0A8C, 
                    0xF041, 
                    0x0A, 
                    0x0A, 
                    0x1B00, 
                    0x1B00
                }, 

                Package (0x06)
                {
                    0x0A28, 
                    0xE4A0, 
                    0x0A, 
                    0x0A, 
                    0x1A00, 
                    0x1A00
                }, 

                Package (0x06)
                {
                    0x09C4, 
                    0xD939, 
                    0x0A, 
                    0x0A, 
                    0x1900, 
                    0x1900
                }, 

                Package (0x06)
                {
                    0x0960, 
                    0xCE0B, 
                    0x0A, 
                    0x0A, 
                    0x1800, 
                    0x1800
                }, 

                Package (0x06)
                {
                    0x08FC, 
                    0xC316, 
                    0x0A, 
                    0x0A, 
                    0x1700, 
                    0x1700
                }, 

                Package (0x06)
                {
                    0x0898, 
                    0xB859, 
                    0x0A, 
                    0x0A, 
                    0x1600, 
                    0x1600
                }, 

                Package (0x06)
                {
                    0x0834, 
                    0xADD4, 
                    0x0A, 
                    0x0A, 
                    0x1500, 
                    0x1500
                }, 

                Package (0x06)
                {
                    0x07D0, 
                    0xA387, 
                    0x0A, 
                    0x0A, 
                    0x1400, 
                    0x1400
                }, 

                Package (0x06)
                {
                    0x076C, 
                    0x9970, 
                    0x0A, 
                    0x0A, 
                    0x1300, 
                    0x1300
                }, 

                Package (0x06)
                {
                    0x0708, 
                    0x8F90, 
                    0x0A, 
                    0x0A, 
                    0x1200, 
                    0x1200
                }, 

                Package (0x06)
                {
                    0x06A4, 
                    0x85E6, 
                    0x0A, 
                    0x0A, 
                    0x1100, 
                    0x1100
                }, 

                Package (0x06)
                {
                    0x0640, 
                    0x7C71, 
                    0x0A, 
                    0x0A, 
                    0x1000, 
                    0x1000
                }, 

                Package (0x06)
                {
                    0x05DC, 
                    0x7331, 
                    0x0A, 
                    0x0A, 
                    0x0F00, 
                    0x0F00
                }, 

                Package (0x06)
                {
                    0x0578, 
                    0x6A25, 
                    0x0A, 
                    0x0A, 
                    0x0E00, 
                    0x0E00
                }, 

                Package (0x06)
                {
                    0x0514, 
                    0x614E, 
                    0x0A, 
                    0x0A, 
                    0x0D00, 
                    0x0D00
                }, 

                Package (0x06)
                {
                    0x04B0, 
                    0x58AA, 
                    0x0A, 
                    0x0A, 
                    0x0C00, 
                    0x0C00
                }, 

                Package (0x06)
                {
                    0x044C, 
                    0x5039, 
                    0x0A, 
                    0x0A, 
                    0x0B00, 
                    0x0B00
                }, 

                Package (0x06)
                {
                    0x03E8, 
                    0x47FB, 
                    0x0A, 
                    0x0A, 
                    0x0A00, 
                    0x0A00
                }, 

                Package (0x06)
                {
                    0x0384, 
                    0x3FEF, 
                    0x0A, 
                    0x0A, 
                    0x0900, 
                    0x0900
                }, 

                Package (0x06)
                {
                    0x0320, 
                    0x3814, 
                    0x0A, 
                    0x0A, 
                    0x0800, 
                    0x0800
                }
            })            

 

그리고 이어서, 위의 부분도 추출한 ssdt.aml에서 복사하여 DSDT에 넣어줍니다.

여기서 부터가 중요한데, _CST, ACST라고 되어있는 부분은 건너 뛸겁니다.

 

그리고 바로 마지막단의 

Method (_DSM, 4, NotSerialized)
            {
                Store ("Method _PR.CPU0._DSM Called", Debug)
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                        0x03
                    })
                }

                Return (Package (0x02)
                {
                    "plugin-type", 
                    One
                })
            }

 

이 문구를 DSDT Cpu0에다가 넣어주시면 되겠습니다.

이렇게 해주셔야 CPU0의 P-State만 패치되고 C-State은 패치되지 않으며

마지막단의 _DSM을 통하여 X86PlatformPlugin.kext, X86PlatformShim.kext가 로드됩니다.

 

만약 두 켁스트가 로드되지 않는경우는 AppleLPC, AppleAPIC 켁스트가 로드되어있지 않아서

정상동작이 되지 않는 것이므로 남은 씨피유에 대한 작업을 마무리 한 후 같이 패치해보도록 하겠습니다.

 

이렇게 CPU0이 끝났다면, CPU1부터는 아래처럼 패치해주시면 됩니다.

Processor (CPU1, 0x02, 0x00001810, 0x06)
        {
            Method (APSS, 0, NotSerialized)
            {
                Store ("Method _PR.CPU1.APSS Called", Debug)
                Return (^^CPU0.APSS)
            }
        }

 

CPU1~3까지는 쿼드코어인 경우

Method (APSS, 0, NotSerialized)
            {
                Store ("Method _PR.CPU1.APSS Called", Debug)
                Return (^^CPU0.APSS)
            }

를 넣어 패치해줍니다.

이때 Method _PR.CPU1 << 이 숫자는 넣어주는 씨피유의 숫자에 맞게 수정해줍니다.

그리고 i7등의 씨피유라면 CPU1~CPU7까지 전부 패치해주시면 됩니다.

 

3-3. P-State와 C-State 패치를 위한 LPC, APIC 작업

 

여러분의 씨피유가 이제 모양새를 갖춰나가고 있습니다.

마지막으로 중요한 LPC, APIC 켁스트를 로드하게끔 패치해주겠습니다.

 

만약 여러분이 켁스트를 확인해 보았더니 APIC는 정상적으로 로드된다!

그러시면 패치해주지 않으셔도됩니다.

 

브로드웰 이상의 기종부터는 APIC의 패치가 필요할 수 있는데,

파이커 아저씨가 올려준 APIC 패치를 소개합니다.

이 패치는 스카이레이크 전용 패치이므로 함부로 적용하시면 안됩니다.

 

해당 패치는 제가 올려둔 글이 있으므로 링크로 대체합니다.

https://www.x86.co.kr/successtip/1078176

 

이어서 AppleLPC.kext를 패치하는 방법입니다.

해당 패치방법은 샨님께서 소개해주신 방법이 있고, 제가 사용하는 간편한 방식이 있는데

두가지 모두 적용이 가능하므로 ^^ 둘다 링크로 대체하겠습니다.

 

1. IanMinChangShin님의 방법으로 AppleLPC 로드하기

https://www.x86.co.kr/successtip/1095488

 

2. DSDT방식으로 AppleLPC 로드하기

https://www.x86.co.kr/successtip/1012055

 

이렇게 패치가 모두 완료되었다면 완성된 DSDT본을 들고 ^^...

클로버나 카멜레온에게 DropDSDT등을 통하여 인식시켜준 후, 재부팅을 시켜줍니다.

 

부팅이 이상없이 되었다면, 여러분이 패치한게 제대로 적용되었는지 확인해보시고

문제없이 적용되었고 켁스트들도 다 로드되었다면 다시 2번으로 올라가서

씨피유가 정상동작하는지 살펴보도록합니다.

 

제대로 동작하는게 확인되었다면, 성공입니다! 축하드려요 짝짝짝.

 

4. 우리를 기다리고 있는 마무리 작업

4-1. AGPM 켁스트 수정하기

 

아직 작업은 모두 끝나지 않았답니다 -_-++ 후후.

진정한 휴식을 위하여 씨피유가 잘 잘 수 있게 만들어 주는 것도 임무입니다 ㅎㅎ.

 

잠자기를 위하여 몇가지 패치를 더 해줄건데, 많지는 않습니다.

첫째로 AGPM패치입니다. 해당 패치는 제가 공개를 안 했는데 말이죠 (궁시렁)

대부분 X86Platform 관련 켁스트가 로드되면 정상적으로 AppleGraphicsPowerManagement.kext라는 것이 함께 로드됩니다.

 

그런데 간혹가다 기종문제로 인하여 AGPM오류가 나오면서 기종 정보를 찾을 수 없다고 나오는데

이런 경우에는 여러분의 기종을 직접 추가로 패치해주어야만 한답니다.

 

AppleGraphicsPowerManagement.kext를 패키지보기 한 후

Info.plist를 첨부파일의 PlistEdit Pro를 다운받아 열어줍니다.

 

혹은 파인더를 열어주시고 command + shift + g 를 동시에 눌러주시고

/System/Library/Extensions/AppleGraphicsPowerManagement.kext/Contents 를 붙여넣기 해주신 후

엔터를 눌러주시면 해당 위치로 바로 이동되니 참고해주시면 감사하겠습니다.

 

이 파일을 바로 수정하면 안되므로 바탕화면에 옮겨줍니다.

그리고 다운받은 PlistEdit Pro로 해당 파일을 열어줍니다.

 

차례대로 IOKitPersonalities -> AGPM -> Machines로 들어가줍니다.

와우 값들이 겁나 많습니다.... 여기서 자신이 사용한 SMBIOS 정보와 일치하는 맥으로 들어가줍니다.

 

저는 iMac 17,1을 사용중이에요.

따라서 Mac-DB15BD556843C820 로 들어가도록 하겠습니다.

 

스크린샷 2016-03-07 오후 8.52.56.png

 

펼쳐보면 위의 사진처럼 저옵가 나와요.

그런데 중요한건 여러분이 사용하는 정보가 저기에 있느냐라는겁니다.

 

아마 대부분 없을건데, 이러한 경우에는 자신이 사용하는 그래픽 기종과 동종모델을

사용하고 있는 맥 시리즈가 있는지 찾아보는것입니다.

 

제 경우는 HD4600을 사용중이기 때문에 iMac 14,2군이 가장 흡사한 그래픽을 사용하므로

해당 맥의 정보를 보기 위하여 위의 사진에서 해당 맥 보드를 찾아 펼쳐줍니다.

 

iMac 14, 2에 해당되는 맥 보드값은 Mac-27ADBB7B4CEE8E61이므로 정보를 살펴보면 아래처럼 나옵니다.

스크린샷 2016-03-07 오후 8.58.08.png

 

10de 시리즈는 지포스시리즈이므로 패스하고

제가 필요한 부분은 IGPU부분이므로 해당 부분을 복사해줍니다.

 

그리고 이 값을 제가 사용중인 smbios 모델과 동일한 부분의 IGPU에다가 덮어씌워줍니다.

스크린샷 2016-03-07 오후 9.00.28.png

위는 적용하기 전 사진입니다. 보기에도 값이 별로 없는게 보이시죠?

 

스크린샷 2016-03-07 오후 9.00.51.png

그러나 패치를 해준 후에는 이렇게 값이 빵빵해졌습니다 ㅎㅎ.

이렇게 패치가 완료되었다면 수정된 plist를 Info.plist라는 이름으로 바탕화면에 저장해줍니다.

그리고 이 Info.plist를 처음에 들어갔던! AGPM.kext의 Info.plist를 대신하여 넣어줍니다.

[만일을 대비하여 원본은 항상 백업해줍니다]

 

그리고 켁스트 유틸리티 등을 사용하여 권한복구와 켁스트 캐시 리빌드를 해줍니다.

첨부파일의 KCPM Utility Pro를 다운받아주신 후 실행시켜주세요.

 

스크린샷 2016-03-07 오후 9.05.30.png

실행하신 후 Maintenance 탭을 누르신 후에 Execute버튼을 눌러줍니다.

그리고 기다리시면 권한복구와 켁스트캐시가 리빌드됩니다.

 

4-2. DSDT에서 USB 수정하기

 

마지막으로 잠자기 시에 자주 깨는 원인으로 꼽히는 USB를 패치하도록 하겠습니다.

이 유에스비는 원인이 매우 다양한편에 속해있는데, 해당 패치를 하면서 ^^...

USB 3.0 픽스까지 같이 해보도록 하겠습니다.

 

유에스비도 잡으려고 열심히 난리부르스를 쳤었는데요, 유에스비 3.0은 인식을 간단하게

시킬 수 있는 패치법이 따로 있습니다.

 

우선은 터미널창을 띄워주시구요, 만약 여러분이 사용중인 보드가 100Series 대의 보드라면

2번으로 패치해주시고 100보다 작은 숫자의 보드라면 1번으로 패치해주시면 되겠습니다.

 

1번패치 (70 ~ 90 Series Board).

sudo perl -pi -e 's|\x00\x00\x83\xBD\x8C\xFE\xFF\xFF\x10|\x00\x00\x83\xBD\x8C\xFE\xFF\xFF\x15|' /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBXHCIPCI.kext/Contents/MacOS/AppleUSBXHCIPCI

 

2번패치 (1xx Series Board).

sudo perl -pi -e 's|\x00\x00\x83\xBD\x8C\xFE\xFF\xFF\x10|\x00\x00\x83\xBD\x8C\xFE\xFF\xFF\x1b|' /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBXHCIPCI.kext/Contents/MacOS/AppleUSBXHCIPCI

 

패치를 완료하신 후에, DSDT를 열어줍니다.

여러분이 위에서 수정하셨던 그 DSDT를 말이죠 ㅎㅎ

 

DSDT에서 EHC1, EHC2, XHC부분을 살펴보셔서 DSM부분이 없으시다면

아래의 값을 위 3곳에다가 모두 넣어주시면 되겠습니다.

 

Method (_DSM, 4, NotSerialized)
            {
                Store (Package (0x0D)
                    {
                        "AAPL,current-available", 
                        0x0834, 
                        "AAPL,current-extra", 
                        0x0A8C, 
                        "AAPL,current-in-sleep", 
                        0x03E8, 
                        "AAPL,current-extra-in-sleep", 
                        0x0834, 
                        "AAPL,max-port-current-in-sleep", 
                        0x0A8C, 
                        "AAPL,device-internal", 
                        0x02, 
                        Buffer (One)
                        {
                            0x00
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }

 

이 값은 모든 버전에서 다 통하는 값은 아닙니다.

여러분에게 맞는 값들이 구글에 돌아다니니 DSDT USB fix 등으로 검색하셔서 찾아보시면

다양한 버전의 패치가 나올겁니다.

 

그리고 위 3곳에 대한 PRW도 확인해줍니다.

 

Method (_PRW, 0, NotSerialized)
            {
                Return (GPRW (0x0D, 0x04))
            }

 

위의 값처럼 0x0D, 0x04가 아니라면 수정해줍니다.

혹시라도 이렇게 수정했는데 잠자기가 잘 안된다거나 동작이상이 보인다면

여러분의 보드에 맞는 패치된 DSDT를 구글링하셔서 구하신 후 참조하셔서 패치해주셔야합니다.

 

대부분은 0x0D, 0x04로도 패치가 잘 먹습니다 ㅎㅎ.

이 패치 또한 followMeDSDT에 패치된 사안이기 때문에 참고하셔서 패치하시면 되겠습니다.

 

유에스비 패치 관련하여 좀 더 자세하게 알고싶으신 분들은?

https://www.x86.co.kr/successtip/1027189 글귀를 참고해주세요.

 

4-3. DSDT에서 기타 Kext 로드하기

 

마지막으로 DSDT에서 KT Controller, IMEI Controller, AppleSMCLMU, AppleACPIEC 등을 로드시켜보겠습니다.

해당 패치방법은 위에서 언급한 LPC를 로드하는 방식과 흡사합니다.

 

아래는 IMEI 패치를 위한 문구입니다.

 

Device (IMEI)
        {
            Name (_ADR, 0x00160000)
            Method (_DSM, 4, NotSerialized)
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                        0x03
                    })
                }

                Return (Package (0x04)
                {
                    "subsystem-id", 
                    Buffer (0x04)
                    {
                        0x70, 0x72, 0x00, 0x00
                    }, 

                    "subsystem-vendor-id", 
                    Buffer (0x04)
                    {
                        0x86, 0x80, 0x00, 0x00
                    }
                })
            }
        }

 

이 값을 PCI0쪽에다가 추가로 넣어주시면 되겠습니다.

물론 subsystem-vendor-id등은 여러분에게 맞는 값으로 넣어주셔야

제대로 켁스트가 로드됩니다!

 

그리고 EC, LMU켁스트들은 로드하는 방법에 대하여

https://www.x86.co.kr/successtip/1104469 글로 작성해두었습니다.

다소 불친절하기는 하여도, 추가적인 패치를 감행하실 때에 도움이 될거라 생각합니다.

 

4-4. 잠자기와 관련된 몇가지 옵션 설정하기

 

이제 마무리로 몇가지 추가 작업만 해주면 됩니다.

pmset -g assertions를 통하여 잠자기에 방해가되는 프로그램을 확인해주세요.

 

잠자기를 하신 후 잠을 자다가 다시 일어나는 경우가 있는데

이 때 바로 터미널에다가 pmset -g assertions를 치시면 아래처럼 잠을 잘 수 없는 이유가 나옵니다.

 

스크린샷 2016-03-07 오후 9.23.46.png

 

위의 경우에는 노래를 틀고 있는 중 (coreaudiod)이며 Near Lock이라는 프로세서로 인하여 잠을 잘 수 없다고합니다.

이렇게 잠을 잘 수 없는 이유를 알 수 있기 때문에 해당 문구를 통하여 잠을 제대로 자는지, 못자는지를 살펴볼 수 있습니다.

 

그리고 pmset -g 를 통하여 시스템 잠자기의 설정값을 확인해주세요.

스크린샷 2016-03-07 오후 9.25.37.png

 

위의 경우에는 파워냅이 1로 활성화되어있고 파워는 4시간이되면 자동으로 종료됩니다.

그리고 대기모드로는 3시간이 지나면 자동으로 전환되며 잠자기의 모드는 3번모드입니다.

 

잠자기도 여러가지 모드로 나뉘어집니다.

 

hibernatemode 0 [얕은 잠자기]

이 모드는 램에만 전류를 유지시켜 잠자기를 유지하는 모드인데 전력소모가 가장 큽니다.

(그런데 컴터 켜논거에 비해선 새발의 피보다도 적습니다.)

하드디스크를 사용하지 않기 때문에 램의 전류가 끊기면 모든 작업이 손실된다는 단점이 있습니다.

다만, 잠자기 옵션 중에서는 복귀시간이 가장 빠릅니다.

 

hibernatemode 1 [깊은 잠자기] (standbyMode)

이 모드는 잠을 자면 하드디스크에 램정보를 모두 저장하고 파워를 차단합니다.

잠자기에서 복귀시 하드디스크의 정보를 읽어 램으로 다시 정보를 복구시키고 작업을 이어갑니다.

속도가 가장 느리지만, 데이터가 안전하게 유지된다는 이점이 있습니다.

[해당 모드는 맥북시리즈의 smbios를 사용중인 경우만 쓸 수 있다고합니다]

 

hibernatemode 3 [얕은잠자기 + 깊은잠자기 = 안전한 잠자기]

이 모드는 일정 시간동안 0번으로 동작하다가 특정 시간이 지나면 1번으로 동작하는 잠자기 모드입니다.

이때 관련하는 옵션으로는 standbydelay, autopoweroffdelay가 관여합니다.

standbydelay는 잠자기 시작후 깊은잠자기까지 들어가는데 걸리는 시간 (초단위)을 의미하며

autopoweroffdelay는 전원차단을 언제 할 것인지에 대한 시간 (초단위)을 의미합니다.

[해당 모드도 맥북시리즈의 smbios를 사용중인 경우만 쓸 수 있다하는데, 확실하지는 않습니다.]

 

hibernatemode 25 [1번과 흡사]

이 모드도 1번과 흡사하나 약간의 동작방식의 차이가 있다고합니다.

자세한건 검색을해보시면 될 것 같습니다.

 

여러분이 주 타겟으로 사용하게될 부분은 0~3번이 될텐데

만일 ssd등을 사용중이시라면 잠자기는 0번 혹은 컴퓨터 종료를 추천드립니다.

파일의 읽고쓰는 과정에서 수명 단축이 일어나기 때문이며, ssd 부팅속도상

잠자기까지 실천해야할 정도로 큰 필요성을 느끼지 못하기 때문입니다.

[노트북이라면 더하겠죠?]

 

해당 값의 수정 방법은 sudo pmset -a hibernatemod 0 식으로 수정하여 사용하시면 되겠습니다.

 

그리고 블루투스를 사용하는 경우에는 옵션에서 블루투스 장비로 깨우기 허용이 있습니다.

이부분을 해제해주시는 것을 추천드립니다.

 

실제로 정품 블루투스 마우스를 사용하는 경우가 아니라면

일부 기종에 대하여 잠자기 시 마우스로 인하여 잠자기가 깨버리는 현상이 일어날 수 있다고

애플 공식 문서에서 언급을 하고 있습니다.

 

잠자기와 관련한 몇가지 문제점들은 아래의 글타래를 참고해주시면 감사드리겠습니다.

https://www.x86.co.kr/successtip/1080724

 

이렇게 모든 패치가 마무리 되었다면 최종적으로

위에서 설명드렸던 방식을 사용하여 켁스트 리빌드를 다시 해주고? 

재부팅을 해줍니다. 문제가 없다면 성공입니다@

[고생하셨습니다!!]

 

5. 마무리를 하며...

 

이렇게 패치가 모두 마무리되었습니다.

여러분의 씨피유가 안녕하기를 바랄 뿐입니다 ㅎㅎ,,,,,.

 

비로소 모든 것들이 정리된듯한 느낌과 함께 개운해지는 것만 같은건 제 착각이려나요?

여러분들의 소중한 의견과 덧글들, 그리고 추천이 지금의 이 글을 탄생시킨 원동력이라 생각합니다 ㅎㅎㅎㅎ.

 

이제 잠자기는 더 이상 연구하는 것이 무리라 생각되어 종료하려합니다.

거의 모든 것들의 종지부를 찍은 것 같은 느낌마저 듭니다만, 커맥의 세계에서는 정답이 없고

끝이 없는 무한한 삽질만이 존재하기때문에 그냥 자기 스스로 어느정도 선을 긋고 만족해야하는 부분이 있는건 어쩔 수 없는 것 같습니다.

 

다만, 얼마나 더 연구하고 더 리얼맥에 가까워 질 수 있느냐는

그러한 선을 긋지 않고 앞으로 계속 나아가는 것과 비례한다고 말할 수 있을 것 같습니다.

 

음,, 어쩌다보니 글이 엄청나게 길어져버렸습니다만

몇몇 글타래들 마저도 다 포함하고 좀 더 구체적으로 작성했다면 아마도

글이 1.5배는 더 길어졌을거라 생각합니다.

 

안타깝게도, 잠자기는 답이 없는 것 같습니다. 이렇게 패치하고 저렇게 패치해도

원하는 방식대로 입맛에 맞게 패치하기가 어려울 뿐 더러 직접적인 패치방법이 없기 때문입니다.

모든 기술이 한데 어우러진 만큼 모든 부분을 패치해야 간접적으로 같이 패치가 될 뿐이라는 것이지요.

 

그래서 잠자기보다는 CPU의 전력관리기술인 P-State과 C-State을 잡는걸 중점으로 기술해놓았다고

보아도 과언은 아닐것입니다. 실로 잠자기에서 CPU로 인한 커널패닉이나 동작이상이 많이 발견되니깐 말이죠.

 

추가로 파워버튼패치 등이 더 있긴 하지만, 이 부분들은 

Method (_PRW, 0, NotSerialized)
            {
                Return (GPRW (0x0D, 0x04))
            }

 

이런 패치를 해주는 것과 비슷한 방식으로 간단한 값들을 수정하면서 적용하는 패치이기 때문에

굳이 설명하지 않은 것들이기도 합니다.

 

저는 여러분이 스피드스텝을 속시원하게 해결하시길 바라는 마음에

그간의 6편도 더 넘는 연재?? 아닌 연재를 해왔었는데, ㅎㅎㅎㅎ 이렇게 마무리되니 좋기도 하고 아쉽기도 합니다.

 

요모조모, 이렇게나 긴 글 읽어주셔서 감사드리며

마지막으로 이 글을 작성하게된 직접적인 이유를 제공해주신

@Ative9Lite님께 감사의 말씀 올립니다.

[ @XEXEXE, @IanMinChangShin, @아이뱅크, @Mactopia 님들께도 감사의 말씀 올립니다]

 

/* 해당 글은 Rev에 따라 내용이 추가작성됨을 알립니다. */

 

- 끝 -

good poor

나힐 goldbat zisqo 말보로한개피 leest**** 뫼르소 soullees 음유시인 꿀밤 에크리스 Soluzers 하수 Ativ9Lite SCENT_APPLE 아이뱅크 JuSungHwang Mactopia D'Artagnan님
18명이 이글을 호평하셨습니다. 0명이 불평하셨습니다.

★ 글쓴이에게 고마우시면 커피한잔 후원(클릭) ★ 추천 정보가 입력되지 않았습니다.

글쓴이의 서명이 비어 있습니다.

★ 글쓴이에게 고마우시면 커피한잔 후원(클릭) ★ 추천 정보가 입력되지 않았습니다.
  • Profile
    2016/03/07
    0 0

    한국 커스텀맥씬에서 족적을 남길만한 글이네요. 특히나 CPU 부분은 제일 중요한 부분이니까요. 차근 차근 따라 해보겠습니다.  정말 감사합니다.

    ★ 답변이에게 고마우시면 커피한잔 후원(클릭) ★ 답변이에게 따뜻한 마음으로 전달됩니다. 엑팔 운영자입니다. 광고 및 파트너 문의는 개별 연락 부탁 드립니다.
  • Profile
    2016/03/08
    0 0
    Mactopia : 한국 커스텀맥씬에서 족적을 남길만한 글이네요. 특히... 에 달린 대댓글입니다.
    좋은 결과 있으시길 바라겠습니다 :D
  • Profile
    2016/03/07
    0 0

    와우 대박입니다!!

  • Profile
    2016/03/08
    0 0
    JuSungHwang : 와우 대박입니다!! 에 달린 대댓글입니다.
    감사합니다!!
  • Profile
    2016/03/07
    0 0

    쉬엄쉬엄 따라 하여야 겠습니다.

  • Profile
    2016/03/08
    0 0
    아이뱅크 : 쉬엄쉬엄 따라 하여야 겠습니다. 에 달린 대댓글입니다.
    천천히 음미(?)하며 차한잔의 여유를 갖고 하는게 중요하다 생각합니다 ㅎㅎㅎ
  • Profile
    2016/03/07
    0 0

    엄청나군요.. 감사합니다.

  • Profile
    2016/03/08
    0 0
    대마왕 : 엄청나군요.. 감사합니다. 에 달린 대댓글입니다.
    읽어주셔서 감사드립니다.
  • Profile
    2016/03/07
    0 0

    복잡해서 손대기가..그래도 도전해보겠습니다.. 감사합니다 

  • Profile
    2016/03/08
    0 0
    SCENT_APPLE : 복잡해서 손대기가..그래도 도전해보겠습니다.. 감사합... 에 달린 대댓글입니다.
    파이팅입니다!! ㅎㅎ
  • Profile
    2016/03/08
    0 0

    매번 댓글을 달진 않지만 항상 감사하며 쓰신 강좌 잘 보고 있습니다.

    고생하셨습니다. ^^*

  • Profile
    2016/03/08
    0 0
    comed78 : 매번 댓글을 달진 않지만 항상 감사하며 쓰신 강좌 잘 ... 에 달린 대댓글입니다.
    감사합니다, comed78님 ^^
  • Profile
    2016/03/08
    0 0

    저는 그간 강좌 따라하면서 이것저것 다 잡아놔서..^^ 몇개만 손보면 될 것 같아요. 사실 실사용에 지장을 안주는 마이너 요소지만, 이젠 이런거에 끌리네요

  • Profile
    2016/03/08
    0 0
    IanMinchangShin : 저는 그간 강좌 따라하면서 이것저것 다 잡아놔서..^^ ... 에 달린 대댓글입니다.
    ㅎㅎㅎ 말씀에 동의합니다.
    눈에 보여지는 부분들은 아니지만 마이너한 요소들도 잡아주면 무언가 조금은 나아지는 것 같아서 무시는 못하겠더군요….
  • Profile
    2016/03/08
    1 0

    i3770k-iMac:~ iMac370k$ Sudo chown -R 0:0 /Users/iMac370k/Downloads/AppleIntelInfo.kext 

    Password:

    i3770k-iMac:~ iMac370k$ Sudo kextLoad /Users/iMac370k/Downloads/AppleIntelInfo.kext

    /Users/iMac370k/Downloads/AppleIntelInfo.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8).

    이유가 뭐죠

    다른 것으로는 확인이 되지만 이것으로는 안됩니다.

  • Profile
    2016/03/08
    0 0
    아이뱅크 : i3770k-iMac:~ iMac370k$ Sudo chown -R 0:0 /Users/iM... 에 달린 대댓글입니다.
    sudo chmod 775 /Users/iMac370k/Downloads/AppleIntelInfo.kext도 한번 해주신후 로드해보시면 될거같습니다 ㅎㅎ
  • KsJ : sudo chmod 775 /Users/iMac370k/Downloads/AppleIntel... 에 달린 대댓글입니다.

    스크린샷 2016-03-08 오후 4.56.22.png

     

    감사합니다.

    지우고 다시 다운하니까 문제없이 되었습니다.

    저는 cpu low freguency Mode  1600인데

    ksj님은 cpu low freguency Mode 800입니다.

    어디서 잘못한 것입니까?

    스크린샷 2016-03-08 오후 4.28.48.png

     

     

  • Profile
    2016/03/08
    1 0
    아이뱅크 :   감사합니다. 지우고 다시 다운하니까 문제없... 에 달린 대댓글입니다.
    Low frequency 등은 씨피유의 스펙에 따라 달라질 수 있다는 점을 감안해주셔야합니다. i7-3770k 기종은 확인해보니 1600Mhz가 최저 동작주파수라고 나와있음을 확인했습니다.

    따라서 첨부해주신 스샷은 아무런 문제가 없이 논터보 최저배수 16~ 터보 맥스배수 39까지 P-State이 매우 잘 동작한다고 볼 수 있겠습니다 ㅎㅎㅎ
  • KsJ 님, 제 DSDT 첫 수정때부터, 지금까지 명 강의를 따라와서 정말 많이 안정화 된 것 같습니다. 정말 감사합니다!!

    스크린샷 2016-03-08 오전 10.21.39.png스크린샷 2016-03-08 오전 10.24.55.png

    스피드스텝은 잘 잡힌것 같습니다! 실행중이던 프로그램들 다 종료하고 나니 안정적으로 나오네요~!

    마지막 남은 숙제는 1.ac어탭터 연결과 관련된 배터리 인식과  2.wifi USB를 제거하거나 접속프로그램을 종료하지 않아도 잠자기가 되는것인데...

    차근차근 삽질해보겠습니다~!

    아마 삽질하다 안되면 또 질문으로 올라올것 같네요.

    이제 강의하실게 또 없을까요? 기다려지는데...클로버 config설정의 디테일한 설명. 이런것도 좋은것 같습니다만...

    아무튼 수고하셨고 앞으로도 기대하겠습니다~!!^^

     

  • Profile
    2016/03/08
    0 0
    Ativ9Lite : KsJ 님, 제 DSDT 첫 수정때부터, 지금까지 명 강의를 ... 에 달린 대댓글입니다.
    ㅎㅎㅎㅎ 스피드스텝이 넘나 이쁘게 잘 잡혀있는것이 참으로 보기가 좋아보입니다. (전 아무래도 심각한 컴덕후인가봅니다 ㅡㅡ..)

    정말 감사드려요, 꾸준히 읽어주셨다니... 감격이네요 T…

    강좌는 아마도 쓰게되면, Ozmosis이 관해서 쓰게 될 것 같습니다.옛 구버전에 대한 글들은 있지만 최신버전에 대한 글들이 없기 때문입니다….

    클로버는 왠지 모르게(?) 좀 꺼려지네요 ㅎㅎㅎ…
    결코 공부하고 싶지 않아서가 아닙니다… 절대로요....... ㅋㅋ
  • 스크린샷 2016-03-08 오후 1.59.41.png

     

    다 죽인상태인데도

    파워는 그 이상으로 떨어지지 않네요

    프리퀀시도 저는 요동을 칩니다.

    온도는 좀 낮아졌네요

  • Profile
    2016/03/08
    0 0
    아이뱅크 :   다 죽인상태인데도 파워는 그 이상으로 떨어... 에 달린 대댓글입니다.
    파워값은 i7 3770k 기종이시니 값이 다르게 나오는게 정상일듯 합니다. 전력관리 기술이 제대로 추가된건 하스웰부터니까요.

    구글로 동종 모델의 파워소모량을 검색하보시는 것도 나쁘지는 않을거라 생각됩니다 ㅎㅎ
  • Profile
    2016/03/08
    0 0

    쉽고 체계적으로 설명해주셨네요.

    덕분에 개념까지 한번에 정리하고 갑니다.

    감사합니다.

  • Profile
    2016/03/08
    0 0
    delete.MAC : 쉽고 체계적으로 설명해주셨네요. 덕분에 개념까지 ... 에 달린 대댓글입니다.
    읽어주셔서 감사드립니다 ^^
  •  KT Controller, IMEI Controller, AppleSMCLMU, AppleACPIEC  등

    로드하는 이름이 무엇입니까

    로드하기 위해서 

     Device (IMEI)
            {
                Name (_ADR, 0x00160000)
                Method (_DSM, 4, NotSerialized)
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Return (Buffer (One)
                        {
                            0x03
                        })
                    }

                    Return (Package (0x04)
                    {
                        "subsystem-id", 
                        Buffer (0x04)
                        {
                            0x70, 0x72, 0x00, 0x00
                        }, 

                        "subsystem-vendor-id", 
                        Buffer (0x04)
                        {
                            0x86, 0x80, 0x00, 0x00
                        }
                    })
                }
            }

            Device (KT)
            {
                Name (_ADR, 0x00160003)
            }

            Device (MCHC)
            {
                Name (_ADR, Zero)
            }
        }

    이부분은 첨가해 놓았습니다.

    문제1)

    AppleSMCLMU, AppleACPIEC  등은 로드되지 않았구요

    대신 ACPI_SMC_PlatformPlugin 이것이 로드되었습니다.

    문제가 없는 것인지

    증상1. 안정화 화면 16~38까지만 보이고 39가보이지 않는 현상

     

     "subsystem-id", 
                        Buffer (0x04)
                        {
                            0x70, 0x72, 0x00, 0x00
                        }, 

                        "subsystem-vendor-id", 
                        Buffer (0x04)
                        {
                            0x86, 0x80, 0x00, 0x00

    스크린샷 2016-03-09 오후 12.08.32.png

     

    본인의 것을 집어넣으라 했는데 확인 방법은 무엇을 확인해주어야 하나요

    pci에 관련된 값이 많이 있어서

     

    3. 더 추가하기 위해서 해주어야 할 작업은 무엇입니까?

     

     

  • Profile
    2016/03/10
    0 0
    아이뱅크 :  KT Controller, IMEI Controller, AppleSMCLMU, Apple... 에 달린 대댓글입니다.
    1. MEI는 8086, 1E3A, 1458, 1C3A 로 되어있는 값이 MEI드라이버가 지니는 정보값입니다.

    2. ACPI_SMC~ 정도만 로드되어도 큰 문제는 없습니다. (저도 X86을 제하고 이것을 로드시켜보았었는데, 잠자기 등 큰 문제는 없었고 다만 에너지 절약에서 모든 메뉴가 나타나지 않는 정도였습니다.)

    3. 스피드 스텝과 잠자기를 때려잡는 것은 때로 자신만의 기준이 있어야합니다. 딱 이정도 기능만 수행하면 된다하는 작은 잣대인 셈이지요. 아이뱅크님께서 확인하시어 이정도 동작이면 큰 무리없이 동작하겠다 하는 선에서 멈추시면 되겠습니다.
  • Profile
    2016/03/10
    0 0
    KsJ : 1. MEI는 8086, 1E3A, 1458, 1C3A 로 되어있는 값이 ME... 에 달린 대댓글입니다.

    감사합니다.

    새로운 단계를 도약하기 위해서는 컴파일러에 대한 지식이 필요하므로 지금 현시점에서 

    멈출줄도 알아야겠습니다. 달리는 기관차에 감당할 수 없는 브레이크 능력이니까요.....

  • Profile
    2016/03/09
    0 0

    좋은 자료 감사 합니다....차근차근 따라 도전해 볼께요

     

  • Profile
    2016/03/10
    0 0
    freedon**** : 좋은 자료 감사 합니다....차근차근 따라 도전해 볼께... 에 달린 대댓글입니다.
    감사합니다 ^^*
  • Profile
    2016/03/09
    0 0

    x99에 5820k 사용 중입니다.. 인텔 가젯 상에서 IA 수치는 항상 안나왔구요.. 뭘하든..

    그리고 스피트스텝 확인 하기 위한  kext 로드 하면 바로 뻗어 버려요.. 세가지 정도 방법이 있던데..

    요번 방법도 뻗어 버립니다..

    5820k 는 해당 사항이 없는가 봅니다;;;

    잠자기만 갔다 나오면 마치 풀 스피드 못내는 문제 때문에 스피드 스텝 의심 하고 있지만..

    스피드 스텝 잘 돼는지 확인 조차 할 수 었으니 너무 답다하네요

    다시 정독 하겠습니다

  • Profile
    2016/03/10
    0 0
    도마뱀왕 : x99에 5820k 사용 중입니다.. 인텔 가젯 상에서 IA 수... 에 달린 대댓글입니다.
    브로드웰과 스카이레이크군에 대한 정보가 적은관계로, 내용이 불충분하여 생긴 부분이라 생각합니다. 조만간 자료를 더 구해다 업데이트 해보도록 하겠습니다 ㅎㅎ

    감사합니다.
  • Profile
    2016/03/09
    0 0

    LPC 까지 로드 시켰는데

    CPU가 E3-1231v3 서버용인 제온이라 그런건지

    스피드 스텝 8, 28~38 

    IA 소모전력 4W 이하로 안내려가네요

     

    APGM 은 내장그래픽 인거죠?

    내장 그래픽 없는 제온은 해당 사항 없는거 같고

    IMEI는 패치하려고 보니 같은 주소값 자리에 HECI라는게 있네요

    여기서 부터는 멘붕이라 포기했습니다

  • Profile
    2016/03/10
    0 0
    Soluzers : LPC 까지 로드 시켰는데 CPU가 E3-1231v3 서버용인 ... 에 달린 대댓글입니다.
    글 내용이 이렇게 적혀있는데도 불구하고 다시 생각해보니 불친절한게 맞는 것 같습니다. LPC잡을 때처럼? 자신의 ACPi 테이블 정보를 IOregistryExplorer를 통하여 IMEI 주소값을 알아내어 그 값으로 패치해주어야합니다. 조만간 추가로 보강해놓도록 하겠습니다.

    AGpM은 외장그래픽도 포함되는 패치입니다. 제 경우는 내장을 사용하기 때문에 예시로 저렇게 들었습니다 ㅎㅎ
  • Profile
    2016/03/13
    0 0

    스피드스텝에 대해 체계적인 개념있는 글입니다/

    잊고살았던 스피드스텝은 언제 한번 천천히정독하면 따라해봐야겠네요.

    수고하셨습니ㅏ다

  • Profile
    2016/03/13
    0 0
    돌팍 : 스피드스텝에 대해 체계적인 개념있는 글입니다/ 잊... 에 달린 대댓글입니다.
    감사합니다, 돌팍님 ㅎㅎ
  • 매번 좋은 강의 감사 드립니다
    질문이 하나 있습니다. 제 dsdt는 문제가 없는데 ssdt를 인젝트 하려했지만 dsdt안에 scope(_PR) 섹션이 없는데 어떻게 해야 할지 모르겠군요..

    제 dsdt 한번 봐주시면 감사하겠습니다

  • Profile
    2016/03/14
    0 0
    쑈리 : 매번 좋은 강의 감사 드립니다 질문이 하나 있습니다. ... 에 달린 대댓글입니다.
    dsdt에 pr섹션이 없는 경우 강제로 만들어서 인젝션하면 문제가 생길 수 있습니다. 클로버를 사용하신다면 drop ssdt등을 사용하셔서 위에 방법으로 ssdt를 만드신 후 수정하셔서 ssdt만 따로 적용하시면 될 것 같습니다.
  • Profile
    2016/03/14
    0 0

    답변 감사합니다. 그러면 제 경우에는 맥프로6.1 로 적용 했을경우에는 LPC와 APCI 켁스트는 로드가 돼는데 AGPM,X86PlatformPlugin.kext

    X86PlatformShim.kext 이 켁스트 들은 로드가 안돼네요.. 그래서 맥프로5,1 로바꾸게 돼면 AGPM 은 로드가 돼구요..무슨 문제인지 점점 일이 커지는 느낌이네요...

  • Profile
    2016/03/14
    0 0
    쑈리 : 답변 감사합니다. 그러면 제 경우에는 맥프로6.1 로 적... 에 달린 대댓글입니다.

    대체로 X86PlatformPlugin이 로드가 되면 Shim 및 AGPM까지 같이 로드가 됩니다.

    그래서? AGPM패치를 굳이 해주지 않아도 본문의 x86을 로드하기 위하여 _dsm구문을 추가해주게되는데,

    이 경우가 좀 애매한 것이 맥프로 제품군의 경우에는 시스템 사양이 월등하여? AGPM을 따로 필요로 하지 않는다는 것입니다.

    [실제로 X86에서 관리하는 plist파일에 AGPM등이 서술되어있지 않습니다..]

     

    우선은 X86관련 켁스트를 로드시키는데에 주 목적을 두시면 될 것 같단 생각입니다 ^^.

  • Profile
    2016/03/14
    0 0
    KsJ : 대체로 X86PlatformPlugin이 로드가 되면 Shim 및 AGPM... 에 달린 대댓글입니다.
    그렇게 되는군요..
    그러면 저같은경우에는 dsdt에 x86켁스트 로드를 위해 dsm을 추가 해야하는데 cpu부분이 없어 어디에 추가해줘야 할까요..
    참 그리고 스피드 스텝은 12에서 33까지 1단위로 다 잡혔습니다
  • Profile
    2016/03/14
    0 0
    쑈리 : 그렇게 되는군요.. 그러면 저같은경우에는 dsdt에 x86... 에 달린 대댓글입니다.

    클로버 부트로더나 카멜레온이시라면 drop ssdt로도 ssdt를 따로 만드셔서 로드가 가능한것으로 알고 있습니다.

    이 방법으로 해보시고도 안되신다면 dsdt에 _PR구문을 강제로 만들어주셔야할텐데,,, 커널패닉까지는 감안하시고 작업하셔야 할 것 같습니다.

  • Profile
    2016/03/14
    0 0
    KsJ : 클로버 부트로더나 카멜레온이시라면 drop ssdt로도 ss... 에 달린 대댓글입니다.

    제가 가지고 있는 리얼 맥북 프로 아이맥 맥프로 5,1 에서도 x86platform 관력 켁스트는 로드가 안되있네요.. 

    갈팡을 못잡겠네요... SSDT는 추출해서 사용 하니 스피드 스텝은 잡힌 상태구요.. x86켁스트는 반드시 로드가 되야만 하는 켁스트는 아닌거 같기도 하고.. 

    분명 제 DSDT 안에도 CPU부분이 있긴 있습니다만 정보가 이미 들어가 있네요...

    저녁때 퇴근후 강제적으로 _PR 섹션만들어서 테스트 해보겠습니다.

    답변 감사드립니다.

  • DSDT.aml ssdt.aml 안녕하세요 어제 저녁에 테스트 해봤습니다. SSDT가 없어 DSDT 에 x86켁스트 로드를 위한 DSM문구를 넣어서  부팅해본결과 X86켁스트와 LPC켁스트 등이 로드 된걸 확인하였습니다. 그러면서 스피드 스텝이 망가지더군요.. SSDT 를 적용하면 아예 12배수 고정으로 작동하구요 그래서 오늘은 DSDT에 SSDT를 인젝트 시켜봤습니다. 

    제 DSDT에는 씨피유 섹션이 _SB 섹션에 C000,C001,C002 이런타입으로 돼있어서 이쪽에 적용해보았습니다. 과연 잘 될지 모르겠군요..
    저녁때나 테스트가 가능해서.. KSJ님께서 한번 봐주셨으면 하는데 괜찮으시려나 모르겠네요 
    항상 도움주시는 좋은강의 감사드립니다
  • Profile
    2016/03/15
    0 0
    쑈리 : DSDT.aml ssdt.aml 안녕하세요 어제 저녁에 테스트 해... 에 달린 대댓글입니다.
    저도 저녁에서야 파일을 열어서 볼 수 있을 것 같습니다 ㅠ.
    집에 도착하면 확인 후 다시 답글 달아놓겠습니다.

    감사드려요 ^^
  • Profile
    2016/03/15
    0 0
    네 감사합니다 . 
    좋은 하루 되세요.
  • Profile
    2016/03/15
    0 0
    쑈리 : 네 감사합니다 . 좋은 하루 되세요. 에 달린 대댓글입니다.
    ...? 보내주신 파일을 잘 열어보았습니다.
    씨피유는 대부분 4코어정도이고 기껏 써도 8코어인데, 보내주신 파일은 0~F로 무려 16코어입니다만, 맞는것인지요?
    만일 사용하시는 시스템이 16코어시스템이 맞다면.. 이렇게 적용하시는게 맞다고 생각되기는 합니다만;

    아니라고 하신다면 ssdtPRGen.sh로 생성시킨 오리지널 ssdt를 보내주시면 감사드리겠습니다.
  • Profile
    2016/03/15
    0 0
    KsJ : ...? 보내주신 파일을 잘 열어보았습니다.씨피유는 대... 에 달린 대댓글입니다.
    지금 컴퓨터를 할수가 없어서 ssdt를 보내드리기는 얼렵네요..
    씨피유 8코어16쓰레드 입니다.. 대역폭때문에 사용하게 되었네요..
  • Profile
    2016/03/15
    0 0
    쑈리 : 지금 컴퓨터를 할수가 없어서 ssdt를 보내드리기는 얼... 에 달린 대댓글입니다.
    엄청난 씨피유를 사용하고 계시는군요... ㄷㄷ ;;
    그런 기기에 스피드스텝? 기술이 적용되어있을지가 의문입니다.
    간혹 시스템급 제품들은 전력과는 무관하게 항상 성능을 유지하여야 해서, 스피드스텝이나 터보부스트 기능을 제외하기도 하기때문입니다.
  • Profile
    2016/03/15
    0 0
    KsJ : 엄청난 씨피유를 사용하고 계시는군요... ㄷㄷ ;;그런 ... 에 달린 대댓글입니다.
    이번에 대란이 일어난 시피유라서 완전 저가에 구매했네요 보드가 구하기 힘들었죠..
    해외포험 보니까 다 잡아서 쓰더라구요 리얼 맥프로를 사용하다보니 욕심이 생겨서..
    밤에 테스트해보고 또 말씀드리겠습니다
  • Profile
    2016/03/16
    0 0
    쑈리 : 이번에 대란이 일어난 시피유라서 완전 저가에 구매했... 에 달린 대댓글입니다.
    그런 사유가 있었던 제품이었군요 ㅎㅎ
    생소한 씨피유라, 적잖이 당황했습니다 ㅜ;;
  • KsJ : 그런 사유가 있었던 제품이었군요 ㅎㅎ 생소한 씨피유... 에 달린 대댓글입니다.

    DSDT.aml SSDT.aml 안녕하세요 요즘 정신없이 바빠 컴퓨토를 많이 못만져서 잠깐 테스트 해봤네요.. 일단 문제는 SSDT가 말을 안듣네요 맥프로 6,1로 사용하면서 씨피유가 샌디브릿지라고 추출할때 지원안한다고 에러떠서 강제로 만들었는데 적용을 하면 최저배수로만 작동해버리네요.. 

    해외포럼을 많이 돌아보니 방법은 많은데 너무 복잡해지네요.. 일단 어제 말씀하셨던 SSDT 올려보겠습니다 
    귀찮게 해드려서 죄송하네요..
  • KsJ : 그런 사유가 있었던 제품이었군요 ㅎㅎ 생소한 씨피유... 에 달린 대댓글입니다.

    안녕하세요 KSJ님.. 

    어제 다시 AICPUPM 켁스트 패치를 다시 한후 부팅하니 스피드 스텝 배수는 잘 나오고는 있습니다.
    하지만 dmesg 내용을 보면 p stat , c stat 에 관련하여 에러가 뜨는데 무슨이유인지 알수 있을까요...
    스크린샷 2016-03-17 오전 12.41.24.png

     

  • Profile
    2016/03/17
    0 0
    쑈리 : 안녕하세요 KSJ님..  어제 다시 AICPUPM 켁스트 패치... 에 달린 대댓글입니다.
    아무래도 다른 패치방법이 필요할 것 같습니다...;;
    혹시 사용중이신 CPU 모델명좀 정확히 알려주시면 감사드리겠습니다.
  • Profile
    2016/03/17
    0 0
    KsJ : 아무래도 다른 패치방법이 필요할 것 같습니다...;; 혹... 에 달린 대댓글입니다.

    XEON E5-2670 v1 입니다.

  • Profile
    2016/03/17
    0 0
    쑈리 : XEON E5-2670 v1 입니다. 에 달린 대댓글입니다.
    개인적으로 작업하여 오늘 중에 덧답글로 파일을 올려보도록 하겠습니다. 잘 되었으면 좋겠네요 ...
  • Profile
    2016/03/17
    0 0
    KsJ : 개인적으로 작업하여 오늘 중에 덧답글로 파일을 올려... 에 달린 대댓글입니다.
    감사합니다..
    제가 지식이 부족해 귀찮게 해드렸네요
    저도 도움이 되고 싶은데 해드릴수 있는것이...
    혹시나 리얼맥 관련하여 필요하신 정보같은것들이라도 있으시면 최대한 보내드릴게요 맥북 아이맥 맥프로 다 사용 할수 있습니다.
    정말 감사 드립니다
  • Profile
    2016/03/17
    0 1
    쑈리 : 감사합니다.. 제가 지식이 부족해 귀찮게 해드렸네요 ... 에 달린 대댓글입니다.
    ㅎㅎㅎ 괜찮습니다.
    저도 좋아서 하는거니까요 ^^;
    전공이 이쪽이기도 하고 그래서 말이죠...()

    감사합니다 @
  • 쑈리 : 감사합니다.. 제가 지식이 부족해 귀찮게 해드렸네요 ... 에 달린 대댓글입니다.

    이걸..로? 한번 해보시겠어요;

    아무래도 건드리기가 쉽지가 않네요.... ()

    패닉이 날 수 있으니 복구준비는 꼭 해주시구요.

     

    큰 도움 못되어드려 죄송합니다 ㅜ.

  • Profile
    2016/03/18
    0 0
    KsJ : 이걸..로? 한번 해보시겠어요; 아무래도 건드리기가 ... 에 달린 대댓글입니다.
    감사합니다..
    그런데 어떻게 받아야 하는건지...

  • Profile
    2016/03/18
    0 0
    쑈리 : 감사합니다..그런데 어떻게 받아야 하는건지... 에 달린 대댓글입니다.
    헐, 첨부를 했는데 파일이 제재로 올라가지를 않았군요. 오늘 점심때 다시 올리겠습니다... ㅜㅜ;
  • Profile
    2016/03/18
    0 0
    KsJ : 헐, 첨부를 했는데 파일이 제재로 올라가지를 않았군요... 에 달린 대댓글입니다.
    안녕하세요.
    어제 밤에 사투끝에 에러를 잡았습니다. SSDT 문제가 아니었던걸로 결론을 냈습니다.
    문제는 DSDT에 x86켁스트 로드를 위해 DSM문구를 추가한것때문에 SSDT를 불러 오지못한거 같더군요.. 스피드 스텝과 에러 두개가 다 해결된듯 하네요.. 
    오늘 마지막으로 확인 해보려구요.. 일단 만들어주신 SSDT도 적용 해보고 싶습니다.
    그리고 정말 감사합니다.
    이제 문제는 한가지 남았네요.. 잠자기후 사운드가 죽는 문제인데 팁란에 올라온 여러 방법을 써봤는데 안되더라구요 
    이문제만 해결하면 끝이네요 정말 좋은강의와 도움 감사드립니다.
  • Profile
    2016/03/18
    0 0
    쑈리 : 안녕하세요.어제 밤에 사투끝에 에러를 잡았습니다. SS... 에 달린 대댓글입니다.
    아, 그렇군요 ㅎㅎ
    그렇다면 굳이 제가 만들어둔 파일은 필요하지 않을 것 같습니다. 만들어놓고 어려주신 것과 비교해보았으나, 크게 다른점을 찾지를 못했거든요.

    저녁에 확인해보신다니(?) 잘 되면, 이걸로 종지부를 찍어도 좋겠단 생각입니다 ^^ 미리 축하드려요 ㅎㅎㅎㅎ
  • Profile
    2016/03/18
    0 0
    KsJ : 아, 그렇군요 ㅎㅎ 그렇다면 굳이 제가 만들어둔 파일... 에 달린 대댓글입니다.
    감사합니다.
    밤에 비몽사몽 테스트 하느라 몇번을 했지만 마지막으로 다시 보려구요..
    사운드때문에 불안감이 남아있지만 꼭 해결해보렵니다
    매번 감사드립니다
  • Profile
    2016/03/18
    0 0
    쑈리 : 감사합니다. 밤에 비몽사몽 테스트 하느라 몇번을 했지... 에 달린 대댓글입니다.
    꼭 성공하시길 바라겠습니다!
  • Profile
    2016/03/16
    0 0

    이번에 가입한 상품 바꾸고 난후 잠자기가 안됩니다.

    원인이 블투같은데 어떻게 해야할지 모르겠는데요

    블투 선을 빼고 잠자기하면 잘되는데 죽이고 해도 안됩니다.

    대략 난감입니다.

       id=522  level=255 0x4=USB mod= description=com.apple.usb.externaldevice.1d170000 owner=BRCM20702 Hub

       id=523  level=255 0x8=BT-HID mod= description=com.apple.driver.IOBluetoothHIDDriver owner=AppleBluetoothHIDKeyboard

       id=524  level=255 0x8=BT-HID mod= description=com.apple.driver.IOBluetoothHIDDriver owner=BNBTrackpadDevice

    Idle sleep preventers: IODisplayWrangler

    ibankui-iMac:~ ibank$  id=522  level=255 0x4=USB mod= description=com.apple.usb.externaldevice.1d170000 owner=BRCM20702 Hub

    -bash: 0x4=USB: command not found

    ibankui-iMac:~ ibank$    id=523  level=255 0x8=BT-HID mod= description=com.apple.driver.IOBluetoothHIDDriver owner=AppleBluetoothHIDKeyboard

    -bash: 0x8=BT-HID: command not found

    ibankui-iMac:~ ibank$    id=524  level=255 0x8=BT-HID mod= description=com.apple.driver.IOBluetoothHIDDriver owner=BNBTrackpadDevice

    -bash: 0x

  • 94360CD가 2개여서 달라 거기까지 테스트 해보아야 하나

    일단은 원상복귀하니 정상 잠자기가 됩니다.

    스크린샷 2016-03-16 오전 10.56.47.png

     

  • Profile
    2016/03/16
    0 0
    아이뱅크 : 94360CD가 2개여서 달라 거기까지 테스트 해보아야 하... 에 달린 대댓글입니다.
    후덜덜합니다…. 보기에는 유에스비단 문제인걸로 보이는데, 정확한 원인을 규명하려면 다소 시간이 오래걸리지 않을까 싶습니다.
  • Profile
    2016/03/16
    0 0
    KsJ : 후덜덜합니다…. 보기에는 유에스비단 문제인걸로 보이... 에 달린 대댓글입니다.
    잠자기는 이번 공구와 관련이 됩니다. usb의 블루투스와 문제가 있습니다.

    pmset -g assertions을 확인해보니

    잠자기시 문제가 있습니다.

    id=522  level=255 0x4=USB mod= description=com.apple.usb.externaldevice.1d170000 owner=BRCM20702 Hub

    -bash: 0x4=USB: command not found

    -bash: 0x8=BT-HID: command not found

    94360CD 바꾸어봐도 똑같은 증상입니다.

    leedaeri님은 저와다른  ce카드를 쓰는데도 잠자기가 되지 않는다고 했습니다.

    블투 코드를 빼면 잠자기 정상으로 잘됩니다.


    받으시면 확인 바랍니다.

  • Profile
    2016/03/16
    0 0
    아이뱅크 : 잠자기는 이번 공구와 관련이 됩니다. usb의 블루투스... 에 달린 대댓글입니다.
    흠, 한번 받으면 확인해보겠습니다.
    [길면 한 나흘정도 걸릴 것 같네요 ㅎㅎ...]
  • Profile
    2016/03/16
    0 0
    KsJ : 흠, 한번 받으면 확인해보겠습니다. [길면 한 나흘정도... 에 달린 대댓글입니다.

    이번에 ksj님이 올려놓으신 신형 Slice는 FakeSMC.kext 는 부팅조차 되지 않습니다.

     

    전에 올려 놓았던 FakeSMC_6_19_1406버전, 첨부파일로 올려놓았던 것,  FakeSMC.kext 도 부팅조차 안됩니다.

     

    아무리 수정해도 안되고요 
    Slice는 FakeSMC.kext 방식은 내컴에 잘안맞는겁니까.
    시간을 넉넉하게 잡고 오즈모시스 작업을 위해 준비중인데 ....문제가 발생되네요
    오즈모시스에서는 Slice의 방식이 더 맞다고 하던데요 ..
  • Profile
    2016/03/16
    0 0
    아이뱅크 : 이번에 ksj님이 올려놓으신 신형 Slice는 FakeSMC.kext... 에 달린 대댓글입니다.
    흠.., 오즈모시스 시스템으로 교체를 하신것인가보군요.
    확인해보니 해당 켁스트는 코즐렉의 netkas쪽 작품인걸로 알고있습니다.

    원래 오즈모시스 원형?이 말씀하신대로 슬라이스 방식의 켁스트 (smcEmul~)로 동작하는지라
    코즐렉하고는 연이 아닌걸지도 모르겠단 생각입니다.

    [일단, 저는 167x에다 넣고서 사용중인데 문제 없이 잘 사용하고 있는 중이라 ^^; 예로 들었는데, 문제가 된다면... 다른 켁스트로 시도해보시는 것도 좋다 생각합니다. 요모조모 중요한 녀석이니깐 말이죠]
  • Profile
    2016/03/16
    0 0
    KsJ : 흠.., 오즈모시스 시스템으로 교체를 하신것인가보군요... 에 달린 대댓글입니다.
    오즈모시스로 바꾸어 아이메세지까지 정상으로 뜹니다.
  • Profile
    kim
    2016/03/16
    1 0
    주옥같은글 눈팅만 하다가 뎃글하나 남기지 않아 죄송합니다

    너무 많은 도움이 되었습니다
  • Profile
    2016/03/16
    0 0
    kim : 주옥같은글 눈팅만 하다가 뎃글하나 남기지 않아 죄송... 에 달린 대댓글입니다.
    도움이 되었다니, 기쁘네요 ^^.
    덧글은 원할 때 남기는거죠 ㅎㅎㅎㅎ.
    읽어주셔서 감사드립니다@
  • KsJ 님 강좌 보면서 차근히 실행하고 있습니다.

     

    CPU : i7-6700

    M/B : GA-H170-HD3

    GPU : GTX970

    RAM : 8g (samsung)

     

    사양으로 엘캐피탄 설치하였고, KsJ 님 강좌 3번까지 진행하였습니다.

    첨부 사진 보시면, Speedstep 은 동작하는 것 같은데 전압은 높은 것 같습니다.

    프로그램은 최대한 끄고 찍은 사진입니다.

    DSDT.aml

    어떤 것이 잘못되었을지 알 수 있을런지요..

     

    그리고 4-1 강좌 AGPM kext 수정 시,

    외장 그래픽 (GTX970)의 경우 어찌 해야 할지 잘 모르겠는데...

    Geforce 를 쓴 최근 맥 모델에 대한 IGPU를 복사하여 현재 쓰고 있는 맥모델에 붙여넣으면 되는가요?

     

    스크린샷 2016-03-20 오전 4.04.29.png

     

    스크린샷 2016-03-20 오전 4.04.55.png

     

  • Profile
    2016/03/20
    0 0
    모스펫 : KsJ 님 강좌 보면서 차근히 실행하고 있습니다.   ... 에 달린 대댓글입니다.
    첨부해주신 DSDT는 제대로 넣어주신 것으로 보입니다.
    너무나? 잘 넣어주셔서, 특별히 의심가는 부분이 없습니다.

    스카이레이크 제품군이면, iMac 17,2 혹은 17,1 기종으로 smbios를 잡으셔야
    X86이 로드되면서 정상적으로 동작할 것입니다.

    위 그래픽카드는 아쉽게도
    동일 칩셋군을 적용한 맥모델이 없습니다.
    패치는 하지 않으셔도 되겠습니다.

    [굳이 하신다면, 구글링으로 970에 대한 AGPM값을 찾으셔야합니다]

    전류는 말씀하신 것과 같이.. 다소 높아보입니다만
    동작 온도를 보아서는 특별히 크게 문제될 부분은 없어보입니다.

    [혹은 _DSM 문구를 빼고 적용했을 때 잘 잡히는 경우도 더럿 있어서,,, 빼보시는 것도 추천드립니다 ㅎㅎ]


  • AGPM이 적용된 IOReg를 좀 볼 수 있을까요?

    그리고 저같은 경우엔 FakeSMC.kext 내부 Info.plist에 정보를 넣어 사용중입니다.

    잘 적용된것인지 아직 잘 적용되어진게 아닌지 정확하게 확인할 방법이 무었이 있을까요?

    ^^;;;

     

    스크린샷 2016-03-29 오전 10.22.38.png

     

    스크린샷 2016-03-29 오전 10.23.04.png

     

  • Profile
    2016/03/29
    0 0
    AGPM은 X86PlatformPlugin.kext가 로드되면서 함께 동작하는 켁스트입니다. 넣어주신 내용으로 보아 적용은 잘 된 것으로 보이지만, BBongs님께서 사용 중인 그래픽에 대한 적절한 값의 AGPM이 적용되었는지는 잘 모르겠습니다.
  • Profile
    2016/04/08
    0 0
    함 따라해봐야지 했다가 ㅜㅜ 우선 좌절해 봅니다. ㅜㅜ
  • 스크린샷 2016-04-19 오후 9.40.31.png

    이러면 정상일까요?

  • Profile
    2016/04/20
    0 0
    풀피리너울 : 이러면 정상일까요? 에 달린 대댓글입니다.
    CPU의 동작 주파수가 많이 의심스럽습니다. [너무 높은 곳에서만 왔다갔다 거릴 리가 없거든요]
    혹여나 불필요한 프로그램 들이 실행 중이라면 전부 꺼주신 후 테스트해보시는 것을 추천드립니다.

    불필요한 프로그램은, 카카오톡, Airplay 기능 및 nearlock과 같은 블루투스 3rd party앱 및 adobe cloud시스템 등과 같이 동작하는 것들을 말합니다.
    그렇게 하신 후에 확인해보시고, AppleIntelInfo.kext를 통하여 P-State가 CPU가 지원하는 부분에 있어서 정상적으로 배수들이 잘 잡히는지 확인하시어
    이상이 없다면 그대로 사용하셔도 된다고 볼 수 있겠습니다.

  • Profile
    2016/04/20
    0 0
    네 .. 감사드립니다.
  • Profile
    2016/05/03
    0 0
    와우.... 정말 대단하십니다.. 차근차근 읽고 따라해 보겠습니다.
  • 설치를 마치고 최적화를 하고 싶었는데 귀중한 자료인것 같습니다

    CPU상태를 알아보려고 첨부파일 받아서 실행했는데 이런 화면이 뜨네요

    뭘 말하는 건가요? 

    해킨 두달째 되는 초보입니다 이해해 주시면 감사하겠습니다^^

     

    스크린샷 2016-05-11 오전 10.05.34.png

     

  • Profile
    2016/05/11
    0 0
    Denny : 설치를 마치고 최적화를 하고 싶었는데 귀중한 자료인... 에 달린 대댓글입니다.
    sudo chown -R 0:0/Users 에서 0:0 /Users가 되어야합니다!
    스페이스가 안되어있어서 나오는 오류입니다 :]
  • Profile
    2016/05/11
    0 0
    KsJ : sudo chown -R 0:0/Users 에서 0:0 /Users가 되어야합... 에 달린 대댓글입니다.

    감사합니다!

    한칸을 건너서 입력을 해야하는거군요^^
    질문 한가지 있습니다. 잠자기, 깨기가 잘되면 스피드스텝이 잘 잡혔다고 봐도 되는건가요? 
  • Denny : 감사합니다! 한칸을 건너서 입력을 해야하는거군요^^... 에 달린 대댓글입니다.

    스크린샷 2016-05-11 오후 11.22.15.png

    실행을 했더니 요로케 나왔네요

    뭔가 한참 부족한듯 보여지는데요 

    잘못된거겠죠? 

  • Profile
    2016/05/12
    0 0
    Denny : 실행을 했더니 요로케 나왔네요 뭔가 한참 부족한... 에 달린 대댓글입니다.
    저 로그 출력을 꾸준히 몇십분 동안 해줘보시고도, 저렇게 나오는거라면 문제가 있다고 보여집니다.

    적어도 최저배수단은 잘 안나와도, 최고배수단인 터보부스트단은 잘 뽑아주어야하거든요. 출력상태에서도 C-State에 문제가 좀 있어보입니다.

    ** 잠자기 및 깨우기가 잘 되어도 스피드스텝이 잘 잡혀있다고 볼 수는 없습니다 ;ㅁ;... 잠자기 깨우기는 하드웨어적 특성을 많이 타는 탓에 그렇습니다.
  • KsJ : 저 로그 출력을 꾸준히 몇십분 동안 해줘보시고도, 저... 에 달린 대댓글입니다.

    스크린샷 2016-05-13 오전 1.26.14.png

    실행했더니 이렇게 나왔습니다. 스카이레이크라 그런지 가젯은 설치가 되지 않네요

    정상범주안에 있는것인지 모르겠습니다..

  • Profile
    2016/05/13
    0 0
    Denny : 실행했더니 이렇게 나왔습니다. 스카이레이크라 그... 에 달린 대댓글입니다.
    사진을 보아하니, P-State는 매우 잘 동작하는 것으로 보여집니다!
    다만 스카이레이크 계열이라서 그런지(?) C7이 미동닥하는 것으로 보여져서 조금 찝찝히긴 하네요;

    지금 이 게시물 외로, 끝판왕 시리즈로 스피드스텝 1~6세대로 올려둔 게시물이 있는데 그 게시물의 파일들을 사용하여 조금 세부적으로 체크해볼 필요가 있다고 사료됩니다.

    감사합니다 :]
  • Profile
    2016/05/13
    0 0
    KsJ : 사진을 보아하니, P-State는 매우 잘 동작하는 것으로 ... 에 달린 대댓글입니다.
    감사는 제가 해야죠^^
    감사합니다. OS만 설치만하면 되는게 아니라 엄청 복잡해서 제대로 구동시키기는 어렵겠구나... 라고 생각하고 업체에 최적화 부탁할까 라고 생각하고 있었습니다 
    고생해서 올려주신 자료 덕분에 뭔가 감이 잡히는것 같고 사용할수도 있겠구나! 생각이 들었습니다^^

    끝판왕 시리즈 초보인 제게는 너무 어려워서 패~스 했는데 정독해 보도록 하겠습니다 ㅎ
    감사합니다! 
  • 안녕하세요.  클로버 부트로더로 엘 캐피탄을 쓰고 있습니다만

     

    모델 : HP Z420

    CPU : E5-2670 v1(샌디 브릿지)

    그래픽 : GTX 760 입니다.

     

    우선 X86PlatformPlugin과 Shim 그리고 LPC는 모두 잘 로드가 되고 있어서 특별히 패치는 안했고요. 지금 AGPMController 부분이 무언가 허전하게 비어서

    질문을 드립니다. 위에서 질문하신 쑈리님과 저는 메인보드 회사와 그래픽카드 종류가 서로 달라서 DSDT와 SSDT를 적용하면 애매해 지더라구요.

    ssdtPRGen.sh를 이용해서 스피드스텝은 mac6,1을 돌리는 샌디 브릿지는 Overrides명령으로 강제로 아이비 브릿지까지 넣는건 잘 되었는데

     

    P state과 C State을 한 번 확인하던 도중에 AGPMController부분이 좀 이상하다 느껴지는데요. 

    kext의 info.plist에서 어떤 Vendor를 사용해서 활성화를 시켜야 하는걸까요??

     

    config.plist  /  SSDT-1.aml / SSDT.aml / z420.aml  같이 첨부 합니다 ㅠㅠ (DSDT에는 _PR 구문이 아예 없더라구요 ㅠㅠ)

    아래의 경우에는 Cstate 과 Pstate이 둘다 구동 안된다고 봐야 하나요? (이미 X86PlatformPlugin은 Shim과 같이 로드 되고요. LPC나 APICM은 로딩 되더라고요.

     

    스크린샷 2016-09-30 오후 5.24.17.png

     

     

    AppleIntelCPUPowerManagementInfo.kext를 로드해서 보면 아래와 같습니다.

     

    스크린샷 2016-09-30 오후 5.25.49.png

     

     

     

일반로그인 twitter 로그인 facebook 로그인 google 로그인 카카오 로그인 네이버 로그인
서버에 요청 중입니다. 잠시만 기다려 주십시오...