질문용 시스템 사양 | 2번 |
---|---|
추가사양 및 설치(할)OS | Big Sur 11.3.1 |
공지숙지/증상설명 | 숙지 |
*적용중인 도장
몇일전 부팅 성공해서 안정화 막바지에 다다르고 있습니다. 수정) 전혀 아니었습니다. ㅋㅋㅋ
USB, 배터리, 이더넷, XCPM 등등 잡고나니 잠자기가 잘 작동하는 것을 확인했습니다.
그러나, 잠자기에서 깨어나려면 전원버튼 한번으로 안되고, 전원버튼을 5초이상 꾹 눌러야만 켜집니다.
다른 분들도 동일한 현상을 겪는분들이 많은 것 같은데, 어떻게 해결하는지는 잘 나오지 않고 보통 그냥 사용한다고 하십니다.
제 노트북이 뚜껑을 열 때 전원버튼과 동일한 역할을 하도록 설정되어있을텐데, 잠자기 후 뚜껑을 열었을때 바로 켜지지 않는 것이 불편하네요.
혹시 해결할 방법을 아시는 분 계시나요? SSDT로 리매핑을 해줘야 하는건가요?
혹시 몰라 EFI 첨부하겠습니다.
해외포럼을 보니 신형노트북들 일부 기종이 이런 공통적인 증상들이 있더라구요
딱히 해결방안은 아직 안나온 듯합니다.
제 생각에는 acpi s3쪽에 뭔가 변화가 있는 것 같은데..
까다로운 놋북 터치스크린하고 다 잡았는데 잠자기만 아직이네요ㅋㅋㅜ
일단 그럼 저는 밝기 fn키부터 잡아야겠네요..
카탈리나에서 하고 넘어올걸 그랬습니다 ㅋㅋ
Seal때문에 S/L/E에 ACPIDebug.kext 설치하기 여간 까다로운게 아니네요 ㅋㅋ
이 글과 관련은 없지만, 혹시 빅서에서 밝기 fn키 잡으셨나요?
ACPIDebug.kext를 스냅샷을 이용해 S/L/E에 넣은 후 로드가 안되길래 이것저것 만지다가 sudo가 망가져서 재부팅하니 tx_flush:1182에서 멈춰버리네요..
혹시 ACPIDebug.kext는 어떻게 로드하셨는지요?
저는 시스템이 완전히 깨져버린 것 같습니다;;ㅋㅋㅋ
제경우 BrightnessKeys.kext를 적용하고 부터 DSDT에 밝기 조절을 위한 핫키 패치를 DSDT에 넣지 않습니다. 사용해 보세요.
그리고, BrightnessKeys.kext의 정상 동작을 위해 ACPI에 "SSDT-PNLF" 또는 "SSDT-PNLFCFL" aml 이 적용되어 있어야 정상 동작 합니다. (팁!)
팁 감사합니다 ㅎㅎㅎ
fn밝기는 ssdt핫패치로 며칠 전 해결 했습니다. 제가 해결하고도 댓글을 안달았네요..;;ㅎㅎ
저도 한 번 고쳐 보고 싶네요.
키보드가 ps2 타입인가요? 제껀 ps2 타입이던데
dortania님 사이트에 나온 acpi-wake-type 추가 이 정도는 해보셨겠죠? 이건 usb던데
키보드 ps2타입입니다.
acpi-wake-type 추가시 아예 잘 생각을 안하더군요 ㅋㅋ
전원 led가 항상 켜져있습니다.
아! 아니네요 잠자기가 오래걸리는것 뿐이었습니다.
적용해도 똑같네요.
dsdt파일을 들여다 봐야 되지 않을까요?
잘 모르지만 dsdt 안에 wak 메쏘드가 있던데 혹시 그 쪽은 아닌가요?
관계 없는 내용이지만 님도 블루투스 펌웨어 집어 넣으셨네요. 그거 집어 넣어야 되던가요?
전 인젝터만 넣어도 잘 돌아가던데요. 다른 분도 펌웨어 집어 넣었던데 펌웨어가 진짜 필요한가봐요
펌웨어 같이 넣으라길래 그냥 넣었습니다..ㅋㅋㅋ
제가 커널삽질만 두달을 한지라 켁스트나 ACPI 이런것들 관해서 일자무식입니다 ㅋㅋㅋ
fn밝기 잡아보고 다시 빅서 올려서 여유롭게 ACPI뜯어봐야겠습니다. 답변 감사합니다 ㅎㅎ
님 덕분에 dsdt 안 넣고 rename이랑 ssdt 만으로 LPC랑 ACPI_SMC 로드 했습니다.
base를 저렇게 쓰는 거였군요. 메쏘드만 리네이밍 했습니다.
사실 저거 없어도 cpu스텝 아무 문제 없이 잘 돌아가던데 한 개라도 더 로드 됐다는 게 기분 좋네요
팁게시판에 제가 쓴 완전 순 엉터리 로드. 저건 삭제 되거나 다른 게시판으로 이동 되지도 않고 그대로 있네요.
참 민망하게
ACPI->Patch의 Base말씀하시는건가요?
저건 Sample.plist에 있었던 거긴 합니다만..ㅎㅎㅎ
어찌됐든 도움이 되셨다니 기쁘네요 ㅋㅋ
근데 현재 님 셋팅으로는 마우스로 웨이크가 돼야 될텐데
마우스로 웨이크가 안되나요?
바이오스에서 erp 가 enabled 되어 있는 거 아닌가요?
마우스로는 안해봤습니다. 키보드만 뚜드리고 전원버튼만 눌러봤네요 ㅋㅋ 이따가 시도해보겠습니다.
방금 바이오스에서 s3 wake 관련 옵션들을 발견했습니다. 켜보고 되는지 봐야겠습니다 ㅎㅎ 옛날에 다 켜놓고 무시했다가 얼마전 오픈코어 덕에 바이오스기 맛가는 바람에 cmos clear를 했는데 기본값이 off였나 보네요.
아 그런데 usb, 터치패드 wake네요. 아마 s3쪽을 일단 죄다 뒤져봐야겠습니다.
uefi driver에 openhfsplus.efi 저건 빼야 되는 걸로 알고 있어요.
open이 아니라 그냥 hfsplus.efi인데 아예 안 넣는 분도 많더라구요. 저도 별 문제 없는 것 같아서 아예 안 넣고 있습니다.
글고 님 빅서 버전이 어떻게 되시나요? 전 11.2.3에서 슬립이 잘 작동하고 마우스로 웨이크 했는데
11.3 이상에서부터 자꾸 슬립에서 다크웨이크 상태가 되어 집어넣기 싫은 gprw 집어 넣어서 마우스로 웨이크가 안돼요.
님은 prw관련 패치 한 개도 안되어 있던데 슬립이 잘 작동하신다니 버전이 궁금하네요
openhfsplus.efi 나 hfsplus.efi나 기능이 같은 것으로 알고 있어요. hfs+파티션, 즉 리커버리를 읽는데 필요한 드라이버에요. 지금 재설치를 계속 하고있어서 빼지 않고 놔두고 있어요. 빅서 버전은 11.3.1입니다. prw관련 패치가 어떤건가요? 커널 초기부팅만 죽도록 파서 그외엔 기본적인 것 빼고 아무것도 모릅니다;;ㅋㅋ
openhfsplus.efi 는 uefi용이 아니고 아주 구형 legacy mbr 방식으로 부팅할 때 쓰는 파일로 알고 있어요
님은 uefi로 부팅할테니 저 파일은 빼야 되는 게 맞는 것 같아요
prw가 파워 관련 메쏘드인 걸로 알아요. prw에도 여러 종류가 있죠
저 같은 경우에는 gprw 패치로 잠잘 때 usb전원 공급 차단하는 패치를 적용했었죠
덕분에 많이 알아가네요. 저는 아무것도 안건들고 일단 손에 잡히는것들만 잡았는데 전원버튼만 빼고 잘 자네요 ㅋㅋ
그러면 딱히 안건드려도 되는건가요?
아 그런거군요 ㅋㅋㅋ
별로 권장되지 않는 친구였네요. HFSPlus.efi로 바꿔껴야겠습니다. 감사해요 ㅎㅎ
제가 봤을 때 제가 님 상태라면 그냥 그대로 쓰겠습니다.
마우스로 웨이크가 잘 되는데 굳이 전원버튼을 쓸 이유가 없죠.
그리고 키보드는 원래 웨이크가 안되는 걸로 알아요. 윈도우에서도 키보드 웨이크가 안되거든요.
키보드 웨이크가 되는 걸 본 적이 없어요.
마우스 웨이크가 짱입니다.
글고 뚜껑 열고 닫기로 잘 작동하면 그만이죠
제 데스크탑은 윈도우 상태일때 키보드로 웨이크가 됩니다만, 최대절전을 꺼둬서 딥슬립이 아니라 다를지도 모르겠네요.
acpi 에러들 수정하고 s3쪽만 조금 파봐야겠습니다. 감사합니다 ㅎㅎ
네 usb키보드에요. 아 그렇네요 ㅋㅋㅋ
그런데, 최근 ECEnabler.kext로 배터리를 잡아뒀는데, _SB_.PCI0.LPCB.H_EC.BAT1~에서 ACPI에러가 무지하게 나네요.
이 뒷부분에 오는 친구들이 8비트 이상이라 원래 8비트 세분화 패치를 해줘야 하는것으로 아는데, ECEnabler.kext로 8비트 이상도 읽을 수 있도록 했는데 Parsing Error가 나는 이유가 뭘까요?
결국 수동으로 해줘야 하는지요 ㅋㅋ
ECEnabler.kext의 issue중에 리커버리에서 안된다는 얘기가 있네요. 설치 후에 봐야겠습니다. 질문 계속 던져서 죄송합니다..ㅎㅎ
배터리는 몰라요
전 배터리 패치 안해줬어요.
그냥 되던데요
정확하진 않아도 대충 맞는 것 같더라구요.
그래서 걍 냅뒀어요
랩탑은 ec-usbx-laptop가 아니라 그냥 ssdt-usbx면 충분하다 그러더라구요.
저도 첨에 몰라서 ssdttime에소 시키는대로만 했는데
안해도 되더라구요.
자세한 건 dsdt나 ioreg 를 살펴봐야 알겠죠
배터리의 acpi 레지스터가 8비트 이하이신가 보네요
방금 블루투스 펌웨어 꺼봤는데 블루투스가 안되네요 ㅋㅋ
대신에 IntelFirmware: HCI Timeout으로 부팅 무한루프되는 현상이 없어졌네요.
itlwm문젠줄 알고 Airportitlwm만 계속 버전 바꾸고 있었는데 IntelBluetoothFirmware.kext의 문제였네요..ㅋㅋ
시스템 DSDT를 잘 뜯어보다보니, _SB.LID0 디바이스에 _PRW Method가 없는 것을 발견했습니다. 그래서 제 생각으로는 잠자기에 진입한 후 LID에 전원을 똑바로 안주는게 아닌가 싶은데, _PRW Method를 어떻게 추가할 지 모르겠습니다. 제 dsdt에는 대부분의 기기들이 Return (GPRW (0x69, 0x04))이런식입니다. 그래서 이걸 넣으면 되는건지, 잠자기에도 전원을 주는 값이 따로 있는건지, 전원버튼의 값을 복붙해야하는 것인지 잘 모르겠습니다. Instant wake를 고치려고 이름을 바꿔주거나 뒤 숫자를 0으로 바꿔주라는 얘기만 있지 _PRW Method를 어떻게 작성하는가에 대해서는 나와있지 않더라고요..
lid wake가 안되나요
될텐데요
pmset에서 꺼놓으셨겠죠.
prw는 잘 몰라요
저도 대충 어떤 기능을 한다 정도로 유추한 거고 깊게는 몰라요.
나중에 확인해보니 acpi spec에 보면 power resource wake 라고 명시되어 있는 걸 확인한 정도요.
아마 님은 pmset에서 꺼둔 걸 꺼에요
sudo pmset lidwake 1 하고 뚜껑 열었다 닫아도 아무 효과가 없습니다..
DSDT를 건드리는게 맞는 것 같아요...ㅋㅋ
흠, sudo pmset -a lidwake 1을 치는게 맞는 것 같아서 다시 치고 pmset -g 챠도 lidwake 항목이 안보이네요..?
enablelidwake.kext 적용해보았는데 동일합니다. pmset -g 했을때 lidwake 항목 자체가 없습니다.
저의 해킨 X1C7의 경우 DSDT가 있건/없건 ( 배터리 패치 포함/미포함) 상태와 상관 없이 pmset 의 결과에 LID 항목이 있습니다.
제 생각에는 시스템 BIOS와 SMBIOS 등의 서로의 연관성 등이 문제가 아닐까? 합니다.
음.. 그러면 어떻게 해야 할까요..
현재 MacBookPro16,3인데 SMBIOS자체를 바꿔야 하는지요? 그런데 아까 레딧에 보니 DSDT에 LID0에 _PRW 메써드를 추가함으로써 해결했다는 이야기가 있더군요. 연동문제가 있더라도 강제로 PRW 메써드를 추가해버리면 될 수도 있지 않을까요?
LID0에 _PRW매써드를 추가해보고 싶은데, 어떤 값을 넣어야 하는지 모르겠습니다..
제가 알고 있는 시스템이 아닌지라 직접적인 내용 수정은 힘들겠지만, 아래 링크들을 살펴 보세요.
https://github.com/RehabMan/OS-X-ACPI-Poller
https://github.com/RehabMan/Laptop-DSDT-Patch/blob/master/misc/misc_Lid_PRW.txt
https://github.com/RehabMan/Laptop-DSDT-Patch/blob/master/misc/misc_LidPoll.txt
https://osxlatitude.com/forums/topic/10943-dsdt-latitude-e7450/?tab=comments#comment-84724
수고 하세요.
애초에 LID에 _PRW 매써드가 없어서 LidPoll DSDT패치 적용하고, ACPIPorller.kext 넣어주고 재부팅 해봤습니다. 여전히 뚜껑 덮어 잘자기는 잘 되는데 열어서 깨진 않습니다...
제 LID 자체가 \_SB.LID0 이 맞아서 수정 안하고 했습니다. acidanthera의 macIASL 사용했는데, Rehabman 버전을 사용해 봐야겠습니다.
참고사항을 하나 더 남깁니다. Samsung NT350XCR-AD5AS 에도 적용 가능하진 모르겠으나,
제가 X1C7을 해킨 할때 ACPI 쪽 이슈가 계속 있었는데, X1C7의 바이오스 설정에 Sleep State를 "윈도우즈" or "리눅스" 선택이 있습니다.
Sleep State 설정을 "리눅스" 로 바꿔서 안정화를 진행 하였고, 현재 잘 쓰고 있습니다.
일단 ReHabMan의 버전을 사용하나 Acidanthera 버전을 사용하나 별 차이가 없는 것 같습니다. 아래에 LIDP 다비아스가 똑같이 잘 추가되어 있습니다. 저는 바이오스에 있는 관련 설정은 acpi s3 touchpad wake, usb wake 가 있는데 켜도 맥에서 안먹더군요. OS종류관련 옵션이라 해봤자 Secure Boot밖에 없는 것 같습니다..
제 경우, 바이오스 설정을 변경하면 원본 DSDT를 새로 떠야 됩니다. 설정을 변경 한것에 대한 DSDT를 Meld 등으로 https://x86.co.kr/macnews/5642791
비교 분석 돌려 보면 , 바이오스 변경에 따른 DSDT 변경 사항등을 확인 하고 진행 하는데 도움이 될것 같네요.
그리고, DSDT 추출 방법에 따라서도 고생을 많이 했었습니다. 저는 Clover 부트에서 추출 하는 것은 최종적으로 사용 했습니다.
아하 그렇군요
그런데 문제는, s3 touchpad wake나 usb wake 를 켜도 어차피 lid와는 상관이 없을 것 같습니다..
PRW 매써드를 넣어보고 있는데 GPRW (0x69, 0x04), GPRW (0x69, 0) 둘다 안먹는 것으로 봐서 전원버튼을 배껴야 하나 보는 중인데,
전원버튼의 기능까지 베끼고 싶지는 않은데, 뭐가 뭘 하는건지 모르겠네요..ㅋㅋㅋ
일단 복붙해보고 되는지부터 봐야겠습니다.
오, 전원버튼의 _PRW매써드를 LID0에 넣었더니, 전원버튼 한번으로 켜지게 되었습니다. 그런데 여전히 뚜껑을 열어도 바로 일어나진 않네요.
제 생각은 다릅니다. ACPI (LID)와 직접적인 관련이 없어 보여도, 설정 변경한 후 DSDT를 새로 추출 비교해 보면, 메모리 주소, 항목 구문 변경 등 의외의 결과가 올수 있습니다. DSDT 추출 방법을 정하였다면, 옵션 변경 전,후 의 DSDT를 비교분석 돌려 보세요. 제 경험으로는 DSDT 한번 추출후 바이오스 이것 저것 변경 패치 하기전에 자신을 쓸 바이오스 설정 상태를 확정한 이후 DSDT 작업을 해야 삽질을 방지 할 수 있을 거라 봅니다.
macIASL에서 System DSDT를 보는것도 상관이 없는건가요? 할때마다 macIASL 열어서 뜨는 DSDT 수정해서 사용하고 있습니다.
ssdttime으로 한번 더 뽑아와야겠네요. 말씀하신대로 dsdt비교 한번 해봐야겠습니다.
힌트를 드렸었는데, clover (부트메뉴)에서 추출 했었다고,
이해를 못하신 것 같아서 설명을 드릴께요. macOS로 부팅할때 DSDT를 로드 설정한 상태에서 macOS의 도구로 DSDT를 추출하면 부팅 때 로드 한 정보가 반영된 DSDT가 추출 됩니다. (로드한 DSDT를 계속 사용하면 바이오스에서 설정을 바꿔도 반영이 안될 것으로 보셔도 되고요)
윈도우즈에서 추출하는 것도 비추 입니다. (칩셋, 드라이버 설정 상태) 등 또는 메모리 주소 값 등이 상이 할 수 있습니다.
수고 하십시요.
앗, 그런거였군요. 제가 말씀하신걸 그 방법으로 하라는 것인지를 캐치하지 못했네요.
팁 너무 감사합니다. ACPI를 만져본 적이 없어 모르는 것이 많네요
제 생각은 이렇습니다. ( 좀 다른 말씀 드립니다. )
해킨을 오래 하신 분들 중에도 까다로운 노트북을 나름 삽질 아닐 삽질, 공부 등으로 안정화까지 해보지 못하신 분들 이라면 상황에 따라 필요 없었기에 새로운 해킨을 시도 할 때 자신만의 노하우?가 정립되지 않아 다시 고생 하시는 분들도 많이 계실 것 같습니다. (또 장비 마다 특성이 매우 다양하고 그렇지요~)
exacore39님은 제가 노트북의 경우 Samsung galaxy TabPro S 로 시작하여 Lenovo X1C7의 해킨을 하면서 쏟았던 "열정?" 같은 것을 보게 됩니다.
화이팅 하십시요.
최근 M1 MacMini, M1 Macbook pro 13의 리얼맥을 주로 사용하면서 해킨 장비의 사용이 M1으로 부족하거나, 윈도우즈 병행 부팅이 필요한 경우를 제외하고 최근 새로운 시도를 하지 않았습니다. (해킨 장비를 위해 시스템 업그레이드를 할 생각도 없고요.)
엑팔을 그래도 매일 들어 오지만, 댓글을 시간 내서 ( 또 나름 테스트 하면서 ) 지원하는 것이 개인적으로는 마이너스가 더 많습니다.
질게의 공지에도 있지만, 힘빠지게 하는 회원들도 요즘 꽤 많아서 솔직히 발 담그기 싫어 지는 경우가 많습니다.
exacore39님께 직접적인 도움을 친절하게 드리지 못하였다면 이해 하십시요.
즐거운 해킨 하십시요.
감사합니다 ㅎㅎ
저도 가끔 모든 것을 요구하시는 분들이 계셔서 어떤 마음인지 압니다. 화이팅 하겠습니다!
ioreg에서는 lid가 잡히나요?
pnp주소 0c0d로 잡혀 있는지
pnp0c0d가 다른 디바이스에도 중복 돼있는지 함 확인 해보세요.
글고 메쏘드가 추가돼야 될 것 같은데
고수분이 보면 한 방에 딱 알텐데
저도 잘 몰라서 이렇게 밖에
LID0 디바이스에 _PRW Method를 추가해주니 pmset -g 했을때 lidwake 항목이 생겼습니다.
전원버튼의 _PRW매써드를 그대로 복붙하면 뚜껑을 열었을때 일어나진 않으나 전원버튼 한 번으로 깨네요.
그러나, Return (GPRW (0x69, 0x03)) 넣어주니 여전히 lidwake는 있는데 전원버튼도 5초이상 눌러야 켜집니다.
전원버튼 복붙시에는 lidwake 0으로 바꾸면 전원버튼도 길게 눌러야 했습니다.
_PRW매써드로 lidwake가 생긴 상태에서 IoRegistryExplorer열어보니 LID0 디바이스가 있었습니다. PNP0C0D로 겹치는 디바이스는 없었습니다. lidwake항목 활성화 여부, 전원버튼 한번으로 깨기 여부 등은 _PRW매써드 변경이 있었을 때만 있었고, Rehabman의 패치는 별 영향이 없었습니다. (파워버튼 복사, GPRW, _PRW없음 이상태로 모두 해본 것 같습니다, ACPIPoller.kext도 적용상태)
노트북 해킨 성공 전부터 성공 후까지 연속된 삽질로 위장이 맛이 가벼러서 잠시 쉬다 와야겠습니다..ㅋㅋ
다들 계속 도와주셔서 너무 감사합니다 ㅎㅎ
금방 해결되지 않는다면 조금 쉬다가 시험기간 전까지 ACPI관해서 조금 공부를 해봐야겠습니다..
수고 많으십니다.
제 X1C7 의 DSDT 의 내용중 Device (LID) 부분의 스샷 입니다.
Sleep 키 관련
IoRegistryExplorer의 LID 검색 내용의 스샷 입니다.
참고 되었으면 합니다.
그리고, 올려 놓으신 EFI 를 방금 열어 보았습니다. 배터리 표시 문제를 해결 하려고 "ECEnabler.kext" 를 사용하셨네요. 아직은 비추 입니다.
( 이유는 여러가지 입니다만, 말을 아끼겠습니다.) 단순히 배터리 표시 문제만 해결 한다면 모르겠지만, 관련성이 있는 ACPI 패치시에는 오히려 원하지 않는 결과가 올수 있다고 봅니다. ( 좀 귀찮더라도 팁/정보 란에 배터리 패치 방법 있으니 차근 차근 수동으로 패치 해 보세요.)
제가 "exacore39" 님의 하고자 하시는 부분을 윗 댓글로 파악해 보면, LID 이벤트에 빠져 있는 부분을 "파워 버튼"의 이벤트를 입혀서 구현 하려고 하는 것 같은데?
맞는지 모르겠습니다.
그런 의도라면 파워버튼 이벤트 보다 Sleep Key(버튼)의 이벤트를 옮기는 것이 어떻까? 합니다.
좀 지치신 것 같은데요, 깨끗한 DSDT에 배터리 패치 (수동)으로 먼저 해서 작업용 원본 1개 만드시고 차근 차근 다시 해보시는 것을 권해 드립니다.
화이팅 하세요.
아, ECEnabler.kext는 리커버리에서 작동하지 않아서 진입시마다 ACPI에러를 몇십줄을 뿜어내서 임시로만 쓰려고 했다가 잊고 있었네요.
제가 ACPI에 대해서 아무 지식이 없다보니, 아무생각없이 파워버튼 베낄 생각을 하고 있었네요 ㅋㅋㅋ Sleep Key의 존재 자체를 잊었습니다. ㅋㅋ
아무래도 뇌도 맛이 간게 아닌가 하는 합리적 의심이 드네요. 위에 올려주신 야크트74님의 DSDT도 많은 도움이 될 것 같습니다.
천천히 하나씩 해보겠습니다. 항상 감사합니다 ㅎㅎ
"exacore39" 고생 많으십니다. 안정화 성공하시면 좋겠습니다. 화이팅 하십시요.
안정화 빌드가 성공하면 "Samsung NT350XCR-AD5AS " 기종에 대한 해킨의 세계적인 고수? 가 되지 않겠습니까? ( 또 그 과정에서 많은 지식을 습득 하실 것 같습니다.) 이후 나름의 습득한 노하우를 바탕으로 해킨 장비가 바뀌어도 문제 없을 것입니다.
저도 엑팔의 회원이 되고서 데탑 : 2대, 노트북/탭 : 2대를 해킨을 했고 , M1 맥미니/맥북프로13 도 가지고 있지만 신뢰도/생산성 등을 해킨이 리얼맥을 대체 한다고 볼수 없지만, 해킨은 제게 "코비드19"로 인한 언택트 시대에 뭔가 집중하고 재미를 안겨주는 영역 입니다.
힘내십시요. 지금의 과정이 해킨의 참 맛이 아닐까 합니다. (안정화 끝내고 나면 너무 심심해 집니다. ^^;)
지금 "exacore39"님께서 이것 저것 자료를 열람하고 테스트하는데 정신적/체력의 고갈이 예상 됩니다. 그래서 몇가지 저의 생각?과 팁?을 알려 드리려고 합니다.
(이미 알고 계시는 내용입니다만,)
[ 데탑(해킨)과 비교 불가의 노트북(해킨)의 어려움. ]
데탑은 그래픽 가속이 되는 로그인 UI를 보게 될때 성공 했다라고 생각 하시는 분들이 많죠? 그 이유가 빵빵한 CPU파워, 무한대의 전원 공급, 대체 가능한 다양한 I/O 디바이스의 요소들이 있기 때문이죠, 알고 보면 손대야 할 것이 많은데도 당장 쓰는데 지장 없으니까 넘어가는 경우가 있을 것입니다.
그러나, 노트북은 어떻습니까? 말씀 안드려도 한계가 분명해 집니다.
(책상에 올려 놓고 "I/O 확장 Dock", "외장 모니터" 등을 사용해 데탑 처럼 쓴다면 모를까... 밖에서 (이동 하면서) 잘 써야 되는 노트북의 특성을 고려해 보면 확실한 안정화가 되지 않으면 노트북(해킨)은 그저 재미를 위한 장난감 일 뿐이라고 생각 됩니다.
[ 생각을 좀 바꾸셔야 할 것 같습니다. ]
"exacore39"이 하고 계시는 지금의 과정 ( 잠자기에서 깨우기 ?, LID )이 물론 해결해야 하는 것이기는 합니다.
그런데, 노트북은 켜는 것 보다, 잘 끄는 것이 중요 하지 않겠습니까?
노트북을 끄고 가방에 넣었는데 제대로 안꺼지고 혼자 열심히 사우나 하면서 놀고 있으면? 장비의 손상은 물론이고 정작 사용해야 할 시점에 체력(배터리) 고갈로 일 못해 "배 째~" 라는 상황을 생각 하십시요. ("exacore39"님의 "NT350XCR" 가 끄기가 문제 있다고 말씀 드리는 것이 아닙니다.)
[안정화?]
"exacore39"의 "NT350XCR"의 기능 구현 목록을 제가 알 수는 없지만, 이런 말씀을 드리는 이유는 "exacore39"과 피드백을 하면서 DSDT 추출/수정 , kext 사용 ,등이 "NT350XCR"의 해킨을 데탑(해킨)의 접근 방법?, 생각? 을 사용하고 있다는 오해?를 해 봅니다.
(제가 볼 때 지금의 현 상황은 안정화라기 보다 안되는 기능의 구현을 위한 문제 해결 과정 이라고 생각 됩니다, 물론 문제의 요소가 해결 되고 나면 "안정화?" 라고 말 할 수도 있게지만, 저의 생각은 위의 예 처럼 노트북의 안정화는 좀 다른 목표라고 생각 됩니다.)
[팁]
멀티 부트로더 (체인로드)를 사용 하십시요.
(해킨에서 부트로더는 핵심이죠?)
노트북(데탑 포함)을 해킨 하게 되면, BIOS의 업데이트/설정 항목 변경이 있을 때 아주 민감 합니다. 그리고, 그 영향이 DSDT,SSDT 과 직결 됩니다.
Kext 사용 적용 테스트 시에도 그렇고, config.plist의 변경에 대한 테스트 시에도 그렇고, 무엇인가 변경하고 부팅불능 , 커널 패닉, 등을 해킨에서는 쉽게 마주하게 되는 상황들 입니다.
저는 해킨 장비에 "멀티 부트로더 (체인로드)"를 항상 설정합니다.
OC1 / OC2 / Clover
기본적인 사용을 위해서는 OC1을 사용하고, 변경을 적용 테스트 할 경우 OC2 또는 Clover로 부팅 합니다.
(USB 메모리 스틱 활용과 다른 PC을 사용한 복구 등을 활용 할 수 있겠지만, 그닥 효율 적이지는 못합니다.)
예>
BIOS를 업데이트(설정 변경?) 하고 DSDT를 새로 추출 한다고 한다면?
저는
1. Clover 부트 메뉴를 체인로드 해서 DSDT를 생성하고
2. OC1으로 부팅 해서 ( DSDT 수정 반영을 OC2에 하고)
3. OC2로 부팅, 반영에 대한 확인 ( 부팅 불능시 리셋, OC1 으로 다시 부팅 )
이렇게 씁니다. ( 응용 활용은 더 많이 있습니다. )
부트로더 (체인로드) 는 다음 글을 참조해 보세요.
https://x86.co.kr/bootloader/5797622
...
...
"exacore39"을 격려 하여 드리는 마음이 였는데, 여러가지 주절 주절 말이 많았습니다.
(글을 좀 정리해서 올려 드려야 하는데, 아내와 같이 외출 할 일이 있는데, 빨리 안가냐고~ 화를 내고 있습니다.)
좋은 마음으로 댓글 다는 것이니 혹시 불편한 내용이 있으면 이해 말씀 드립니다.)
화이팅 하십시요.
장말 감사드립니다. 제가 데탑 해킨만 해왔던지라 그럴 수도 있겠지만, 저는 일단 다 잡아놓고 그다음에 다 정리한다 이런 생각이긴 했는데, 노하우, 경험이 없으니 뭘 어떻게 표햔할지 잘 모르겠습니다. dsdt로 작동여부 확인후 ssdt로 제작을 할 예정이긴 합니다만 노트북스러운 안정화는 아직 좀 남은 것 같네요. 제가 이 글에 안정화 막바지라고 했는데, 해킨을 하다보니 전혀 아니더라고요. 일단 눈에 보이는 기능을 잡아두고 세세히 천천히 파려는 목표이긴 합니다만, 어떻게 할지 모르니 아무거나 때려넣어서 데스크탑의 efi형태인 것 같기도 하고, 제 습관자체가 데스크탑에 맞춰저 있는 것 같기도 합니다.ㅋㅋ 사실 efi에 많은 변경이 있긴 했습니다. 대부분 ssdt의 리빌드, smbus ssdt, usb리매핑, 켁스트 버전삽질 등등..
체인로드 같은 경우에는 해킨 성공 전부터 했습니다.ㅋㅋ
야크트74님 rEFInd글 봤을때 오픈코어에서 이미 윈도우에 많은 영향을 끼치고, 매번 바이오스 부트메뉴 진입하기 얼마나 번거로운지 알기에 바로 추천+체킹해두고 데탑, 노트북 둘다 해뒀습니다. 해킨 성공 전에는 윈도우, 삽질용 OC, 리눅스 이렇게 사용했었네요.
현재 윈도우, oc, oc debug, clover 이렇게 사용중인데, clover에 뭔가 문제가있는지 f4, fn+f4를 아무리 누르고 기다려도 origin폴더에 dsdt가 안생기더라고요. 그래서 오픈코어 디버그에서 모든 acpi와 패치를 제거하고 openshell에서 acpidump를 이용해서 뽑고 있습니다만, 파일이 256개가 생기는 것 중 하나를 갖고와서 쓰는데, 맞는 방법인지 모르겠습니다. 클로버에서 dsdt를 뽑기위한 조건이 있는건지요? 제가 지금 특별한 점이라고 하면 임의로 만든 일단 fat32폴더에efi가 위치하고 있다는 점, rEFInd를 이용해 클로버를 체인로드하고 있다는 점 등이네요.
이렇게 조언까지 열심히 해주실 줄 몰랐는데, 계속 참으로 감사하다는 마음이 들고 계속 솟아나는 질문을 던지다 보니 오히려 죄송스럽습니다. 제가 학생이다보니, 앞으로 시간이 점점 없어져 엑팔에서 활동을 많이 할 날이 얼마 없는데, 이렇게 도움을 많이 받아가도 되는건가 싶습니다.ㅋㅋ
[과한 말씀을 드린것은 아닌지 모르겠습니다. 좋게 받아 주셔서 고맙습니다.]
제가 19년 쯤 휴대성과 활용에 있어서 꼭 성공하고 싶었던 해킨이 "삼성 갤럭시 탭프로S, LTE" 였습니다. 리얼맥을 사용했기에 macOS의 거부감은 없었지만, 해킨에 능숙하지도 않은 상태에서 해킨 난이도 "갑" 의 물건을 선택 했었습니다. (바이오스 설정에는 진짜 아무것도 없고, 포트라고는 USB-C 타입 포트 1개만 있는) 지금 생각해보면 무모 했던것 같습니다. (폭풍 검색과 반복되는 OS 재설치 ...)
어느 조직에나 (좋은 사람/나쁜 사람?) 여러가지 상황이 있겠습니다.
"삼성 갤럭시 탭프로S"의 해킨 때 도움을 받았던 기억 때문에 아직도 제가 엑팔에서 활동하는 바탕(태도)이 되고 있습니다.
그 때 도와주신 분이 계시는데, 다른 회원의 간섭 때문에 쪽지로 장문의 의견과 방향, 기술적 사항을 보내 주신 분이 계십니다.
그 분의 고마움은 아직도 잊지 않습니다. (*** 님) 다시 한번 감사의 말씀을 드립니다.
제가 exacore39님께 어떻게 도움을 드렸는지는 모르겠지만, 지금 제가 피드백 드리는 내용들은 (*** 님) 의 마음과 같지 않을까 합니다.
엑팔은 여러가지를 함께 나누는 좋은 커뮤니티가 아니겠습니까?
화이팅 하십시요.
[Clover ACPI 덤프?]
rEFInd 를 사용한 체인로드로 인한 Clover ACPI 덤프가 문제되는 상황은 저도 없고, rEFInd Discussion에도 없습니다.
2가지 점검 사항을 말씀 드리면,
1. 노트북에 별도의 USB 키보드(일반적인) 를 장착하여 덤프를 시도해 보십시요.
2. 혹시나 해서 말씀 드립니다만, Clover의 OEM 기능을 쓰고 계시지는 않는지요?
OEM 기능을 쓰고 있으면, ACPI 덤프가 위의 스샷 처럼 저장되는 위치가 다릅니다.
[ACPI 덤프 방법] - 이미 알고 계실지 모르지만,
(제가 추천 드리는 것은 역시 Clover ACPI 덤프 입니다만,)
https://dortania.github.io/Getting-Started-With-ACPI/Manual/dump.html
수고 하십시요.
중복된 게 있는지 찾는 건 ioreg로 하는 게 아니라 dsdt에서 찾아야 돼요.
저 같은 경우 EC와 H_EC 두 개가 pnp이름이 같아요.. 근데 H_EC는 사용안하는 상태라 ioreg에서는 보이지 않습니다.
방금 퇴근하고 집에 와서 제 dsdt 확인해보니
전 LID0이 두 개가 있네요. 하나는 EC 하위에 하나는 SB 하위에. pnp이름도 똑같구요.
EC쪽에 있는 lid가 동작하는 게 아닐까 싶네요.
님 EC 패치하셨던데 제가 알기로는 랩탑은 EC 패치하는 게 아닌 걸로 알고 있습니다.
EC ssdt는 동작하지 않는 더미ec를 만드는 ssdt인 걸로 알아요.
배터리 건드릴 때나 건드리고 EC패치는 빼고 USBX만 집어 넣으시길 권해 드립니다.
그리고 제 EC 하위에 있는 lid0 디바이스 내용 첨부할테니 참고해보세요. 값이 다르네요.
Device (LID0)
{
Name (_HID, EisaId ("PNP0C0D") /* Lid Device */) // _HID: Hardware ID
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x43, 0x03))
}
Method (_LID, 0, NotSerialized) // _LID: Lid Status
{
If (MYEC)
{
Local0 = LSTE /* \_SB_.PCI0.LPCB.EC__.LSTE */
}
Else
{
Local0 = One
}
Return (Local0)
}
}
중복이 있는지 확인할 때 DSDT에서 했습니다..ㅋㅋ 제가 오해할만하게 적어뒀네요;;
현재는 다시 SSDT-EC-USBX-LAPTOP 사용중인데 이것도 비활성화하고 SSDT-USBX만 사용하는게 맞는건가요?
pwrb는 한 개 밖에 없네요.
님꺼 대충 딱 보니 zero,5 가 5초동안 누르게 만드는 역할을 하는 게 아닐까 싶네요.
제 pwrb도 함 참고해보세요
다른 사람들 dsdt파일도 다운로드 받아서 참고 해보시고
그러다보면 비교 유추로 충분히 문법이나 기능까지 알아낼 수 있지 않을까 싶습니다.
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */) // _HID: Hardware ID
Name (PBST, One)
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
}
야크트74님 덕에 Unpatched DSDT파일을 뽑아낼 수 있었습니다. 그래서 잘 살펴보는 중인데.. 어렵습니다.
Rehabman의 _PRW패치들도 먹지 않고.. 직접 손보는게 답일 듯 한데, 뭐가 워낙 많아서 마지막에 한 변수가 무슨 값이 되는지도 모르겠고, 다 해석도 못하겠으니 어렵기만 합니다. 결국 제 스스로 해결하려면 dsdt를 다 이해할 수 있어야 될 것 같습니다.
또 공부를 해야겠다는 생각이 드네요 ㅋㅋㅋㅋ 여러 노트북들의 dsdt를 살펴보는데 다 (x)PRW 이런 부분들이 다 다르게 되어 있더군요.
대충 보다보면 알거라 생각했는데 아니었습니다..
중요해보이는 부분이 이 부분인 것 같은데.. 아직 이해는 못하겠고 나중에 까먹을 것 같아 적어둡니다..
Insanelymac에 도움요청하러 가는 것도 고민해봐야겠습니다 ㅋㅋ
Scope (_SB)
{
OperationRegion (PBTL, SystemMemory, PWRM, 0x1E30)
Field (PBTL, DWordAcc, NoLock, Preserve)
{
Offset (0x1024),
Offset (0x1025),
PBTN, 8
}
Method (QPTS, 1, NotSerialized)
{
D8XH (Zero, Arg0)
If ((Arg0 == 0x03)){}
If ((Arg0 == 0x04)){}
If ((Arg0 == 0x05)){}
If (((Arg0 == 0x03) || (Arg0 == 0x04)))
{
Local0 = ^PCI0.LPCB.H_EC.B1AF /* \_SB_.PCI0.LPCB.H_EC.B1AF */
Local0 >>= 0x10
Local0 &= 0xFFFF
BFCC = Local0
}
NVGF = Zero
SDCK = ^PCI0.LPCB.H_EC.DCBE /* \_SB_.PCI0.LPCB.H_EC.DCBE */
Name (EBUF, Buffer (0x1E){})
If (((Arg0 == 0x04) || (Arg0 == 0x05)))
{
EBUF [Zero] = 0xE1
If ((Arg0 == 0x05))
{
EBUF [One] = 0xBC
}
Else
{
EBUF [One] = 0xF8
}
CMDD (0x9F, 0x02, EBUF)
}
While (!(PBTN & 0x02))
{
Sleep (0x64)
}
}
Method (QWAK, 1, NotSerialized)
{
If ((Arg0 == 0x03))
{
If ((RELT == 0xBA))
{
Notify (PWRB, 0x02) // Device Wake
}
}
If ((Arg0 == 0x04))
{
Notify (PWRB, 0x02) // Device Wake
}
If ((^PCI0.LPCB.H_EC.ACEX != PWRS))
{
PWRS = ^PCI0.LPCB.H_EC.ACEX /* \_SB_.PCI0.LPCB.H_EC.ACEX */
CCRN ()
}
If (((Arg0 == 0x03) || (Arg0 == 0x04)))
{
Local0 = One
}
If ((Local0 != LIDS))
{
LIDS = Local0
If (IGDS)
{
If ((LIDS == Zero))
{
^PCI0.GFX0.CLID = 0x80000000
}
If ((LIDS == One))
{
^PCI0.GFX0.CLID = 0x80000003
}
}
Notify (LID0, 0x80) // Status Change
}
Local0 = ^PCI0.LPCB.H_EC.B1AF /* \_SB_.PCI0.LPCB.H_EC.B1AF */
Local0 >>= 0x10
Local0 &= 0xFFFF
If ((Local0 != BFCC))
{
Notify (^PCI0.LPCB.H_EC.BAT1, One) // Device Check
Notify (^PCI0.LPCB.H_EC.BAT1, 0x81) // Information Change
}
If ((SDCK != ^PCI0.LPCB.H_EC.DCBE))
{
SDCK = ^PCI0.LPCB.H_EC.DCBE /* \_SB_.PCI0.LPCB.H_EC.DCBE */
}
^PCI0.LPCB.H_EC.TUBI = Zero
^PCI0.LPCB.H_EC.TZCH (^PCI0.LPCB.H_EC.TIST)
Local0 = GPC0 (0x04010004)
Local1 = (Local0 & 0xFFFFFEFE)
SPC0 (0x04010004, Local1)
Sleep (0x32)
SPC0 (0x04010004, Local0)
D8XH (Zero, 0xAC)
}
}
Scope (_SB)
{
Method (SPTS, 1, Serialized)
{
PTS2 (Arg0)
GPTS (Arg0)
QPTS (Arg0)
}
Method (SWAK, 1, Serialized)
{
WAK2 (Arg0)
GWAK (Arg0)
QWAK (Arg0)
}
}
Scope (_SB)
{
Method (WAK1, 1, NotSerialized)
{
PWRS = ^PCI0.LPCB.H_EC.ACEX /* \_SB_.PCI0.LPCB.H_EC.ACEX */
GSSM (0x9A, PWRS)
}
Method (PTS1, 1, NotSerialized)
{
}
}
뽑은 dsdt파일도 올려두려 했는데, 업로드 에러가 뜨네요 ㅎㅎ;;
아, 그리고 저는 sleep key자체가 dsdt에 없었습니다..
.dsl, .aml 확장자의 파일은 업로드시 오류가 나네요. .dsl로 저장 후 txt파일로 올리니 올려지네요..
ec는 제가 잘못 안 것 같네요.
검색하다보니 여러 말 들이 많아서
아직도 헷갈리는데
랩탑은 기존 ec 그대로 두고 훼이크ec추가하라는 내용인 것 같던데 이건 님이 좀 더 정확하게 파앋해보시는 게 좋을 것 같습니다.
맥토피아님도 저 조현병 환자 맞아 보인다고 그러시던데 제가 하는 말은 대충 걸러 들으시고 한 번 더 확인 해보시는 게 좋을 것 같습니다
님 ec 하위에 lid device 있나요?
ec 밑에다가 lid device를 추가해주셔야되는 게 아닐까 싶은데요.
비슷한 사양의 정상 동작하는 dsdt를 구해보심이
ec 밑에는 이따가 확인해 볼게요. lid0디바이스는 _SB.LID0 밖에 없었습니다.
비슷한 사양의 dsdt라 해도 ssdt면 모르겠으나 dsdt는 작동을 안할 것 같긴 합니다만, 잘 다듬어서 쓰려면 또 시간과 노력이 필요하고..
요즘 체력도 딸리고 시간도 없어서 Insanelymac에 들고갈까 고민중입니다.
그나저나 조현병이라니.. 응원합니다. 다들 병 하나씩 갖고 있으니 힘 내셨음 합니다. 답글 볼 때 이해할게요 ㅎㅎ
저는 전문가가 아니고 그냥 해킨을 즐기는 유저일 뿐입니다.
제대로 된 지식은 없으면서 이리저리 만져본 경험을 가지고 말씀 드리는 것일 뿐이니 그 정도라는 걸 참고해서 거를 꺼 거르고 잘 판단해서 받아들이시기 바랍니다.
EC에 대한 경험을 말씀 드리자면 pnp0c09가 ioreg에서 반드시 살아있어야 배터리가 동작한다는 겁니다.
제 시스템은 원래 아무것도 건드리지 않으면 EC디바이스 하나만 있고 pnp0c09이고 잘 동작합니다.
그런데 EC0이면서 pnp0c09가 있으면 추가로 훼이크EC를 만들라고 되어 있더군요.
예전에 잘못 따라해서 pnp0c09가 없어져서 배터리가 아예 표시되지 않았거든요.
그래서 검색하다보니 랩탑은 EC건드릴 필요 없다 그런 얘기도 있고 해서
랩탑은 EC-USBX.aml 이거 하나만 있으면 되는 줄 알았어요.
그런데 오픈코어 원본 소스에 위와 같은 훼이크EC추가하라는 내용이 있더군요.
왜 저렇게 해야되는지는 모르겠는데 저렇게 해야 뭐가 잘 동작한다 그래서 시키는 대로 따라해서 현재는 EC가 두 개 입니다.
원래 EC인 걸 EC0으로 리네임하고 fake ec를 추가한 상태죠.
어찌됐건 pnp0c09가 살아있어야 배터리가 동작한다는 겁니다.
제 EC 배터리는 변수 하나만 264이고 나머지는 다 8 이하이더군요.
그래서 특별히 따로 작업 안해도 거의 맞게 표시가 돼요.
일단 머리가 아프니 ecenabler 집어치우고 배터리를 잡고 시작하는게 역시 맞겠네요. 일단 배터리패치 만들고 생각해야겠습니다..ㅋㅋ
얼른 11.4가 릴리즈 됐으면 좋겠네요.
11.3.1 클린설치 했는데 내장카드리더기가 안되네요.
인식은 되는데 작동을 안해요.
원래 11.2.3에서 업그레이드 했을 땐 작동도 됐거든요.
버전업 되면서 호환성이 더 떨어지는 것 같은데 애플이 일부러 이러는 것 같아요.
그래도 빨랑 릴리즈돼서 깔아보고 싶네요. 윈도우 깔려있는 ssd랑 바꿔서 설치하고 싶기도 하고
ACPI 작업은 잘되고 있으십니까? 질게의 답변을 하다가, 우연히 "EnableLidWake.kext" 라는 것을 보게 되었습니다.
github의 빌드 "NT950XCR" 빌드 인데.. 제가 눈여겨 본것은 "ACPIPoller.kext" 와 "EnableLidWake.kext" 입니다,
https://github.com/wei756/NT950XCR-G58A-Hackintosh/tree/master/EFI/OC/Kexts
확인해 보세요. 수고 하세요~
감사합니다. 제 댓글중 어딘가에 있을텐데 enablelidwake.kext와 acpipoller.kext같이 적용해 보았었으나 아무 변화가 없었습니다 ㅠㅠ
밀감젤리님 후기 보면 저렇게 적용을 하셨는데도 안되는 것에 뚜껑 열어 깨기가 써있습니다..
지금 수행이 조금 몰린지라 다음주 수요일? 쯤 되어서야 다시 만져볼 수 있을 것 같습니다. 그때 배터리패치부터 하고 다시 이것저것 해볼 예정입니다 ㅎㅎ
그렇군요. "enablelidwake.kext" 개발자 사이트 업데이트 오래전부터 안되고 있던데..
소스코드를 확인해보면, "enablelidwake.kext" 가 iGPU와 관련 있던 문제 해결을 위한 것 같습니다.
https://github.com/syscl/EnableLidWake/blob/master/EnableLidWake/EnableLidWake.cpp
macOS도 "mojave" 가 마지막 이였던 것 같네요...
그런데,
빅서/ 최신 Whatevergreen 에서도 이슈인지는 모르겠지만,
enableLidWake.kext LID의 ACPI 쪽 설정 문제가 아니라 소스코드를 보면 iGPU 픽스 형태로 만들어 졌다는 것입니다.
이에 따라서 iGPU 셋팅에 문제가 있지 않을까? 하는 궁금증이 생겨서 본문의 첨부 EFI를 다시 살펴 보니.
으로 셋팅 하셨네요.
i5-10210U ( Comet Lake ) 를 Coffeelake ( UHD630 ) 으로 인젝션 시키는 것이 맞는지 저는 모르겠습니다.... ( 또한 리얼맥이 존재하지 않는 코드로...)
Whatevergeen 의 변경 사항을 리스트 해 보면 최근 Device-ID 변경 사항은 다음과 같습니다.
ark.intel 을 살펴보면 i5-10210U의 장치 ID가 아래의 스샷 중의 하나 인것을 되어있네요.
아무튼 수고 하십시요~~
앗 ㅋㅋㅋㅋ
건망증이 심각해졌나 봅니다. 처음에 테스트용으로 밀감젤리님 efi의 igpu설정 복붙해두고 다시 cometlake devid과 framebuffer조합으로 바꾸려 했는데 까맣게 잊었네요.
덕분에 efi에서 허점을 계속 발견하고 있네요 ㅋㅋ
야크트74님 아니었으면 그대로 쓸 뻔했습니다..ㅎㅎ
단순한 재미로 접근하시는 것 같은 생각이 드네요.
말씀 아끼겠습니다.
즐~ 해킨 되세요.~
단순한 재미가 6~7할쯤 되는 것 같네요..
다시 생각해보니 제가 제대로 igpu 셋팅도 안해놓고 한참동안 질문글 올려놓고 답변받고 있었는데 그거에 대해서 좀 가벼운 댓글을 달았네요.
죄송하다는 말씀 드리고 싶습니다,,
항상 감사합니다.
EnableLidWake.kext 는 현재 Deprecated 되어서 잘 사용하지 않고
그 대신에 Intel 내장 그래픽의 Framebuffer 에서 FBAlternatePWMIncrement1/2 라는 Flag 를 설정하는 것으로 대체되었습니다.
https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.OldPlugins.en.md
Hackintool 에서 Framebuffer 의 Flag 를 수정하여 나온 값을 Reverse Byte Order 로
Config.plist 에서 IGPU 의 Device Properties 에 framebuffer-flags 라는 이름으로 입력하면 됩니다. :)
추가로, 커넥터의 Flag 가 아닌 Platform ID 자체의 Flag 값이며 각각의 Platform ID 마다 Flag 값이 조금씩 다르기도 합니다.
아, 그렇군요. 정보 감사합니다!
말씀해주신 대로 패치해보겠습니다 ㅎㅎ
곧 해킨을 접게 되겠지만.. 마지막 삽질로 이거라도..ㅋㅋㅋㅋ 하고 갈까 싶네요.
사실 바꾸려다가 잊은 것은 IGPU 설정은 잘못된 것이 아니었습니다. 코맷레이크 전의 igpu 설정일 수도 있어서 다시 수정해야 한다고 생각했는데, comet lake는 데스크탑 device id밖에 없고 다른 10210u 빌드들도 CFL device id 사용해서 그냥 놔뒀습니다.
framebuffer-flags에 해킨툴에서 FBAlternatePWMIncremen 1, 2 , 둘다 이렇게 다 flag 값을 reverse byte order로 넣어봤는데, 셋다 아무 효과가 없었습니다 ㅠㅠ
Intel Core i5 - 10210U CPU 는 CFL Framebuffer 의 Platform ID 를 사용하는 것이 맞습니다.
ACPIPoller.kext 와 LID 관련 패치를 같이 적용해야 합니다.
혹시, 밀감젤리님의 Github 저장소에서 SSDT-LIDP.aml 도 같이 추가하고 다시 부팅해서 되는지 확인해보세요.
https://github.com/wei756/NT950XCR-G58A-Hackintosh/blob/master/EFI/OC/ACPI/SSDT-LIDP.aml
ACPPoller.kext적용상태로 밀감젤리님의 SSDT-LIDP활성화, 비활성화 상태로 1/2/1,2 총 6번 테스트 했습니다.
전부 동일합니다 ㅠㅠ
항상 뚜껑을 닫고 팬소리가 멈추기 전에 다시 열면 화면이 뜹니다만 전원등이 꺼지고 팬소리가 멈춘 뒤 열면 반응이 없습니다..
어차피 곧 해킨을 접을 운명이긴 했습니다...ㅋㅋ
이대로 며칠 쓰다가 지우게 될 것이라..
도움 주셔서 감사해요 ㅎㅎ
이 문제 해결에 손을 놓은지 꽤 되었는데.. 뒤늦게 여기에 업데이트를 하지 않았다는 것을 깨닫고 추가합니다.
Lidwake를 어떻게든 해결해 보려고 Rehabman의 글을 매우 많이 읽었습니다.
지금까지 시도했던 것들에 대해 제가 이해한 것은, ACPIPoller는 말 그대로 Polling을 하는 것이 아닌가 싶습니다.
Polling은 CPU가 장치의 상태를 직접 주기적으로 확인하는 것입니다.
따라서 SSDT-LIDP와 ACPIPoller는 S0 State에서 LID State Change를 Polling해서 감지하는 것이니,
CPU가 꺼져있는 S3 State에서 작동할 만한 것은 WEG의 PWMIncrement 1/2 플래그, _PRW Method 추가입니다.
그런데 WEG 플래그는 작동하지 않았죠..
(syscl의 EnableLidWake.kext는 PWMIncrement 1/2 플래그의 역할과 동일합니다.)
그래서 가장 마지막에 남은 것은 _PRW Method를 추가하는 것인데,
가장 큰 문제는 이것을 어디에 추가해야 하는가, 어떤 값을 Return해야 하는가였습니다.
1. _PRW Method를 어디에 추가해야 하는가?
이 문제는 생각보다 쉬웠습니다.
당연히 LID0 디바이스, 그리고 Notify (LID0, 0x80) 을 포함하는 디바이스에 넣어주었습니다.
LID0 디바이스가 직접 깨울 수도 있지만, LID0 디바이스의 상태변화를 감지하고 다른 디바이스가 깨울 수도 있으니까요.
2. 어떤 값을 Return해야 하는가?
곰곰이 생각해보니 현재 SSDT-GPRW가 적용된 상태로, 장치를 깨울 수 있는 것은 PWRB 디바이스밖에
없다는 사실을 깨달았습니다.
그런데 제 PWRB 디바이스에는 직접적으로 어떤 값을 Return하는지 나타나 있지 않아서 IORegistry를 파보니..
GPRW의 Arg0에 올 값은 0x10이 적당할 것이라는 결론을 내렸습니다.
이 값은 다른 디바이스들과 비교해보다가 GPRW의 Arg0에 오는 값이 acpi-wake-gpe에 오길래
유추해낸 것이긴 합니다만.. 되기만 하면 되는거 아니겠습니까 ㅋㅋㅋ
그리하여 쓴 코드가 이렇습니다.
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x10, 0x04))
}
이 Method를 LID0, 그리고 Notify (LID0, 0x80)을 포함하면서 _PRW Method를 가지고 있지 않은 H_EC 디바이스에
넣어 주었습니다.
그리고 재부팅... LID0 디바이스에 _PRW Method를 넣었음에도 일단 Lid Sleep은 됩니다.
다시 Lid를 열었는데.. 아무 반응이 없습니다 ......
그래서 아 안되는구나.. 하고 전원버튼을 눌렀는데 누르자마자 바로 전원LED가 점등되며 잘 일어납니다.
예상치 못한 결과 ㅎㅎ;;;;
깨운 후에 터미널에서 ACPI 로그를 보니 ACPI Wake Reason에 PWRB, H_EC, LID0이 있습니다.
이것으로 보아 결국 S3 State에서 LID의 상태변화가 감지되지 않거나, 디바이스를 결국 깨우지 못하나,
H_EC에 추가한 코드로 인해서 PWRB버튼이 눌렸을 때 H_EC가 즉시 디바이스를 깨워주는 듯 합니다.
(Lid를 닫지 않은 상태에서 잠자기에 들어갔다가 깨우면 Wake Reason에서 LID0이 빠집니다.)
그래서 여기서 끝났습니다.
수많은 Rehabman의 글들을 읽다보니 Lidwake는 알 수가 없다. 어떤 기기는 되고, 어떤 기기는 되지 않는다는 말이 적혀 있더군요.
이미 전원버튼을 눌렀을 때 즉시 일어나는 것만으로 충분히 편해졌기에...
여기서 포기하기로 했습니다.
답글 달아주셨던 분들 너무 감사합니다. 좋은 하루 되세요:)
아니 이게 머선......
방금 예전에 대충 잡아놓고 신경 끄고 있었던 트랙패드가 오늘 다시 보니 Interrupt모드가 아닌 Polling모드이길래
GPIO Pinning 작업 하려고 SSDT들 정리하면서
필요없는 SSDT-GPI0을 제거하고 SSDT-XOSI넣고
나머지 패치 만드려다 노트북 뚜껑 덮어두고 시간이 없어서 시험공부좀 하다가 와서 열었는데..
열자마자 전원LED 점등되며 로그인 화면이 반겨줍니다.....?!!!
안믿겨서 로그보니 ACPI S3 Wake, Wake Reason으로는 H_EC, LID0 써있네요...
그래서 지난번에 만든 PRW 매써드 끼워넣는 SSDT때문에 되는 것인가 싶어
해당 SSDT비활성화 하니 뚜껑 열어도 아무 반응이 없더군요.
전혀 예상치 못한 곳에서 해결을 ㅎㅎ;;;;
이러면 근본도 없이 직접 만든 SSDT가 의도한대로 작동한다는 것이니... 가이드 쓰러 가야겠네요 ㅋㅋㅋㅋ
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
모니터(오류화면) 사진 찍을 때 팁(소소함) +270 | 11만 | 17.07.3020:49 | 달쇠 |
빠르고 정확한 답변을 받는 팁 및 질답자의 매너, EFI폴더 압축법 +90 | 12만 | 17.02.1014:21 | Mactopia |
Hot 오픈코어로 단일 ssd로 듀얼부팅 설정시 윈도우 블루스크린문제 해결방... +11 | 40 | 24.10.2318:25 | 헷인토시 |
Hot 새로운 os 설치, 벤츄라가 좋을까요? 세콰이어가 좋을까요? +10 | 96 | 24.10.2308:19 | 미찌콘 |
Hot 맥프로를 들여왔는데 질문이 있습니다. +5 | 54 | 24.10.2315:51 | 배고픈사람 |
30 | 24.10.2322:21 | 활주로임 | |
40 | 24.10.2318:25 | 헷인토시 | |
41 | 24.10.2317:01 | 활주로임 | |
54 | 24.10.2315:51 | 배고픈사람 | |
39 | 24.10.2315:18 | 희밍현수님 | |
96 | 24.10.2308:19 | 미찌콘 | |
92 | 24.10.2213:48 | 아킬리오 | |
77 | 24.10.2210:36 | MCMC | |
54 | 24.10.2200:57 | 헷인토시 | |
136 | 24.10.2123:22 | 마요네즈 | |
153 | 24.10.1914:54 | 활주로임 | |
177 | 24.10.2017:21 | RTings | |
187 | 24.10.2000:14 | Kylee | |
117 | 24.10.1921:50 | 루이코아낭 | |
196 | 24.10.1918:03 | Gastone | |
80 | 24.10.1721:28 | Oscar | |
198 | 24.10.1712:11 | 희밍현수님 | |
70 | 24.10.1612:42 | SystemShock | |
305 | 24.10.1517:37 | Gastone | |
1148 | 24.10.1517:20 | 물만두 | |
1622 | 24.10.1317:18 | 물만두 | |
1273 | 24.10.1315:07 | Steer | |
872 | 24.10.1004:51 | Steer | |
186 | 24.10.0920:24 | KImET | |
927 | 24.10.0915:49 | lesmi | |
179 | 24.10.0911:23 | LumOS | |
73 | 24.10.0902:16 | lesmi | |
909 | 24.10.0822:09 | 애플맨 | |
1313 | 24.10.0810:58 | soullees | |
112 | 24.10.0723:26 | 오십견 | |
1232 | 24.10.0723:14 | Steer | |
115 | 24.10.0721:40 | 서재희 | |
69 | 24.10.0704:04 | g2030h61 | |
88 | 24.10.0704:00 | g2030h61 | |
92 | 24.10.0620:14 | SystemShock | |
113 | 24.10.0617:57 | 늘심심 | |
1372 | 24.10.0601:48 | 아스타틴 | |
1271 | 24.10.0515:04 | lesmi | |
129 | 24.10.0422:58 | 낡은기계 | |
544 | 24.10.0315:33 | oreo | |
117 | 24.10.0315:26 | 매치포인트 | |
175 | 24.10.0313:01 | 매치포인트 | |
148 | 24.10.0311:30 | KAKU | |
331 | 24.10.0207:44 | 데스맥 | |
254 | 24.09.3014:22 | 민준송 | |
172 | 24.09.2922:21 | oreo | |
133 | 24.09.2917:58 | 수박 | |
111 | 24.09.2913:21 | 루마루 | |
206 | 24.09.2910:19 | 루마루 | |
140 | 24.09.2723:18 | 머트 | |
146 | 24.09.2720:41 | ashly | |
230 | 24.09.2716:50 | loopers | |
211 | 24.09.2602:42 | Caper | |
288 | 24.09.2301:36 | 낡은기계 | |
164 | 24.09.2122:38 | Door | |
225 | 24.09.2108:35 | 루베콘 | |
503 | 24.09.2022:16 | 에잉 | |
223 | 24.09.1910:03 | 밤가시 | |
306 | 24.09.1822:20 | SUNWAYFOTO | |
732 | 24.09.1815:34 | Nelson | |
444 | 24.09.1814:34 | sebali | |
236 | 24.09.1813:37 | Panictosh | |
338 | 24.09.1801:27 | SUNWAYFOTO | |
155 | 24.09.1719:17 | 그냥인간 | |
331 | 24.09.1620:36 | dlraud | |
217 | 24.09.1618:45 | Nelson | |
100 | 24.09.1612:07 | 아스타틴 | |
200 | 24.09.1522:02 | lesmi | |
265 | 24.09.1323:56 | 윤수꾸하하 | |
640 | 24.09.1319:18 | 뚜비 | |
1550 | 24.09.1200:33 | Steer | |
255 | 24.09.0918:08 | 상큼버터 | |
1446 | 24.09.0717:13 | 인터찹 | |
1554 | 24.09.0711:07 | 서재희 | |
1464 | 24.09.0113:39 | 시습이 | |
495 | 24.08.3022:44 | 블루 | |
435 | 24.08.2911:20 | lesmi | |
449 | 24.08.2823:04 | 김덕뱀 | |
327 | 24.08.2517:14 | 그냥구름 | |
264 | 24.08.2218:42 | Panictosh |
제가 현재 작업 중인 갤북 플렉스도 잠자기 진입이후 전원버튼 5초간 눌러야 전원불이 들어와서 현재 저도 시간 날때마다 작업중입니다..ㅎㅎ