dsdt 에러 관련
- 0Moon
- 1308
- 6
0Moon님의 기기정보
문법에러가 발생하는데 해결법을 모르겠네요
ssdt의 경우는 그냥 잘되었는데 말이죠
0Moon
댓글 6
에고 너무 늦게 올렸군요
아카이브가 그 파일들입니다
전 x54ks lv53라는 ?한성 노트북을 사용중입니다!
터치패드랑 백라이트만 잡으면 될것같은데 힘들군요 ㅜㅜ
에고... 잠시 다른일 하느라 많이 늦었습니다.. 한 1시간 좀 넘게 손봤는데, 쓸만할지는 잘모르겠습니다.
수정 및 패치한 DSDT 입니다. https://www.x86.co.kr/sle/666634
터치패드는 kext로 잡아야합니다.
PS0X 관련 메소드/디바이스를 찾기위해 SSDT를 다 찾아보았지만?PS0X가 정의된 것은 없었습니다. 하드웨어 레벨에서 작동되는 것이아닌, 소프트웨어 상에서 작동할 때 필요한 것으로 보입니다.
우선?If (CondRefOf (\_SB.PCI0.I2C0.PS0X)) 이렇게 되어 있는 것을 보면
\_SB.PCI0.I2C0.PS0X 에서 PS0X는 "디바이스" 아니면 "상수가 선언된 변수"로 생각할 수 있습니다.
함수 메소드가 아닌 이유는, 메소드 일 경우?PS0X로 끝나지 않고?PS0X() 로 끝나야 합니다. ()는 메소드에 넘겨주는 인자 값을 넣는 곳입니다.
그러므로,?
? ? ? ? ? ? ? ? ? ? If (CondRefOf (\_SB.PCI0.I2C0.PS0X))
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ?PS0X
? ? ? ? ? ? ? ? ? ? }
를 해석하면?
IF = 만약에?
CondRefOf (\_SB.PCI0.I2C0.PS0X) 가 true라면,?
PS0X 를 ~~~~~하여라! 입니다.
PS0X가 디바이스라면 단독으로 쓰이기에는 보조 함수들이 없습니다. 그러므로 디바이스라고는 생각할 수 없습니다.
남은 것은 상수 ?혹은 변수 인데, ?상수와 변수는 그 자체로는 무언가를 하지 않습니다.?
그러나 "리턴 값"으로는 사용 될 수 있습니다.
그래서?PS0X 를?Return (PS0X) 로 변경하였습니다.
SSDT, DSDT 내에서 PS0X, PS3X를 찾을 수 없었기에,?
함수 호출?External 을 사용해서, dsdt 컴파일시 에러를 피했습니다.
External (PS0X, IntObj)?
해석하자면... PS0X를 "어딘가"에서 불러온다. 그리고 이 PS0X는 IntObj이다. IntObjh는 상수(정수) 오브젝트 입니다.
클로버 부트로더 화면에서 f4를 눌러주시고
EFI 마운트 후
EFI / CLOVER / ACPI / original 에 있는 모든 파일을 압축해서 업로드해주세요.?
그리고 사용중인 메인보드도 알려주세요.