추가사양 및 설치(할)OS | mojave, catalina |
---|---|
공지숙지/증상설명 | 숙지 |
*적용중인 도장
수정!! 해결했습니다.
안녕하세요.
현재 삼성 갤럭시 탭프로 S 카탈리나 버블릭 베타 1을 설치하였습니다.
LTE,WIFI, 안됨.
블루투스 / 사용가능 하나 off 안됨
사운드 / 잡혔으나 소리 안남.
리부팅 안됨.
종료/ 정상적인지 알 수 없음.
기타 등등 문제점이 있어 DSDT 수정을 시도해 보려고 하는데. 기본 DSDT에 컴파일 오류 3개가 있어 고수님의 도움을 요청 드립니다.
첨부 : 기본 DSDT
윈도우즈 추출 : dsdt.aml
클로버 추출 : origin.zip
수정 : 클로버 추출 origin.zip 첨부
------------ 1차 해결 부분 --------
오류 수정 파일 : DSDT.dsl
1.Hayanfafa 님의 자료 : https://x86.co.kr/kext/3373666
윈도우즈에서 acpidump.exe 로 ACPI 바이너리 덤프
2. 윈도우즈에서 디컴파일 하지 않고 macOS / iasl를 사용하여 디컴파일
3. SAT0 오류 부분.
선언부에 External(_SB.PCI0.SAT0.SDSM, MethodObj) 삽입
AS IS ——————————————————————————————————————
Device (SAT0)
{
Name (_ADR, 0x00170000) // _ADR: Address
Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method
{
If (PCIC (Arg0))
{
Return (PCID (Arg0, Arg1, Arg2, Arg3))
}
If (CondRefOf (/_SB.PCI0.SAT0.SDSM))
{
Return (SDSM)
Arg0
Arg1
Arg2
Arg3
}
Return (Zero)
}
TO BE ——————————————————————————————————————
Device (SAT0)
{
Name (_ADR, 0x00170000) // _ADR: Address
Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method
{
If (PCIC (Arg0))
{
Return (PCID (Arg0, Arg1, Arg2, Arg3))
}
If (CondRefOf (\_SB.PCI0.SAT0.SDSM))
{
Return (SDSM (Arg0, Arg1, Arg2, Arg3))
}
Return (Zero)
}
로 수정. (맞는지 모르겠음 ^^;)
4. 경고는 있으나, 에러는 없이 aml 파일 생성 가능하게 되었음.
고수님의 도움을 기다립니다. 혼자 너무 힘드네요. ㅜㅜ
도움 부탁 드립니다.
먼저 도움 감사 드립니다.
첨부하여 주신 refs.txt를 사용하면 오류가 더 많이 생기네요. 다순 디컴파일시 윈도우즈에서 추출한 DSDT와 클로버에서 추출한 DSDT오류가 개수가 다르게 출력되네요.
클로버에서 추출한 DSDT가 " } " 구문 오류가 2개 줄어 들었고, SATA 쪽 arg 오류는 동일합니다. 파일비교 도구로 비교해 보도록 하겠습니다.
윈도우즈 추출 DSDT (추출 자료 출처는 수정필요)는 IF , CASE , Switch 구문 위주로 되어 있고,
클로버 추출 DSDT는 IF , elsif 구문이 위주고, 둘다 변수 선언 방식이 다르네요. ^^;
대충 살펴 본 결과 추출 항목은 거의 비슷하거나 같고, 스크립트 변수선언과 구문 구현 방식이 다르다. 인것 같습니다.
윈도우즈 DSDT 추출 도구가 "자료 출처 수정필요)가 오래 되었던것 같은데 표준이 될 원본 DSDT 추출 방안을 선택하여야 할 것 같습니다.
도전분석정신 굿입니다 :)
혹시 클로버 F4로 추출한 ACPI 전부 올려주시면 다른 고수님들이 보시고 기타 조언해주실 수 있을 것 같습니다^^;
감사 합니다.
클로버 추출 origin.zip 본문에 첨부 하였습니다. 도움 요청 드립니다.
선언부에 External(_SB.PCI0.SAT0.SDSM, MethodObj) 삽입
AS IS ——————————————————————————————————————
Device (SAT0)
{
Name (_ADR, 0x00170000) // _ADR: Address
Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method
{
If (PCIC (Arg0))
{
Return (PCID (Arg0, Arg1, Arg2, Arg3))
}
If (CondRefOf (/_SB.PCI0.SAT0.SDSM))
{
Return (SDSM)
Arg0
Arg1
Arg2
Arg3
}
Return (Zero)
}
TO BE ——————————————————————————————————————
Device (SAT0)
{
Name (_ADR, 0x00170000) // _ADR: Address
Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method
{
If (PCIC (Arg0))
{
Return (PCID (Arg0, Arg1, Arg2, Arg3))
}
If (CondRefOf (\_SB.PCI0.SAT0.SDSM))
{
Return (SDSM (Arg0, Arg1, Arg2, Arg3))
}
Return (Zero)
}
——————————————————————————————————————
해 보았더니, SAT0 부분 오류는 사라졌는데, 또 다른 곳(_PR.CPU0._PPC)에 오류가 있네요.
참 어렵습니다. 위의 것도 맞는지 정확치 않은데 말이죠~ ㅜㅜ
DSDT를 디컴파일 할때 DSDT.aml SSDT*.aml 한것과 origin/dsdt.aml 만 디컴파일 했을때 선언부와 몇몇 부분에 문법이 다르다는 것을 발견 했습니다.
퇴근 후 차근 차근 다시 들여다 보아야 겠습니다.
ps. 오늘 결론은 기본 DSDT.aml 을 정확히 뽑을 방법이 애매하다는 것 입니다.
컴파일 시작을 할수 있게 알려 드릴수 있을것 같은데 ACPI 6.2a로 컴파일을 하면 아래와 같이 에러가 생깁니다.
라인 13806과 15359의 에러는 선언된 obj type이 달라서 생기는 것입니다.
SDSM과 MDBG를 찾아보면 앞 부분에 아래와 같은 형태로 Intobj로 선언되어 있습니다. 예를 들어 SDSM을 찾아 봅니다.
에러가 생기는 부분은 아래 입니다.
Return값에 SDSM을 넣을수 있겠지요. Intobj이니까요.. 그러면 Arg0,,, Arg3을 지울수 있습니다. 같은 방법으로 MDBG의 에러를 수정하면 다음과 같이 더 많은 에러 와 워닝이 생깁니다.
이제 컴파일 할 수 있도록 준비가 되었습니다. 구글링을 하셔서 컴파일 에러를 수정 해보십시오.. 에러만 수정 하셔도 됩니다.
위의 내용은 문법에 따른것이므로 정상적인 작동을 안할수도 있습니다.
Try this at your own risks.
도움 감사 드립니다.
본문을 수정 하였듯이 MethodObj 처리로 Arg#을 리턴하는게 맞는 건지, 뉴해킨님의 도움과 같이 IntObj 로 Arg#을 삭제한 것과 결과는 동일 하더군요.
,컴파일 오류가 사라지는 것은 똑같은데요...
토니맥에서는 refer.txt 에 SDSM 처리를 MethodObj 로 되어 있었거든요.
다시 한번 감사 드립니다.
해킨님의 도움과 같이 IntObj 로 Arg#을 삭제하면, DC 어뎁터를 꽂았다 빼면 기본 키보드/ usb 등이 죽어 버립니다.
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
모니터(오류화면) 사진 찍을 때 팁(소소함) +270 | 11만 | 17.07.3020:49 | 달쇠 |
빠르고 정확한 답변을 받는 팁 및 질답자의 매너, EFI폴더 압축법 +90 | 12만 | 17.02.1014:21 | Mactopia |
Hot 램 증설.. 그리고 자꾸 재부팅되는 PC.. +9 | 119 | 24.10.2513:02 | 김밉상 |
Hot 고수분들 제발 도와주세요 +2 | 114 | 24.10.2513:28 | 희밍현수님 |
114 | 24.10.2513:28 | 희밍현수님 | |
119 | 24.10.2513:02 | 김밉상 | |
64 | 24.10.2421:15 | 활주로임 | |
62 | 24.10.2322:21 | 활주로임 | |
88 | 24.10.2318:25 | 헷인토시 | |
76 | 24.10.2317:01 | 활주로임 | |
127 | 24.10.2315:51 | 배고픈사람 | |
154 | 24.10.2308:19 | 미찌콘 | |
126 | 24.10.2213:48 | 아킬리오 | |
101 | 24.10.2210:36 | MCMC | |
75 | 24.10.2200:57 | 헷인토시 | |
187 | 24.10.2123:22 | 마요네즈 | |
1481 | 24.10.1914:54 | 활주로임 | |
208 | 24.10.2017:21 | RTings | |
1520 | 24.10.2000:14 | Kylee | |
127 | 24.10.1921:50 | 루이코아낭 | |
1123 | 24.10.1918:03 | Gastone | |
90 | 24.10.1721:28 | Oscar | |
213 | 24.10.1712:11 | 희밍현수님 | |
77 | 24.10.1612:42 | SystemShock | |
324 | 24.10.1517:37 | Gastone | |
1327 | 24.10.1517:20 | 물만두 | |
1679 | 24.10.1317:18 | 물만두 | |
1283 | 24.10.1315:07 | Steer | |
882 | 24.10.1004:51 | Steer | |
199 | 24.10.0920:24 | KImET | |
941 | 24.10.0915:49 | lesmi | |
186 | 24.10.0911:23 | LumOS | |
77 | 24.10.0902:16 | lesmi | |
913 | 24.10.0822:09 | 애플맨 | |
1323 | 24.10.0810:58 | soullees | |
123 | 24.10.0723:26 | 오십견 | |
1247 | 24.10.0723:14 | Steer | |
126 | 24.10.0721:40 | 서재희 | |
82 | 24.10.0704:04 | g2030h61 | |
94 | 24.10.0704:00 | g2030h61 | |
102 | 24.10.0620:14 | SystemShock | |
119 | 24.10.0617:57 | 늘심심 | |
1564 | 24.10.0601:48 | 아스타틴 | |
1279 | 24.10.0515:04 | lesmi | |
137 | 24.10.0422:58 | 낡은기계 | |
553 | 24.10.0315:33 | oreo | |
121 | 24.10.0315:26 | 매치포인트 | |
185 | 24.10.0313:01 | 매치포인트 | |
158 | 24.10.0311:30 | KAKU | |
404 | 24.10.0207:44 | 데스맥 | |
258 | 24.09.3014:22 | 민준송 | |
204 | 24.09.2922:21 | oreo | |
136 | 24.09.2917:58 | 수박 | |
116 | 24.09.2913:21 | 루마루 |
기본 DSDT 자체에는 오류가 있을 수 있어서 iasl로 디컴파일 해보면 오류 수정되는 경우 간혹 있는데, 그렇게 해보세요.
refs.txt iasl
위 파일을 origin에 넣고 터미널에 origin 디렉토리로 들어가서 iasl -da -dl -fe refs.txt DSDT.aml SSDT*.aml 쳐보시면 뭔가 고쳐지지 않을까 싶습니다.