랩탑 오픈코어 설치 시작과 동시에 문제가 생겼습니다
- 제타
- 1218
- 18
제타님의 기기정보
질문용 시스템 사양 | 2번 |
---|---|
추가사양 및 설치(할)OS | 좌절금지님의 10.15.6_OC_19G73, OC 0.6.0 |
공지숙지/증상설명 | 숙지 |
안녕하세요, 오픈코어 첫째날 입니다!
살짝 문제와 더불어 노트북 BIOS를 이렇게 저렇게 만져보다가 헷갈리는 부분이 많아서 질문드립니다.. ( 죄송합니다.. )
좌금님이 올려주신 고스트 파일을 이용해서 USB에 설치를 완료 했고, BIOS 설정은 다음과 같이 진행했습니다
https://drive.google.com/file/d/1aNygO2tJoi1qK7mQHdamlDncNyZyUiCe/view?usp=sharing
그리고 이 위의 링크처럼 에러(?)가 났습니다.
앞부분은 두번째 재부팅 될때와 같아서 자르고, 마지막에는 10분을 기다려도 제조사 이름에서 넘어가지 않습니다..
클로버 설치했을때는 저렇게 설정해주고 메모리 패닉 몇번나고난 후 설치됐던 거 같은데...
노트북이라 다른걸까요.. 아니면 오픈코어는 다른 걸까요...
계속 검색하다가 찾으면 글 수정해놓겠습니다!
이 글을 봐주신 모든 분들께 감사드립니다!
아래부터는 EFI수정 기록입니다
언젠가 제가 다시 와서 볼것같기도 하고, 다른 분들께 도움이 될 수 있을 것 같아 계속 업데이트 합니다
2020.07.31/18:09 EFI 제가 1차수정 다시 해봤습니다
2020.07.31/23:01 EFI shl님이 도움을 주셔서 한 번더 수정했습니다
https://opencore.slowgeek.com 하지만 이곳에 넣어보면 오류 투성이입니다.. ㅎㅎ
DSDT 전원관리 부분 수정하는데 저장할때 4~8개의 오류가 지속적으로 생기고, DSDT를 수정하려고 켤때부터 4개의 오류가 있습니다
어디서 네잎클로버가 보이기 시작하네요.. ㅎㅎ 클로버가 보고싶어지는 날입니다...
2020.08.01/16:25 EFI shl님이 수정해주신 DSDT파일로 다시 만들고, https://x86.co.kr/opencore/4984866
이 글을 토대로 EFI수정을 다시 하였습니다
= 아직도 일어나는 문제 : ADJP 에러, 로딩이 다 되면 자동으로 재부팅 되고, 설치안됨
반면 클로버는 이러한 현상이 없을 것으로 예상( 메모리 패닉 이외에 다른오류가 없었기 때문 )
제타
댓글 18
EFI 폴더를 확인해보니 ACPI, Kexts, Config.plist 를 질문자님의 노트북 사양에 적합하게 전체적으로 모두 수정할 필요가 있습니다.
AppleIntelKBLGraphicsFramebuffer.kext 에서 커널 패닉이 발생하였습니다.
Mac OS 를 설치하는 과정에서는 VESA 로 작동시키고 Mac OS 설치를 완료한 후에 QE/CI 그래픽 가속을 활성화하는 것을 권장합니다.
Device Properties 의 PciRoot(0x0)/Pci(0x2,0x0) 항목에서 다음과 같이 Properties 를 추가합니다.
- AAPL,ig-platform-id = 12345678 ( Data )
- device-id = 12345678 ( Data )
그리고, NVRAM 의 boot-args 항목에 -igfxvesa 부트 옵션을 추가합니다.
또한, ADJP 라는 Object 에서 ACPI Error 가 계속 발생하고 있습니다.
주연테크 노트북을 사용하는 다른 회원님들 중에서 같은 문제를 겪으신 분이 있습니다.
주연테크 노트북의 일부 모델에서 주로 발생하는 증상인 것 같습니다.
https://x86.co.kr/mymac/4831673
https://www.tonymacx86.com/threads/battery-icon-confused-about-un-plugged-state-when-full.265887/
OEM DSDT 의 전원 어댑터 관련 Device 에서 다음과 같이 _PSR Method 가 있을 것입니다.
_PSR Method 에서 ACFG 만을 반환하도록 수정하면 해결할 수 있습니다.
Method (_PSR, 0, NotSerialized) // _PSR: Power Source
{
If (LAnd (LEqual (^^WMI.HKDR, Zero), LEqual (^^DCHU.HKDR, Zero)))
{
If (LOr (\_TZ.TZ0.PPFG, LOr (^^PCI0.LPCB.EC.B15C, GPSF))){}
ElseIf (And (PSF1, 0x30))
{
ADJP (Zero)
}
}
Return (ACFG)
}
다음과 같이 오렌지색으로 색칠된 구문을 지워서 Return (ACFG) 이라는 구문만을 반환하도록 수정합니다.
Method (_PSR, 0, NotSerialized) // _PSR: Power Source
{
Return (ACFG)
}
그런데, OpenCore 를 사용하는 경우에는 위의 내용대로 OEM DSDT 를 직접 수정한 내용을
Windows 에도 그대로 적용하여 부팅하기 때문에 Windows 에서는 배터리와 관련하여 이상한 작동을 초래할 수도 있습니다.
OpenCore 로 Mac OS 와 Windows 를 멀티 부팅으로 구성하여 사용할 것이라면
SSDT 를 사용하여 Hot Patch 및 Override 방식으로 If (_OSI ("Darwin")) 문과 Else 문을 사용하여 _PSR Method 를 패치해보세요.
그리고, SMCBatteryManager.kext 는 EmbeddedControl Region 에서 배터리 관련 변수 8 Bit 세분화 작업을 완료한 후에 넣어주세요.
배터리 관련 변수 8 Bit 세분화 작업을 하지 않고 넣으면 부팅하는 과정에서 ACPI Error 가 발생하며 부팅이 되지 않을 수도 있습니다.
이 노트북은 맥을 설치하고 나면 윈도우를 설치하지않을 예정이라 현재 윈도우가 설치되어있는 WD SN500 NVMe에 맥을 설치하려고 합니다~
윈도우가 설치되어있음에도 불구하고 아래의 사진처럼 오류가 한번 나는데 Ctrl + Alt + Del 을 누르면 재부팅 된후 부팅됩니다//
수은전지 이상인 줄 알았는데 예전에 피닉스OS를 설치할때 생긴 오류 인것 같더라구요..
이 저장장치에 맥을 깔아도 될까요..?
그리고.. 모르는 부분이 있다면 나중에 더 물어봐도 될까요..? 언제나 폐만 끼치는 것 같아 죄송합니다 ㅠㅠ
원본 상태의 ACPI Tables 와 어떤 오류가 발생하였는지 스크린샷을 캡쳐해서 보내주세요.
그리고, DSDT 와 SSDT 등을 수정할 때에는 .dsl 로 디컴파일하고 수정하는 것을 권장하며 .dsl 로 저장할 때에는 Error 가 있어도 저장은 가능합니다.
Warning 은 원본의 상태에서도 이미 존재할 수 있으며 일반적으로 그냥 그대로 둡니다.
ACPI Table이 아것이 맞는지 모르겠습니다만... 스크린샷 첨부해서 보냅니다...
그리고 에러는 사진과 같이 나오고 있습니다.
DSDT 및 SSDT 와 그 외 여러가지 ECDT, RSDT, XSDT 등을 통틀어서 ACPI Tables 라고 합니다.
질문자님의 노트북에서 추출한 원본 상태의 DSDT 와 SSDT 를 모두 압축해서 업로드하여 보내주세요.
제가 나중에 DSDT 를 확인해 보겠습니다.
그리고, SSDT-EC-USBX.aml 과 SSDT-EC.aml 을 둘 다 동시에 같이 사용하면 안 됩니다.
ACPI 상에서 서로 같은 EC Device 가 인젝션되어 충돌하게 되며 ACPI Error 가 발생할 수도 있습니다.
그리고 SSDT-EC-USBX.aml 를 지우도록 하겠습니다
도와주셔서 정말 감사합니다..
DSDT 를 확인해보니 Error 가 조금 있어서 수정하였습니다.
- Not a control method, cannot invoke (^^^GFX0.DD1F is a Device)
Notify (^^^GFX0.DD1F (), 0x87)
External References 에서 DD1F 는 Device Object 라고 Declaration 되어 있습니다.
External (_SB_.PCI0.GFX0.DD1F, DeviceObj) // (from opcode)
DD1F 는 Device 인데 Notify 구문에서 Method 를 Call 하는 형태인 소괄호 () 가 사용되어서 Error 가 발생하였습니다.
다음과 같이 소괄호 () 를 지워주면 해결할 수 있습니다.
Notify (^^^GFX0.DD1F, 0x87)
_PSR Method 도 수정하였으며 이제 Error 가 발생하지 않습니다.
수정이 완료된 DSDT.aml 을 첨부합니다.
그리고, Intel 6th Gen Sky Lake 부터는 SSDT-EC.aml 이 아닌 SSDT-EC-USBX.aml 을 사용합니다.
그런데, OEM DSDT 에서 EC 계열의 Device 이름이 이미 EC 로 정의되어 있습니다.
EC 와 관련된 SSDT 는 없어도 부팅이 가능할 수도 있으나 기존의 EC 를 EC0 으로 Rename 하고
SSDT 를 사용하여 Fake 의 EC Device 를 인젝션하는 것을 권장합니다.
아래의 글에서 USB 의 EC 부분을 참고해주세요.
그러면, SMCBatteryManager.kext 는 삭제하고
Mac OS 설치를 완료한 후에 배터리 잔량 표시 작업을 하는 과정에서 넣어주세요.
이번에도 shl님께 폐만 끼쳐드렸네요.. 죄송합니다....
그리고 언제나 도와주셔서 감사합니다
오픈코어 SSDT만들고 수정하고 적용하는 과정을 다 설치하고 다시한번더 연구해봐야겠습니다
shl님 처럼 다른 분들께 도와줄 수 있을 정도로 열심히하겠습니다
정말 감사합니다 ㅠㅠ
부팅이 정상적으로 되었다니 다행입니다.
축하드립니다. :)
Mac OS 설치를 완료하고 난 후의 안정화 작업들도 화이팅하세요. :)
죄송합니다...