dsdt를 열어보았는데, 알 수 없는 오류들이 괴롭혀요!!
...그렇습니다, 오류가 너무나도 다양합니다 =_=.. 이 테이블은 말이죠.
앞으로 dsdt를 적기가 힘든관계로;
데이타 테이블이라 개인적으로 명명하겠습니다.
한영 변환하는 단축키를 바꾸던지, 키보드를 바꾸던지
해야겠습니다.. 하 ㅠㅠ;
마샬asl를 열어주게되면 프로그램이 알아서
데이타 테이블을 만들어서 보여주게됩니다.
그런데, 컴파일을 누르면 에러만 수십개가 나는데,
이 에러들을 모두 하나하나 수정해주어야하는 엄청난 삽.질.이 저희를
기다리고 있다는 것입니다.
다행히도 특정 몇가지 오류를 고치면 바로!
한번에 수십개의 오류가 사라지는 월척 오류들도 있으니,
수정할 때에 어떤 것들이 월척 오류인지를 알아볼 필요가 있겠습니다.
보이시나요.. 이 엄청난 88개의 오류들이 말이죠 ㅜㅜ
언제다 수정해 흐워어ㅜㅇㅎ너ㅜ엉ㅎㄴ 라고 생각이 들게 만듭니다. (참...)
일단 오류들부터 살펴보도록 하겠습니다.
1. Object does not exist (~~~)
해당 오류는 객체를 찾을 수 없다는 것에 대한 오류입니다.
이런 오류는 대부분 사인택스 오류랑 함께 나타나는 경우가 대부분입니다.
2. syntax error, unexpected ~~~
해당 오류가 사인택스 오류입니다. 이 오류가 대부분 월척 오류로써
한번 해결해주면 대부분의 오류가 단번에 사라지게 됩니다 =_=..하하
딱봐도 2종류의 오류말고는 보이는 것이 없는 것을 아실 수 있습니다.
제가 스크롤바를 생략한 것도 있기는 한데, 생략된 부분이 전부 객체 존재오류로써; 88개 오류의 타입은
1번과 2번밖에 없는 환상적인 상태임을 알 수 있습니다.
일단 사인택스 오류부터 먼저 수정을 해보도록 할게요.
해당 오류를 클릭하면 자동으로 그 라인으로 이동하게됩니다.
이동을 합니다. 슝슝
처음 오류인 파스오프_제로 오류부터 수정해보겠습니다.
해당 라인은 6687라인이니
한번 가서 살펴볼까요?
???? 6687라인을 가보니 저런 제로가 무수히 적혀있습니다.
단순합니다. 제로는 문자열로써 순수하게 단독적으로 있을 수 없습니다.
프로그래밍 언어를 하는 분들이시면 아시겠지만,
단순한 값은 독립적으로 존재할 수 없다는 것을 아실겁니다.
예컨데 다음과 같은 거라는 것입니다.
int Variables = 0;
이런식으로 존재해야 할 것이
아무것도 없이 그냥 숫자만 달랑
0;
이렇게 있는것과 같은것으로써
컴퓨터는 저걸 보고 이렇게 말합니다.
"나더러 저숫자를 어떻게 하라는거??"
따라서 필요없으니 싹다 삭제해줍니다 ^^...
삭제해준 모습은 다음과 같습니다.
깔쌈하게 6687라인이 정삭적으로 돌아옴을 알 수 있습니다.
하하 오류창을 한번 살펴볼까요?
오, 수정했는데 오류가 149개로 더 늘어났어요
헐............ -_-;;
그럴 수 밖에 없어요.
사인택스 오류는 오류를 줄이는 오류가 아니라,
오류를 늘리는 오류에요.
정확히 말씀드리자면, 사인택스 오류가 중요도가 굉장히 높아요.
그래서 다른 하위 오류가 사인택스 오류로 인하여 안타나있다가, 그 오류가 해결되면서
다 나타나는거랍니다.
당황하지 말고 월척오류를 살펴보면돼요.
일단 위의것은 무시하고, 다음 오류를 고치러 가보도록해요.
다음오류는 사인택스 에러 8457라인의 오류네요.
한번 고쳐보러 가볼까요?
어? 뭔가 문제가 없어보이는데?
라고 생각하실 수 있어요.
이 경우에는... -_- 그거에요;
그냥 변수만 딸랑 있는거 있죠.
아까는 숫자만 딸랑 있는거였고
요번엔 변수만 딸랑 있는거에요.
이 오류는 2개로 나뉘어요
그냥 PS0X를 삭제해버리거나
앞의 경로까지 모두 포함시켜서 고쳐주거나에요.
저는 전자를 택할게요.
후자로 고치게되면, 타입오류로 설정할 수 없다며 오류가 다시 나게돼요.
If (CondRefOf (\_SB.PCI0.XHC.PS0X))
{
PS0X
}
이거 3줄 자체를 통째로 날려줍니다.
왜냐면 해당 조건문을 충족해봤자 안의 내용이 공백이 되어버리면
있으나마나한 것이기 때문이에요.
그러면 사인택스 오류가 사라져 있는걸 볼 수 있어요 ^^
8518라인의 오류도 PS3X오류이니, 똑같은 방식으로 해결해줍니다.
이렇게 2개의 PS0X, PS3X의 오류를 해결하고 오류창을 살펴보니
오...만세입니다, 오류가 1개로 줄고 경고만 나왔네요!
자, 이제 또 경고에 대한 부분을 설명해드릴게요.
1. Possible Operator Timeout is ignored
해당 오류는 연산자 경고에요.
연산자가 무시되었다고 나오는 경고입니다.
해당 오류는 똑같이 나와도, 해결법이 다르기 때문에
자세한 해결법이 없어요. 구글링이 답입니다 ㅜㅜ
2. Unkown reserved name (~~)
괄호안의 이름의 참조를 알수 없다는 경고입니다.
해당 괄호 안의 값이 _DEP인 경우에는 _ 언더바만 없애주면
바로 해결할 수 있는 경고로 대처가 쉽습니다 -_-ㅎㅎ...
3. Not all control paths return a value, Called method may not always return a value
두개의 경고는 같은 맥락이에요.
해당 컨트롤의 경로에서 리턴값을 돌려주지 않는다는 것이고
항상 리턴값을 돌려주지 않는다는 것에 대한 경고입니다.
두개 중 상위의 오류는 낫 올 컨트롤 패스 경고로 이걸 해결하면
뒷부분의 콜드 메소드 경고는 웬만해서는 자동으로 사라집니다. (아닌 경우도 있어요.)
사인택스 오류가 보이네요.
그리고 Statement is unreachable 도 있는데,
이건 잘못된 서명에 대한 오류입니다.
직역이면 그런데 =_=;; 일단 사인택스 오류랑 같이 겹쳐있는 것을 살펴보니
우선 10935 라인으로 가서 살펴보도록 합니다.
보시면 얘도 ARG0만 딸랑 있는데,
이것도 인수로써 같이 사용되는 값과 같은 녀석입니다.
혼자서는 단독으로 사용되어질 수가 없는데,
리턴으로 돌려주는 것을 보니
2개의 값을 날려줄 수 있는 Store로 해결해 줄 수 있겠습니다.
If (CondRefOf (\_SB.IAOE.PTSL))
{
Store (Arg0, \_SB.IAOE.PTSL)
}
이런식으로 사용되는거에요.
안에 들어가는 값은 다르지만,
이프문에 들어가는 것과 스토어로 들어가는 값이 동일하죠?
그래서 수정한 값은 아래처럼 바뀌게됩니다.
https://drive.google.com/file/d/0B6kb_kcFsVi5anhFVmdjNGZvZ1U/view?usp=sharing
KsJ님, 먼저 감사의 말씀부터 드립니다.
대부분의 오류랑 경고를 수정하였습니다. dsdt 를 알기쉽게 설명해주셔서 너무 감사드리구요.
질문이 2개 있습니다.
1. 경고문구 Not all로 시작하는 오류에 대해, 하나 빼고는 전부 수정이 되었습니다만, 유독 하나는 Return (Zero) 옵션을 주었음에도 사라지지 않고 있습니다. 원인이 무엇일까요?]
해결하였습니다 :)
2. 본문에서 언급해주신 _T_0, _T_1 이슈가 고쳐지지 않고 있습니다. _DEP를 찾을 수 없는 것으로 보이는데 이런 경우에는 어떻게 해야하는지 여쭤보고 싶습니다.
컴파일 메세지에 의하면 다음과 같습니다. "Use of compiler reserved name (_T_1)"
제 dsdt파일을 업로드하니 약간의 힌트를 주시면 감사하겠습니다.^^; (구글드라이브 링크로 업로드 하였습니다.)
PS. 앞전 강의에서 알려주신대로 추출한 ssdt로부터 dsdt에 정보를 모두 넣은 상태입니다!
_T_X 리마크 메시지는 간단히 맨앞의 _만 없애면 됩니다 :) 고로 T_X로 수정하면되는 것이지요.
외에는 오류문구가 딱히 보이지 않아서 가볍게 고쳐보았습니다. 낫 서리얼라이즈드도 시리얼라이즈드로 고쳐주었구요.
DEP는 없을 수도 있습니다. 기종마다 추출되는 DSDT가 달라서 말이죠 ㅎㅎ. 없으시다면, 그냥 무시하셔도 될 것 같습니다.
파일 압축하여 첨부합니다 :)
감사합니다!
아하, 그런 수정방법이었군요. 저는 위아래 순서 바꾸는 줄 알고 바꿨는데 변화가 없어서, 둘다 같게 해보니 오류가 뙇..... 해결해주셔서 감사합니다.
사실 이후에 dsdt 정리까지 해보았는데 몇몇은 정리를 했으나 정리를 해야할게 너무 많아서 잠시 닫아두었습니다.
usb 관련 강좌도 기대하며 기다리고 있겠습니다. 제가 더 감사드립니다!!
경고부분에 해당되는 내용입니다. 제 DSDT수정중에 많이 나와 혹시 몰라서 쓰고가요
/**
ResourceTag larger than Field (Size mismatch, Tag: m bits, Field: n bits)
오류는 Field 크기는 작은데 Tag의 크기가 길 경우 나타나는 경고입니다.
ResourceTag smaller than Field (Size mismatch, Tag: m bits, Field: n bits)
반대로 Tag 크기는 작은데 Field의 크기가 넘칠 경우에도 나오는 경고입니다.
DSDT 상에서 Create(데이터 크기)Field 로 나와있구요
아래는 데이터 크기에 따른 문자열입니다.
1 bit > Bit
8 bits > Byte
16 bits > Word
32 bits > Dword
64 bits > Qword
Tag 의 m bits 에 맞게 Field 데이터 크기를 변경해 주면 됩니다.
5186,ResourceTag larger than Field (Size mismatch, Tag: 16 bits, Field: 8 bits)
예시로 제 DSDT에는 이렇게 오류가 나와있습니다.
수정 전에는 CreateByteField로 나와있지만
알맞게 수정한 후에는 CreateWordField로 tag 와 field의 크기를 맞춰주시면 됩니다.
ResourceTag smaller than Field (Size mismatch, Tag: 16 bits, Field: 64 bits)
반대로 field가 너무 큰 경우에는
CreateQwordField로 만들어진 Field의 크기를 CreateWordField로 변경해주시면 됩니다.
*/
좋은 글 잘보고있어요.
정독 중 한영전환 이슈가 있으신듯해서 꿀팁을 알려드리자면, 한글 타이핑 도중에 옵션 키를 누르고 타이핑하시면 영문이 타이핑되요. (맥이라면요..)
그리고 사인택스 에러라고 하시는 부분..syntax .. 신택스가 본 발음이에요. (사인텍스가 뭔지 한참 들여다봤다능 ㅎㅎ)
기존 오류는 해결하였는데 컴파일을 새로하니...
1개 오류가 새로 생겼네요....
바로 위 YTBT경고와 연관이 있을것 같은데 혹시 해결법을 아시는지요...ㅠㅠ 구글링에 실패하였습니다....ㅠㅠ
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
macOS Sequoia 15.0.1 24A348 정식버젼 고스트 이미지 OC 1.0.2 ft: 전체공개 +29 | 937 | 24.10.1121:10 | 좌절금지 |
오픈코어 1.0.2 +23 | 575 | 24.10.0900:22 | 줌바이퍼 |
[중급편] 노트북 해킨 +16 | 1402 | 24.07.1219:19 | Stultus |
macOS Ventura 13.7 22H123 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체 공개 +17 | 575 | 24.09.1917:09 | 좌절금지 |
macOS Sonoma 14.7 23H124 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체공개 +31 | 909 | 24.09.1723:58 | 좌절금지 |
[초급편] 문제 스스로 해결하기 +20 | 4002 | 24.03.2920:07 | Stultus |
[입문편] 첫 해킨 길라잡이 +40 | 5086 | 24.01.1218:54 | Stultus |
[필독 - 안정화] macOS 해킨토시 설치 후 안정화 작업 목록 및 글타래 모음 총정리 📋 +67 | 5.1만 | 23.01.0913:39 | shl628 |
Hot AMD Sequoia용 AppleALC 1.9.2 +3 | 106 | 24.10.2319:04 | 사노라맨 |
Hot [Sequoia 15.0.1, OC r1.0.2] ASUS TUF B550-PLUS / RYZEN 5 5600X / RX470 +2 | 102 | 24.10.2322:26 | 뿌엥 |
Hot OCLP로 지원되지 않는 기기/dGPU를 사용하는 해킨토시의 사이드카 품질 문제 해결방법 +1 | 119 | 24.10.2321:29 | 해킨도전자 |
102 | 24.10.2322:26 | 뿌엥 | |
119 | 24.10.2321:29 | 해킨도전자 | |
106 | 24.10.2319:04 | 사노라맨 | |
784 | 24.10.1412:27 | shl628 | |
664 | 24.10.1316:00 | 수박 | |
344 | 24.10.1222:56 | Stultus | |
937 | 24.10.1121:10 | 좌절금지 | |
732 | 24.10.1115:53 | 수박 | |
575 | 24.10.0900:22 | 줌바이퍼 | |
1402 | 24.07.1219:19 | Stultus | |
1210 | 24.10.0500:31 | 줌바이퍼 | |
569 | 24.10.0410:49 | Tamy | |
749 | 24.09.2923:48 | 머트 | |
628 | 24.09.2822:28 | 머트 | |
463 | 24.09.2808:22 | Tamy | |
894 | 24.09.2321:32 | Stultus | |
994 | 24.09.2210:59 | 좌절금지 | |
644 | 24.09.2203:23 | 누림어멈 | |
1190 | 24.09.1919:17 | 좌절금지 | |
575 | 24.09.1917:09 | 좌절금지 | |
498 | 24.09.1813:37 | Stultus | |
909 | 24.09.1723:58 | 좌절금지 | |
601 | 24.09.1722:40 | 좌절금지 | |
453 | 24.09.1717:13 | 맥가즈아 | |
562 | 24.09.1708:13 | 김경석 | |
234 | 24.09.1617:47 | Panictosh | |
768 | 24.09.1504:35 | Tamy | |
584 | 24.09.1319:18 | Stultus | |
706 | 24.09.1019:44 | 치토 | |
484 | 24.09.0118:13 | 머핀X | |
462 | 24.09.0112:54 | 해킨도전자 | |
546 | 24.08.3115:34 | 머핀X | |
306 | 24.08.2601:42 | 화정큐삼 | |
305 | 24.08.2422:59 | 하나브 | |
318 | 24.08.2316:25 | 화정큐삼 | |
415 | 24.08.1810:56 | CanBe | |
363 | 24.08.1800:04 | 화정큐삼 | |
300 | 24.08.1722:03 | 화정큐삼 | |
201 | 24.08.1710:14 | jbhlyk | |
312 | 24.08.1622:06 | Stultus | |
218 | 24.08.1511:16 | hackillious | |
169 | 24.08.1421:30 | 세유니 | |
419 | 24.08.1419:58 | Stultus | |
377 | 24.08.1311:26 | 오디세이 | |
270 | 24.08.1115:46 | 좌절금지 | |
186 | 24.08.1111:21 | 티타보르 | |
233 | 24.08.1022:46 | Stultus | |
538 | 24.08.1022:10 | 오디세이 | |
168 | 24.08.1019:05 | jbhlyk | |
200 | 24.08.0923:20 | RogerT |
멋진 강좌 감사합니다.