[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은 후자에 해당되는 내용입니다.
그렇지만, 단순히 이 두가지를 포괄적으로만 이해하기 쉽게 풀어쓴 것일 뿐
실제로는 두개의 모드 내에서도 그 급에따라 분류가 나뉘어지게 됩니다.
아래는 이것을 조금더 보기쉽게 그림으로 풀어낸 부분입니다.
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을 쳐줍니다.
아래는 정상적으로 적용된 상태의 터미널 사진입니다.
그리고 저상태에서 엔터를 꾹 누르면 아래처럼 나옵니다.
여기서 주의깊게 살펴야 할 것은 C3,C6,C7부분입니다.
코어가 제대로 0,1,2,3 나온 것이 보이시나요?
만약 여러분의 씨피유가 i7등이라면 0~7까지 나와야합니다.
그리고 P-State는 위의 사진을 보면 8~22 사이의 숫자가 생략된 것이 보이실겁니다.
원래는 이렇게 나오면 P-State가 정상적으로 잡힌 것이 아닙니다.
거의 모든 배수에 대해 촘촘하게 나와주어야 제대로 잡힌 것이라 볼 수 있는데,
여러분이 현재 켜두고 있는 모든 프로그램을 전부 종료해주세요.
아 물론 사파리르 종료하지 않으셔도 됩니다 ^^;
그런 상태에서 느긋하게 기다리시면서 마지막 문구인 sudo cat /tmp/AppleIntelInfo.dat을 쳐주시면
아래의 화면처럼 배수가 좀더 촘촘히 나오는걸 볼 수 있습니다.
그런데 아마도 대부분의 경우는 P-State가 제대로 잡혀있지 않아서
위의 사진처럼 촘촘하게 잡혀나오는 경우가 별로 없기 때문에, 따로 패치를 해주어야하는데
그부분은 조금 있다가 글의 아래부분에서 같이 해보도록 하겠습니다.
우선은 C-State의 추가 점검이 남았기 때문입니다.
참고로 위의 P-State을 확인 할 때에 백그라운드 프로세서를 모두 종료하여야 하는 이유는
씨피유가 충분히 쉴 수 있는 조건을 마련해주어야 하기 때문입니다.
일은 열심히 줘놓고 쉬라고 하면 말이 안되니깐요.
C-State을 확인하기 전에, 로드해준 켁스트를 언로드시켜줍니다.
명령어는 sudo kextunload를 해주시고
띄어쓰기 하신 후 켁스트 드래그 앤 드랍하시고 엔터해주시면 됩니다.
[나중에 패치 후 정상 작동확인을 위하여 삭제하는 하지 말아주세요]
그럼 켁스트도 삭제했겠다!
이제 C-State가 정말로 제대로 잡힌게 맞는건지 확인을 하기 위하여 Intel Power Gadget을 열어줍니다.
그리고 Power부분이 어떻게 움직이는지 유심히 살펴봐줍니다.
만약 그래프가 아래처럼 나온다면?
유감스럽게도 여러분의 씨피유는 C-State가 제대로 동작하고 있지 않을 가능성이 높습니다.
이부분을 확인하실 때에도 반드시 백그라운드 프로세서 및 모든 프로세서는 다 종료해주시고
순수하게 인텔파워가젯만 켜놓은 상태에서 확인하셔야합니다.
카카오톡같은 것도 전부 종료입니다.
[의심가는건 전부 종료해주세요.]
그리고 다시 파워가젯을 끄고 킨 후에 소모전력량을 체크해줍니다.
만약 아래 사진처럼 나왔다면 정상적으로 동작하는 것입니다.
보이시나요? 앞서 보여드렸던 그래프와는 전혀 딴판인, 매우 안정적인 그래프가말이죠
심지어 전력을 확인해보니 위에 0.14W라고 적혀있네요.
바로 위처럼 나오면 C-State이 제대로 동작한다고 볼 수 있겠습니다.
그러나 여러분의 씨피유는 저렇게 나올 수도 혹은 나오지 않을 수도 있을겁니다.
왜냐하면 제대로 패치가 되지 않았을 수 있기 때문이죠.
만약 여러분의 컴퓨터에서 Intel Power Gadget을 설치할 수 없거나 실행할 수 없는 경우라면!
다운받으셨던 HateIntelGadget 파일의 압축을 해제하고 로그램을 실행시켜주세요.
아마도 아래처럼? 단촐하지만 씨피유의 각 코어가 소모하는 소모전력이 나올겁니다.
자, 그럼 확인도 다 해봤겠다 만약 자신의 씨피유가 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이라 되어있는 부분을 선택해줍니다.
이부분을 선택하면, 아마도 우측화면에 아래처럼 작성되어있을거에요.
...~~~
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 로 들어가도록 하겠습니다.
펼쳐보면 위의 사진처럼 저옵가 나와요.
그런데 중요한건 여러분이 사용하는 정보가 저기에 있느냐라는겁니다.
아마 대부분 없을건데, 이러한 경우에는 자신이 사용하는 그래픽 기종과 동종모델을
사용하고 있는 맥 시리즈가 있는지 찾아보는것입니다.
제 경우는 HD4600을 사용중이기 때문에 iMac 14,2군이 가장 흡사한 그래픽을 사용하므로
해당 맥의 정보를 보기 위하여 위의 사진에서 해당 맥 보드를 찾아 펼쳐줍니다.
iMac 14, 2에 해당되는 맥 보드값은 Mac-27ADBB7B4CEE8E61이므로 정보를 살펴보면 아래처럼 나옵니다.
10de 시리즈는 지포스시리즈이므로 패스하고
제가 필요한 부분은 IGPU부분이므로 해당 부분을 복사해줍니다.
그리고 이 값을 제가 사용중인 smbios 모델과 동일한 부분의 IGPU에다가 덮어씌워줍니다.
위는 적용하기 전 사진입니다. 보기에도 값이 별로 없는게 보이시죠?
그러나 패치를 해준 후에는 이렇게 값이 빵빵해졌습니다 ㅎㅎ.
이렇게 패치가 완료되었다면 수정된 plist를 Info.plist라는 이름으로 바탕화면에 저장해줍니다.
그리고 이 Info.plist를 처음에 들어갔던! AGPM.kext의 Info.plist를 대신하여 넣어줍니다.
[만일을 대비하여 원본은 항상 백업해줍니다]
그리고 켁스트 유틸리티 등을 사용하여 권한복구와 켁스트 캐시 리빌드를 해줍니다.
첨부파일의 KCPM Utility Pro를 다운받아주신 후 실행시켜주세요.
실행하신 후 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)
&nb
매번 댓글을 달진 않지만 항상 감사하며 쓰신 강좌 잘 보고 있습니다.
고생하셨습니다. ^^*
저는 그간 강좌 따라하면서 이것저것 다 잡아놔서..^^ 몇개만 손보면 될 것 같아요. 사실 실사용에 지장을 안주는 마이너 요소지만, 이젠 이런거에 끌리네요
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).
이유가 뭐죠
다른 것으로는 확인이 되지만 이것으로는 안됩니다.
감사합니다.
지우고 다시 다운하니까 문제없이 되었습니다.
저는 cpu low freguency Mode 1600인데
ksj님은 cpu low freguency Mode 800입니다.
어디서 잘못한 것입니까?
KsJ 님, 제 DSDT 첫 수정때부터, 지금까지 명 강의를 따라와서 정말 많이 안정화 된 것 같습니다. 정말 감사합니다!!
스피드스텝은 잘 잡힌것 같습니다! 실행중이던 프로그램들 다 종료하고 나니 안정적으로 나오네요~!
마지막 남은 숙제는 1.ac어탭터 연결과 관련된 배터리 인식과 2.wifi USB를 제거하거나 접속프로그램을 종료하지 않아도 잠자기가 되는것인데...
차근차근 삽질해보겠습니다~!
아마 삽질하다 안되면 또 질문으로 올라올것 같네요.
이제 강의하실게 또 없을까요? 기다려지는데...클로버 config설정의 디테일한 설명. 이런것도 좋은것 같습니다만...
아무튼 수고하셨고 앞으로도 기대하겠습니다~!!^^
다 죽인상태인데도
파워는 그 이상으로 떨어지지 않네요
프리퀀시도 저는 요동을 칩니다.
온도는 좀 낮아졌네요
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
본인의 것을 집어넣으라 했는데 확인 방법은 무엇을 확인해주어야 하나요
pci에 관련된 값이 많이 있어서
3. 더 추가하기 위해서 해주어야 할 작업은 무엇입니까?
감사합니다.
새로운 단계를 도약하기 위해서는 컴파일러에 대한 지식이 필요하므로 지금 현시점에서
멈출줄도 알아야겠습니다. 달리는 기관차에 감당할 수 없는 브레이크 능력이니까요.....
x99에 5820k 사용 중입니다.. 인텔 가젯 상에서 IA 수치는 항상 안나왔구요.. 뭘하든..
그리고 스피트스텝 확인 하기 위한 kext 로드 하면 바로 뻗어 버려요.. 세가지 정도 방법이 있던데..
요번 방법도 뻗어 버립니다..
5820k 는 해당 사항이 없는가 봅니다;;;
잠자기만 갔다 나오면 마치 풀 스피드 못내는 문제 때문에 스피드 스텝 의심 하고 있지만..
스피드 스텝 잘 돼는지 확인 조차 할 수 었으니 너무 답다하네요
다시 정독 하겠습니다
LPC 까지 로드 시켰는데
CPU가 E3-1231v3 서버용인 제온이라 그런건지
스피드 스텝 8, 28~38
IA 소모전력 4W 이하로 안내려가네요
APGM 은 내장그래픽 인거죠?
내장 그래픽 없는 제온은 해당 사항 없는거 같고
IMEI는 패치하려고 보니 같은 주소값 자리에 HECI라는게 있네요
여기서 부터는 멘붕이라 포기했습니다
스피드스텝에 대해 체계적인 개념있는 글입니다/
잊고살았던 스피드스텝은 언제 한번 천천히정독하면 따라해봐야겠네요.
수고하셨습니ㅏ다
매번 좋은 강의 감사 드립니다
질문이 하나 있습니다. 제 dsdt는 문제가 없는데 ssdt를 인젝트 하려했지만 dsdt안에 scope(_PR) 섹션이 없는데 어떻게 해야 할지 모르겠군요..
제 dsdt 한번 봐주시면 감사하겠습니다
답변 감사합니다. 그러면 제 경우에는 맥프로6.1 로 적용 했을경우에는 LPC와 APCI 켁스트는 로드가 돼는데 AGPM,X86PlatformPlugin.kext
X86PlatformShim.kext 이 켁스트 들은 로드가 안돼네요.. 그래서 맥프로5,1 로바꾸게 돼면 AGPM 은 로드가 돼구요..무슨 문제인지 점점 일이 커지는 느낌이네요...
대체로 X86PlatformPlugin이 로드가 되면 Shim 및 AGPM까지 같이 로드가 됩니다.
그래서? AGPM패치를 굳이 해주지 않아도 본문의 x86을 로드하기 위하여 _dsm구문을 추가해주게되는데,
이 경우가 좀 애매한 것이 맥프로 제품군의 경우에는 시스템 사양이 월등하여? AGPM을 따로 필요로 하지 않는다는 것입니다.
[실제로 X86에서 관리하는 plist파일에 AGPM등이 서술되어있지 않습니다..]
우선은 X86관련 켁스트를 로드시키는데에 주 목적을 두시면 될 것 같단 생각입니다 ^^.
클로버 부트로더나 카멜레온이시라면 drop ssdt로도 ssdt를 따로 만드셔서 로드가 가능한것으로 알고 있습니다.
이 방법으로 해보시고도 안되신다면 dsdt에 _PR구문을 강제로 만들어주셔야할텐데,,, 커널패닉까지는 감안하시고 작업하셔야 할 것 같습니다.
제가 가지고 있는 리얼 맥북 프로 아이맥 맥프로 5,1 에서도 x86platform 관력 켁스트는 로드가 안되있네요..
갈팡을 못잡겠네요... SSDT는 추출해서 사용 하니 스피드 스텝은 잡힌 상태구요.. x86켁스트는 반드시 로드가 되야만 하는 켁스트는 아닌거 같기도 하고..
분명 제 DSDT 안에도 CPU부분이 있긴 있습니다만 정보가 이미 들어가 있네요...
저녁때 퇴근후 강제적으로 _PR 섹션만들어서 테스트 해보겠습니다.
답변 감사드립니다.
DSDT.aml ssdt.aml 안녕하세요 어제 저녁에 테스트 해봤습니다. SSDT가 없어 DSDT 에 x86켁스트 로드를 위한 DSM문구를 넣어서 부팅해본결과 X86켁스트와 LPC켁스트 등이 로드 된걸 확인하였습니다. 그러면서 스피드 스텝이 망가지더군요.. SSDT 를 적용하면 아예 12배수 고정으로 작동하구요 그래서 오늘은 DSDT에 SSDT를 인젝트 시켜봤습니다.
안녕하세요 KSJ님..
이걸..로? 한번 해보시겠어요;
아무래도 건드리기가 쉽지가 않네요.... ()
패닉이 날 수 있으니 복구준비는 꼭 해주시구요.
큰 도움 못되어드려 죄송합니다 ㅜ.
이번에 가입한 상품 바꾸고 난후 잠자기가 안됩니다.
원인이 블투같은데 어떻게 해야할지 모르겠는데요
블투 선을 빼고 잠자기하면 잘되는데 죽이고 해도 안됩니다.
대략 난감입니다.
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개여서 달라 거기까지 테스트 해보아야 하나
일단은 원상복귀하니 정상 잠자기가 됩니다.
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카드를 쓰는데도 잠자기가 되지 않는다고 했습니다.
블투 코드를 빼면 잠자기 정상으로 잘됩니다.
받으시면 확인 바랍니다.
이번에 ksj님이 올려놓으신 신형 Slice는 FakeSMC.kext 는 부팅조차 되지 않습니다.
KsJ 님 강좌 보면서 차근히 실행하고 있습니다.
CPU : i7-6700
M/B : GA-H170-HD3
GPU : GTX970
RAM : 8g (samsung)
사양으로 엘캐피탄 설치하였고, KsJ 님 강좌 3번까지 진행하였습니다.
첨부 사진 보시면, Speedstep 은 동작하는 것 같은데 전압은 높은 것 같습니다.
프로그램은 최대한 끄고 찍은 사진입니다.
어떤 것이 잘못되었을지 알 수 있을런지요..
그리고 4-1 강좌 AGPM kext 수정 시,
외장 그래픽 (GTX970)의 경우 어찌 해야 할지 잘 모르겠는데...
Geforce 를 쓴 최근 맥 모델에 대한 IGPU를 복사하여 현재 쓰고 있는 맥모델에 붙여넣으면 되는가요?
AGPM이 적용된 IOReg를 좀 볼 수 있을까요?
그리고 저같은 경우엔 FakeSMC.kext 내부 Info.plist에 정보를 넣어 사용중입니다.
잘 적용된것인지 아직 잘 적용되어진게 아닌지 정확하게 확인할 방법이 무었이 있을까요?
^^;;;
설치를 마치고 최적화를 하고 싶었는데 귀중한 자료인것 같습니다
CPU상태를 알아보려고 첨부파일 받아서 실행했는데 이런 화면이 뜨네요
뭘 말하는 건가요?
해킨 두달째 되는 초보입니다 이해해 주시면 감사하겠습니다^^
감사합니다!
실행했더니 이렇게 나왔습니다. 스카이레이크라 그런지 가젯은 설치가 되지 않네요
정상범주안에 있는것인지 모르겠습니다..
이정도면 정상적으로 되는건가요? 아니라면 강좌보고 해보려구요..현재 아무것도 안건든 상태입니다.
중간중간에 곡선 올라간거는 마우스나 키보드를 건드렸을때입니다.
확실한 장담은 하기 힘들지만, 동작상태를 보니 상당히 준수해보입니다 :]....
사용 중 문제가 발생하는 것이 아니라면, 그대로 사용하셔도 좋을 듯 해요.
너무나 늦은 답변 죄송합니다.
초보입니다. "subsystem-vendor-id"와 "subsystem-id" 라 함은 무엇을 가리키는 것인가요? KsJ님 덕분에 스피드 스텝은 잘 잡힌거 같습니다.
저도 이쪽 전공이 아니라 완벽하게는 말씀드릴 수 없지만, 간략하게 고유식별번호같은 거라고 보시면 되겠습니다.
보조시스템 장치 넘버와 보조시스템 넘버 정도로 보시면 될듯 한데, 확인 방법은 구글링 혹은 커맥이신 경우 윈도우로 부팅하셔서 내컴퓨터 -> 속성 -> 장치관리자로 들어가셔서 원하는 장치에 대고 우클릭 -> 자세히 -> 속성탭의 하드웨어 ID 중 SUBSYS_XXXXXXXX 이부분이 해당 값이 되겠습니다.
안녕하세요! 글 잘 읽었습니다. 정말 많은 도움이 되었습니다.
커스텀맥의 세계에 다 다다른줄 알았는데 스피드 스텝.. 엄청난 녀석이군요.
혹시, 시간 되신다면 SSDT? DDST? 패치를 해주실 수 있으실까요..? 똑같이 따라했는데도, 컴파일 오류가 있다면서 저장을 자꾸 거부하네요 ㅜㅜ
추출한 SSDT.aml 첨부하겠습니다. 이 파일을 어디에다가 적용시키는건가요.. 너무 어렵네요...
해당 파일을 dsdt에 수정하여 넣어야하는데, ssdt만 올려주시면 어찌해볼 재간이 없습니다;
그러하여도 저장이 안되는 이유는 dsdt추출한 것은 오류가 있기에 이 오류를 검색을 통하여 적절하게 수정하여 주시고 그 이후에 위 작업을 통하여
진행하셔야 저장에 문제가 없으실걸로 압니다.
아주 어려운 내용은 아니니, 가급적 직접 해보시는 것을 추천드리며 해당 방식만이 스피드스텝을 적용할 수 있는 것이 아닌만큼 ^^;
다른 분들이 올려둔 팁과 기본적인 시스템 모니터링을 통하여 스피드스텝 패치가 필요한지를 먼저 살펴 패치하심이 좋을 것이라 사료됩니다.
아아 ㅜ 그렇군요... 다 따라했는데 구문 맨 마지막에서 Arg0 오류가 발생합니다. 그런데 이 친구를 지워주면 오류 2개와 경고 200개가 한번에 발생합니다 ㅠ
뭐가 문제일까요 ㅜㅜ 작성중인 시스템 DSDT 첨부하겠습니다!
ARG0을 삭제하고 나니 특별하게 나는 오류가 없어서, 간단한 X86PlatformPlugin 로딩 패치를 적용해 저장했습니다.
경고는 무시하셔도 괜찮습니다. 오히려 잘못 패치하면 커널패닉 나는 경우도 있어서 말이죠;
첨부파일로 올려두니 확인 부탁드리겠습니다. 적용시는 혹시 모를 패닉에 대비하여 복구책을 마련해두시길 부탁드리겠습니다.
감사합니다~ 설 명절 잘 보내셨는지요.
KsJ님 덕분에 스피드스텝이 얼추 잡혔네요 감사합니다!
넵 ㅎㅎㅎ, 요번 명절은 집에서 푹 쉬었네요, SamsungMSI님께서도 잘 보내셨는지요?
다행히도 큰 문제 없이 스피드스텝이 얼추 잡혀서 다행입니다. 커맥라이프를 접은지 꽤나 되다보니, 실력이 많이 녹슬어서 말이지요.
#Pilosokhan님,#Mojave_클린설치_후기❞,#아래,#댓글
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
macOS Sequoia 15.0.1 24A348 정식버젼 고스트 이미지 OC 1.0.2 ft: 전체공개 +29 | 937 | 24.10.1121:10 | 좌절금지 |
오픈코어 1.0.2 +23 | 575 | 24.10.0900:22 | 줌바이퍼 |
[중급편] 노트북 해킨 +16 | 1402 | 24.07.1219:19 | Stultus |
macOS Ventura 13.7 22H123 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체 공개 +17 | 575 | 24.09.1917:09 | 좌절금지 |
macOS Sonoma 14.7 23H124 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체공개 +31 | 909 | 24.09.1723:58 | 좌절금지 |
[초급편] 문제 스스로 해결하기 +20 | 4002 | 24.03.2920:07 | Stultus |
[입문편] 첫 해킨 길라잡이 +40 | 5086 | 24.01.1218:54 | Stultus |
[필독 - 안정화] macOS 해킨토시 설치 후 안정화 작업 목록 및 글타래 모음 총정리 📋 +67 | 5.1만 | 23.01.0913:39 | shl628 |
Hot AMD Sequoia용 AppleALC 1.9.2 +3 | 106 | 24.10.2319:04 | 사노라맨 |
Hot [Sequoia 15.0.1, OC r1.0.2] ASUS TUF B550-PLUS / RYZEN 5 5600X / RX470 +2 | 102 | 24.10.2322:26 | 뿌엥 |
Hot OCLP로 지원되지 않는 기기/dGPU를 사용하는 해킨토시의 사이드카 품질 문제 해결방법 +1 | 119 | 24.10.2321:29 | 해킨도전자 |
102 | 24.10.2322:26 | 뿌엥 | |
119 | 24.10.2321:29 | 해킨도전자 | |
106 | 24.10.2319:04 | 사노라맨 | |
784 | 24.10.1412:27 | shl628 | |
664 | 24.10.1316:00 | 수박 | |
344 | 24.10.1222:56 | Stultus | |
937 | 24.10.1121:10 | 좌절금지 | |
732 | 24.10.1115:53 | 수박 | |
575 | 24.10.0900:22 | 줌바이퍼 | |
1402 | 24.07.1219:19 | Stultus | |
1210 | 24.10.0500:31 | 줌바이퍼 | |
569 | 24.10.0410:49 | Tamy | |
749 | 24.09.2923:48 | 머트 | |
628 | 24.09.2822:28 | 머트 | |
463 | 24.09.2808:22 | Tamy | |
894 | 24.09.2321:32 | Stultus | |
994 | 24.09.2210:59 | 좌절금지 | |
644 | 24.09.2203:23 | 누림어멈 | |
1190 | 24.09.1919:17 | 좌절금지 | |
575 | 24.09.1917:09 | 좌절금지 | |
498 | 24.09.1813:37 | Stultus | |
909 | 24.09.1723:58 | 좌절금지 | |
601 | 24.09.1722:40 | 좌절금지 | |
453 | 24.09.1717:13 | 맥가즈아 | |
562 | 24.09.1708:13 | 김경석 | |
234 | 24.09.1617:47 | Panictosh | |
768 | 24.09.1504:35 | Tamy | |
584 | 24.09.1319:18 | Stultus | |
706 | 24.09.1019:44 | 치토 | |
484 | 24.09.0118:13 | 머핀X | |
462 | 24.09.0112:54 | 해킨도전자 | |
546 | 24.08.3115:34 | 머핀X | |
306 | 24.08.2601:42 | 화정큐삼 | |
305 | 24.08.2422:59 | 하나브 | |
318 | 24.08.2316:25 | 화정큐삼 | |
415 | 24.08.1810:56 | CanBe | |
363 | 24.08.1800:04 | 화정큐삼 | |
300 | 24.08.1722:03 | 화정큐삼 | |
201 | 24.08.1710:14 | jbhlyk | |
312 | 24.08.1622:06 | Stultus | |
218 | 24.08.1511:16 | hackillious | |
169 | 24.08.1421:30 | 세유니 | |
419 | 24.08.1419:58 | Stultus | |
377 | 24.08.1311:26 | 오디세이 | |
270 | 24.08.1115:46 | 좌절금지 | |
186 | 24.08.1111:21 | 티타보르 | |
233 | 24.08.1022:46 | Stultus | |
538 | 24.08.1022:10 | 오디세이 | |
168 | 24.08.1019:05 | jbhlyk | |
200 | 24.08.0923:20 | RogerT |
한국 커스텀맥씬에서 족적을 남길만한 글이네요. 특히나 CPU 부분은 제일 중요한 부분이니까요. 차근 차근 따라 해보겠습니다. 정말 감사합니다.