해킨질답
  • 목록
  • 아래로
  • 위로
  • 쓰기
  • 검색

Clover -> OC 좀 도와주세요

  • dateno1
  • 1763
  • 24
dateno1님의 기기정보
질문용 시스템 사양 2번
추가사양 및 설치(할)OS 10.14.6
공지숙지/증상설명 숙지

https://1.egloos.com/1472892

190709 + i5-5300u SSDT + 1366*768 edid (작업중인넘이 i7/1080P가 아님)으로 적용해서 부트 확인후 이걸 OpenCore로 변환하다가 부트중 멈추어서 질문글 올립니다


OC.zip

Opencore Configrator로 입력후 수동으로

Mics-Boot-UsePicker-True
Mics-Security-RequireSignature-False
Mics-Security-RequireVault-False

를 추가했습니다


https://khronokernel-2.gitbook.io/opencore-vanilla-desktop-guide/intel-config.plist/haswell

를 기반으로 작업했습니다 (Broadwell이 없어서 가장 유사한 이걸 참조)


SAT0-SATA.dsl

기존 Clover 시절 쓰던걸 최대한 그대로 옴긴후 가이드에 나오는 일부 옵션을 적용하고, ACPI Rename은 SSDT로 대체하였습니다


목록에서 Mojave 고르면

25:662 00:022 OCABC: Only 147/256 slide values are usable!
25:665 00:003 OCABC: Valid slides - 0-18, 128-255
25:727 00:061 Trying XNU hook on System\Library\PrelinkedKernels\prelinkedkernel
25:803 00:076 Kext reservation size 27463680
26:335 00:532 Result of XNU hook on System\Library\PrelinkedKernels\prelinkedkernel is Success
26:353 00:018 OC: Read kernel version 18.7.0 (180700)
26:359 00:005 OCAK: Replacing _xcpm_core_scope_msrs data 226 76
26:366 00:007 OCAK: Replacing _xcpm_core_scope_msrs data 226 13200
26:422 00:055 OCAK: Replacing _xcpm_core_scope_msrs data 226 16384
26:478 00:055 OCAK: Not matching _xcpm_core_scope_msrs data 46 29660
26:536 00:058 OCAK: XcpmCfgLockRel replace count - 2
26:618 00:082 OCAK: PanicKextDump replace count - 1
26:674 00:055 OCAK: Patch success kext dump
26:800 00:125 OCAK: PowerStateTimeout replace count - 0
26:855 00:055 OCAK: Failed to apply power state patch - Not Found
26:940 00:084 OCAK: IOAHCIPort replace count - 1
26:995 00:055 OCAK: Patch success com.apple.driver.AppleAHCIPort
27:052 00:056 OCAK: AppleIoMapper replace count - 1
27:107 00:055 OCAK: Patch success com.apple.iokit.IOPCIFamily AppleIoMapper
27:189 00:082 OC: Prelink injection Lilu.kext () - Success
27:261 00:071 OC: Prelink injection VirtualSMC.kext () - Success
27:341 00:079 OC: Prelink injection AppleALC.kext () - Success
27:431 00:090 OC: Prelink injection ApplePS2Controller.kext/Contents/PlugIns/ApplePS2Mouse.kext () - Success
27:497 00:066 OC: Prelink injection ApplePS2Controller.kext/Contents/PlugIns/AppleACPIPS2Nub.kext () - Success
27:566 00:068 OC: Prelink injection ApplePS2Controller.kext () - Success
27:632 00:066 OC: Prelink injection ApplePS2Controller.kext/Contents/PlugIns/ApplePS2Keyboard.kext () - Success
27:700 00:067 OC: Prelink injection BrcmFirmwareData.kext () - Success
27:794 00:094 OC: Prelink injection BrcmPatchRAM2.kext () - Success
27:850 00:056 OC: Prelink injection Display-30e4-450.kext () - Success
27:933 00:083 OC: Prelink injection IntelMausi.kext () - Success
27:999 00:065 OC: Prelink injection NoTouchID.kext () - Success
28:196 00:197 OC: Prelink injection RtWlanU.kext () - Success
28:309 00:112 OC: Prelink injection RtWlanU1827.kext () - Success
28:378 00:069 OC: Prelink injection SystemProfilerMemoryFixup.kext () - Success
28:449 00:071 OC: Prelink injection USBInjectAll.kext () - Success
28:519 00:070 OC: Prelink injection WhateverGreen.kext () - Success
28:599 00:079 OC: Prelink injection SMCBatteryManager.kext () - Success
28:672 00:073 OC: Prelink injection SMCProcessor.kext () - Success
28:740 00:068 OC: Prelink injection SMCSuperIO.kext () - Success
28:829 00:088 Prelinked status - Success
29:488 00:659 OCSMC: SmcReadValue Key 4D535463 Size 1
29:546 00:058 OCSMC: SmcReadValue Key 4D534163 Size 2
29:605 00:058 OC: ReleaseUsbOwnership status - Success
29:666 00:060 OC: OcAppleGenericInputKeycodeExit status - Success

여기까지 나온후 멈춰 버립니다


opencore-2020-02-24-094927.txt

전체 로그입니다


#Success,#PrelinkedKernels,#Success27:850_00:056_OC,#kext,#Success27:933_00:083_OC

dateno1
123 Lv. 123995/124000P

댓글 24

참여를 하시면 세상을 바꿉니다.
1등 뽀로로 2020.02.24. 20:05 |댓주소:#4286030
dateno1
ACPI Rename은 DSDT에서 전부 진행하셨을텐데, 굳이 SSDT로 추가하실 필요는 없으세요. 대부분 문법 틀린데요.
시도하려고 하셨던 GPRW to XPRW의 경우 원래는 Name(GPRW) to Name(XPRW)를 해주셔야 하는데 ACPI에 존재하지 않는 Device(GPRW)를 disable하고 새로운 Device(XPRW)를 추가하시면...ACPI에서 Name(GPRW)가 Name(XPRW)로 바뀌는 것도 아니고 아무런 의미 없는 Device(XPRW) 장치가 추가되는거에요. 다른 예로 GFX0의 _STA를 0으로 놓고, 새로 Device(IGPU)에서 _STA로 정의하시면 DSDT에 있는 IGPU에 더해 SSDT에서 IGPU를 추가해주니까 동일한 Scope에 똑같은 이름의 Object 두 개가 정의되는데 오류입니다. ACPI에 대해 한 번 공부해보심이...
그리고 WhateverGreen으로 IORegistry에 PEGP to GFX0, GFX0 to IGPU, HECI/MEI to IMEI, AppleALC로 BOD3 to HDAU, HDAS to HDEF, AirportBrcmFixup으로 PXSX to ARPT 적용되는데 굳이 DSDT나 SSDT로 Rename을 하실 필요 없으세요. SAT0 to SATA macOS에 아무런 영향이 없습니다.
USBInjectAll.kext 말고 USBPorts.kext 사용하셔요. OpenCore에서 UIA 로딩 안 되는 경우 있습니다.
OpenCore Configurator의 OpenCore 지원 버전 살펴보셔요. 0.5.5에서 0.5.6으로 갈 때 엄청 바뀌었는데, 그 중 RequireSignature/RequireVault는 0.5.6에서 Vault로 바뀌었습니다.
RebaseRegion은 NO입니다.
DisableIOMapper나 Drop DMAR은 둘 중 하나만 사용하셔요. 혹시 이 둘 중 하나 사용하시면 BIOS에서 VT-d 활성화시켜도 되시구요.
Configurator는 도움은 되지만, OpenCore Configuration.pdf에서 정확한 설명 보시는게 좋을 듯 합니다.
댓글
d
dateno1 작성자 2020.02.24. 20:16 |댓주소:#4286104
뽀로로
귀찮아서 그냥 구글링하면 뜨는걸 써봤는데 부트 로그에서 무시되는 이유는 그건가보네요

좀 귀찮아도 OpenCore포맷대로 Rename값 입력해줘야곘네요 (좀 입력이 귀찮아서 간단하게 때울려고 했는데 맘대로 안 되네요)

WEG이 그걸 자동으로 해주는건 알고 있지만, 기본적으로 WEG이 없어도 되도록 해놨습니다 (오작동 대비및 데탑인경우 WEG을 삭제할 수 있게 해둠)

일단 사무실에 놔두고 와서 내일이 되어야 다시 손될 수 있습니다

아까 시험삼아 Device Properties가 너무 많아서 문제될 가능성을 고려해서 필수인 iGPU/Realtek Audio/O2 Card Reader를 제외하고 다 지워봤지만 결과가 동일한걸 보면 이건 아닌듯합니다
댓글
뽀로로 2020.02.24. 20:29 |댓주소:#4286193
dateno1
WEG 자동 부분은 Acidanthera에 의뢰하거나, DSDT/SSDT 참고해서 Method(GFX0(외장)._STA)(If(_OSI("Darwin")){Return(0x0f)}Return(0)}, Method(PEGP(외장)._STA){If(_OSI("Darwin")){Return(0)}Return(0)}가 맞고, 이에 추가적으로 전체 ACPI에서 모든 PEGP 관련 코드를 Device(GFX0)에 추가해주셔야 됩니다. IGPU, IMEI도 마찬가지구요. Acidanthera가 -wegkpoff? 같은 kernel patch는 없이 rename만 진행해주는 부트플래그 만들어주면 참 편하겠다는 생각이...
댓글
d
dateno1 작성자 2020.02.24. 20:36 |댓주소:#4286217
뽀로로

OC는 ACPI의 Rename에서 수정하게 해주면 전부 다 일괄 처리 안 하나요? (Clover때는 단순히 hex검색후 교체라서 잘 먹음)


다만 현시점에서 신경 쓰이는건 부트하다가 뭔가 에러라도 나면 모르겠는데, 아무 에러도 안 띄우고 (그걸 볼려고 debug버전 쓴건데도) 그냥 멈추어버려서 정확한 원인 확인이 안 되는점이네요

댓글
뽀로로 2020.02.24. 20:44 |댓주소:#4286272
dateno1
일괄처리 됩니다. 다만 Acidanthera에서 계속 그걸 하지 말라고 말라고...하고 윈도우에서 작동하지 않는 이름으로 바꾼다면 OC를 통해 윈도우 듀얼부팅 안되셔요. 예를 들어 _OSI를 XOSI로 바꾸면 윈도우 부팅불가입니다. 그래서 모든 ACPI 코드에다가 _DSM이면 DTGP를 적용하고, 다른 코드는 윈도우/리눅스 등과 충돌되지 않도록 If (_OSI ("Darwin"))을 추가해줍니다. 다른 예를 들면 AppleIntelCPUPowerManagement가 APSS에 달리는데, 해킨은 그러면 오류가 난다고 하므로... 저같은 경우는 Name(\APSS)를 Name(\APXX)로 Rename해주고 If(LNOT(_OSI("Darwin"))){Method(\APSS){Return(\APXX)}}등을 해주어 맥에서는 APSS는 없고, 윈도우에서는 APSS가 있게 해주었는데...정말로 귀찮은 일입니다. 클로버처럼 윈도우 내버려 두었으면...
댓글
d
dateno1 작성자 2020.02.24. 20:55 |댓주소:#4286342
뽀로로
그건 (멀티 부트시 발생할 문제) 당연히 알고 있습니다

망할 OpenCore는 여전히 버전별 구분도 없고, OS별 구분도 없는 노답 구조니까요

애초에 Clover보다 낫다고 자칭할려면 최저한도로 동일 수준의 기능은 제공해줘야하는데, 여전히 갈길이 멉니다 (1.0될때까지 저런 부분 좀 해결해줬으면 하는데, 개발자들이 고집이 쎼서 어찌될지 모르겠네요)

일단 부트 성공하고나서 작동이 잘 되면 그런 부분 천천히 만져서 완성시킬 작정인데, 부트는 커녕 로그에 아무런 내용도 없이 그냥 멈추어버리니 작업하기 곤란하네요
댓글
뽀로로 2020.02.24. 21:04 |댓주소:#4286445
dateno1
오픈코어 버전별 구분되어야 항목들 릴리즈에서 확인하시는게 좋을거에요. Changelog.md에 다 있습니다. 0.5.6으로 도전하고 싶으시면 깃 전체 다운로드/빌드하시고 거기서 Changelog.md 확인하시구요. 1.0을 기다리시는것도 좋은 방법...정식 릴리즈되면 0.0.1 단위 업데이트마다 엄청나게 바뀌지는 않을테니까요.
댓글
d
dateno1 작성자 2020.02.24. 22:33 |댓주소:#4286989
뽀로로

Clover로도 잘 돌아가는데 심심해서 한번 삽질해보는것뿐인데....심각하게 애먹이네요


https://github.com/acidanthera/OpenCorePkg/blob/master/Changelog.md

지금 확인은 해보고 있는데 왜 저따위식인지 모르겠네요


내부적 코드를 개선하는건 넘어간다쳐도 (저기에 sse2를 쓴다고 부트 속도가 얼마 나아질지 불명이지만), 대체 설정파일을 왜 저렇게 심하게 구조 변경을 하는지 모르겠네요 (저런식이면 버전업할때마다 일일히 삽질해야하고, 0.1정도 바뀔정도로 방치하면 수정하는것조차 심각한 삽질이 될 수준입니다)


원래 정상적인 개발 사상이라면 사용자나 플러그인 개발자등이 크게 신경을 안 써도 되도록 해주는게 맞다고 생각하는데, 저따위식으로 허구한날 뭔가 대단위로 갈아버리면 매번 삽질해서 무한 삽질 or 업데이트 금지라는 결론밖에... (심지어는 저런식이면 제대로된 가이드조차 못 만들껀데 저럴꺼면 왜 Configurator쪽이랑 협력해서 개발 안 하는지도 이해불능) (자동&수동 양쪽 다 제대로 설정할 수 없어서 사용자가 한줌밖에 안 생기는 듣보잡 확정의 노답스러운 물건을 원하는걸까요)


역시 1.0갈때까지 손되지 말아야할까요... (어차피 잉텔이라 필수도 아님) (32G 단일 램 모듈 인식 문제도 RAM정보를 입력하거나, 단일 모듈을 2개의 16기가로 나누어서 등록하면 인식 가능)

댓글
d
dateno1 작성자 2020.02.25. 00:09 |댓주소:#4287447
뽀로로
라이젠이거나해서 선택의 여지가 없다면 모르겠지만, 모든게 잘 되는 상태에서의 삽질이니까 은근히 귀찮아지기 시작해서...
댓글
d
dateno1 작성자 2020.02.25. 10:41 |댓주소:#4288863
뽀로로

아 그런데 DSDT쓰는데도 RebaseRegions false인가요?


가이드에는 커스텀 DSDT타령하길래 켠겁니다



추신 : 이것저것 지우다가 최초로 1회 부트 성공해서 지금부터 조금씩 추가해나갑니다

댓글
뽀로로 2020.02.25. 17:35 |댓주소:#4291253
dateno1
RebaseRegion은 ACPI를 OC가 원하는대로 변형시키는데, 어떻게 되는지 해보기 전에는 잘 모르고, configuration.pdf에서도 비추 입니다. Operation Region 안의 내용을 재정리하는 것으로 알고 있는데, 배터리 패치에 도움 안 되실 거에요.
댓글
d
dateno1 작성자 2020.02.25. 19:24 |댓주소:#4291903
뽀로로
애초에 축복받은 Dell제라 아무짓 안 해도 잘 잡히는게 베터리라서 그쪽은 걱정 안 합니다

부트 안 되던것 원인도 대충 정리가 되어서 짚히는 구석이 있는데, GFX0 -> iGPU를 하면 안 되는 보드인듯합니다

DSDT에 이걸 먹여놨는데, DSDT를 비롯해서 이것저것 제거한 상태에서 부트 성공후 ACPI Patch에서 이걸 켜보니 바로 부트 불능이 되버리네요

Clover일땐 부트되는데, OC는 이걸 거부하네요

안 먹인 상태에서 WEG의 자동만 되게 하니 IOReg에서 일부 텝에서는 GFX0, 일부에선 iGPU라고 뜨네요

다만 DSDT가 없으니 SMBus/EHCI의 Driver가 No라고 떠서 SSDT로 SMBus는 잡았는데, EHCI는 못 잡았네요 (외장 포트는 죄다 xHCI에 물려있어서 잘 작동하고, 심지어는 rename해서 EH01/02 둘 다 잡혀있고, 거기 물린 웹켐도 잡히는데 리포트에선 안 잡혔다고 뜨네요) (커맥 삽질하면서 아무것도 안 해도 매번 잡히는 Intel EHCI가 No라고 뜨는것자체를 첨 봄)
댓글
d
dateno1 작성자 2020.02.25. 19:41 |댓주소:#4291946
뽀로로
지금 DSDT 먹인다음 시험해보는데 골치아프네요 (해당 옵션 활성 유무랑 상관없이 동일)

DSDT를 먹이니 나머지 SSDT랑 WEG의 자동 rename이랑 ACPI Rename이 전부 다 씹히네요

결론은 DSDT에 먹일껄 다 SSDT로 개별 분리하던지, 죄다 DSDT에 먹인후 통으로 적용해야 하네요
댓글
뽀로로 2020.02.25. 20:00 |댓주소:#4292025
dateno1
어떻게 하셨는지 자세히는 모르겠는데, DSDT에 Rename을 직접 적용하고 저장하신거면 SSDT에도 전부 Rename을 적용하셔야되요. 일부분이라도 Rename이 적용되어 있으면 WEG rename이 제대로 적용 안 됩니다. DSDT와 SSDT에 예를 들어 내장그래픽 장치 이름을 가만히 놔두었을 때 IOReg의 IODeviceTree에 내장그래픽 이름이 GFX0으로만 있게 되고 IOService에 내장그래픽 이름이 IGPU로 적용됩니다.
댓글
d
dateno1 작성자 2020.02.25. 20:14 |댓주소:#4292083
뽀로로

기존의 Clover처럼 DSDT에는 조금만 먹이고, 나머지는 SSDT로서 먹일려고 했는데, 그게 안 되네요


DSDT only or SSDT only로 작업해야하네요


DSDT 먹이니 너무 강력해서 SSDT랑 WEG을 씹어버립니다


EHC 될떄랑 안 될때 차이 확인해보니


될떄 : Subsystem ID 0x062d + Subsystem Vendor ID 0x1028

안 될때 : Subsystem ID 0x7270 + Subsystem Vendor ID 0x8086


Vendor랑 Device ID는 똑같네요


결국 저 2값을 바꾸어야 될듯합니다


안 될때는 제대로 안 잡히는지 HackinTool에 XHC만 뜨고, EHC가 안 뜹니다


혹시 Device Properties로 저것도 바꿀 수 있을까요?


----------------------------

SSDT로 저것 바꾸어봤는데, 저거랑 무관하게 안 되네요


DSDT쪽에선 대체 어떻게 되어있는지 좀 더 훌어봐야겠네요


이외에도 PNLF랑 SSDT로 패널 잡아놔서 내장으로 뜨고 밝기도 조절되지만, 커버 닫기 동작이 인식 안 되거나 (수동 절전은 됨), 절전에서 깨우면 터치패드 마비등의 문제도 보이네요


댓글
2등 뽀로로 2020.02.25. 20:23 |댓주소:#4292099
dateno1
기존 클로버에서 사용하시던 DSDT와 ACPI Rename, SSDT 적용하시고 거기서부터 하나씩 차근차근 바꿔보세요.
댓글
d
dateno1 작성자 2020.02.25. 20:59 |댓주소:#4292286
뽀로로
위에도 적혀있지만 Clover의 DSDT를 먹이면 GFX0-iGPU땜에 부트 불능입니다

새로 만든 DSDT를 먹이면 EHCI가 되는데, 문젠 SSDT/Rename이 하나도 안 먹혀서 결국 다 DSDT에 올인해야하는데, 그럼 관리가 매우 귀찮아질게 예상되므로 가능하다면 DSDT를 안 쓰고 해결할려고 합니다
댓글
d
dateno1 작성자 2020.02.25. 22:07 |댓주소:#4292636
뽀로로

조금 더 삽질하고나서 올려볼려고했는데, 답이 안 나오네요


현제 남은 눈에 띄는 문제가

1. EHCI 아직 못 잡음 (이것탓인지 부트후 연결하는 USB 인식 못하고, Hackintool에 안 뜸)

2. 덮개 덮기 동작 인식 불능

3. 절전에서 깨어나면 터치 패드 마비

4. 임시로 VirtualSMC로 해놧는데 cpu clock이 안 떠서 FakeSMC로 다시 바꾸어야 함 (이건 그냥 driver + kext 교체로 될 문제니 큰 문제 아님)

이외에 아마 USB포트 새로 잡던지 SSDT가 아닌 kext로 잡아야할듯합니다 (Clover 기준으로 UIAC에 적힌대로 HS 01/02/04 + SS 01/02/04 + PR11 + HP13/16가 필요합니다) (EHC1-PR11-HP13/16 + XHC-SS01/02/04/HS01/02/04 이런식으로 연결되어져 있습니다)


이중 EHCI가 골치아픈게 DSDT 추출해서 아무짓도 안 하고 그냥 에러만 잡아서 넣어줘도 잘 되는게, SSDT로 이것저것 해봐도 고쳐지질 않네요 (심지어는 DSDT에서 EHC쪽 코드를 추출해서 덮어쓰기도 시도해봄)


부트조차 못하고 헤매던 어제에 비하면 꽤 발전했지만 여전히 갈길은 멀어보입니다


동봉된 DSDT_fix-error.dsl는 아무 패치가 적용이 안 된 DSDT입니다


가능하다면 DSDT에 올인해서 적용하는건 피하고자 합니다 (나중에 수정도 곤란하고, Dell은 괴랄하게 아직까지도 5세대인 이런 구형 기종조차 BIOS 업데이트 해주다보니 업데이트할때마다 새로 만들어야하는 DSDT는 피하고싶음)


현제 OC의 버전은 0.5.5입니다

댓글
뽀로로 2020.02.25. 22:28 |댓주소:#4292771
dateno1
TableSignature에 DSDT 입력하시면 DSDT만 패치되므로 비워주셔야 전체 ACPI에 적용됩니다.
SSDT-EH01, EH02, XHC 필요 없으세요. 그리고 될 때 안 될때 구분해주셨는데, 안 될때 ID가 SSDT에 들어 있는 ID입니다. SSDT가 적용되면 EHC가 작동 안 하는 것으로 보입니다.
2, 3이 클로버에서도 작동하는 거면 오픈코어에서도 정상 작동해야 되는데, 아직 EFI 불안정해서 그럴거에요.
댓글
d
dateno1 작성자 2020.02.25. 23:22 |댓주소:#4293094
뽀로로

TableSignature의 값을 제거해봤지만 여전히 DSDT 적용시 발생하는 문제가 해결되지 않습니다 (DSDT 넣는 순간 나머지 Rename 패치해둔것 Signature 무관하게 무시당해서 적용 안 됨)


EH01/02/XHX는 이미 Disable되어져 있습니다 (기존에 있던걸 그대로 가져와서 집어넣은건데, 불필요하므로 정리 예정) (Sierra보다 구버전 커맥할때 전원 설정을 잡아주기 위해 필요) (이외에도 대부분의 ACPI Patch가 입력만 되어져 있고 꺼져있음)


Clover -> OC로 DSDT등이 호환이 안 되는건 위에도 적었지만, 이넘이 좀 특이한지 GFX0-iGPU Rename을 먹이면 OC는 부트중 멈추어 버립니다 (DSDT/SSDT/Rename 어떤 방법을 쓰더라도)


관련 부분을 다 제거해버리니 문제없이 호환되었습니다


이외에 크게 바뀐점이라면 ECDV-EC를 하는게 정석인데, Clover에선 이것하면 부트 불능 빠져서 못하다가 OC에서는 적용한점입니다


일단 정리 좀 한다음 rename -> ssdt로 바꾸어봐야겠네요

다만

https://github.com/khronokernel/Opencore-Vanilla-Desktop-Guide/blob/master/extra-files/Rename-SSDT.dsl

를 참조해서 해봤지만 잘 안 되네요 (역시 DSDT/SSDT는 잘 못 다루겠음)



추신 : 지금 해보니 Recovery 진입 불가네요 (어쨰서인지 고치는 속도보다 문제 발견하는 속도가 더 빠르네요)


댓글
뉴비맥맥 2022.06.05. 07:17 |댓주소:#7047594
dateno1

안녕하세요?? 저도 클로버로 모하비 잘 운영중이다가 오픈코어 넘어가보려고 USB EFI 만들고 부트해보니 같은데서 멈춥니다... SmcReadValue... 혹시 해결 하셨나요?

댓글
권한이 없습니다. 로그인

신고

"님의 댓글"

이 댓글을 신고 하시겠습니까?

삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?