추가사양 및 설치(할)OS | HighSierra 10.13.5 |
---|---|
공지숙지/증상설명 | 숙지 |
KsJ님의 DSDT 강좌글을 보고 MaciASL을 통해 Scope 정리를 하던 중, 궁금한 부분이 생겨 질문드립니다.
제 DSDT의 IGPU 설정에 관련된 코드는 위와같이 Scope(_SB.PCI0.IGPU)를 참조? 하도록 되어 있습니다.
IGPU device가 정의된 곳은, _SB내부에서 \_SB.PCI0아래에서 정의되어 있습니다.
상황을 정리하자면
1. DSDT에서 IGPU는 "_SB.PCI0.IGPU"에 Jump하여 코드를 실행하라 함.
2. 하지만 "_SB.PCI0.IGPU" 경로는 존재하지 않음.
3. IGPU Device가 정의된 곳은 "_SB.PCI0"에서 "\_SB.PCI0"로 이동하여 정의됨.
4. 하지만 \_SB 내부에 PCI0 Device는 정의되지 않음.
무언가 꼬여있는 것인지, 제가 해석을 잘못한것인지 궁금합니다.
우선 랩탑에서 그래픽은 잘 잡혀있는 상태입니다.. 어떠한 문제가 있어서 파악중인 것은 아니고, 그저 궁금해서 그렇습니다.
컴파일 에러도 발생하지 않구요..
하여튼, Scope(_SB.PCI0.IGPU)란 항이 실제 IGPU Device를 제대로 겨냥하고 있는것인지 궁금합니다..
백장미님의 새글 알림을 받으실려면 구독
답변 감사드립니다.
Scope의 기능은 이해했습니다.
다만 현재 제 DSDT를 보면, scope(_SB.PCI0.IGPU)를 가리키고 있습니다.
하지만 실제로 _SB.PCI.IGPU 경로는 존재하지 않습니다..
글의 3번, 4번과 같이 조금 꼬여서 정의가 되어 있는 것 같은데, 어떻게 이해를 해야할지 난감합니다.
필요의 목적보다는 공부 및 재미의 목적이 주라서요..ㅎㅎ 하나하나 잡아가는 재미가 있네요..
커맥에 한 번 빠졌더니 온종일 이 생각만 하게되네요. 조언 감사합니다
acpi specification을 보면 name field는 maximum 4 character입니다. 예를 들면 Device(IGPU)처럼요. 위에 언급하신 _SB 와 \_SB의 차이는 없습니다. \의 의미는 root를 의미하지요. 이는 ssdt에서 테스트 해보면 알수 있는데 asl파일을 Scope (_SB)로 넣어 컴파일 하면 Scope (_SB_)이런식으로 컴파일 결과가 나옵니다. 자리수를 맞추기 위함이지요. _SB는 3 character이고 \_SB는 4 character입니다. root의 디렉토리를 명확하게 하여준 차이입니다. dsdt와 ssdt를 같이 넣어 컴파일 하면 이러한 차이가 생기지 않고 일관된 포맷을 유지할수 있습니다. 바이오스를 디자인한 엔지니어에 따르면 되는것입니다. 꼬인것이 아니라 표현의 차이일 뿐입니다.
Scope을 사용하면 어떠한 위치에서도 필요한 디바이스나 메소드를 넣을수 있습니다. 예를들어 _SB.PCI0.IGPU를 dsdt에 넣으려면 아래와 같은 포맷으로 넣어야 합니다.
Scope(\_SB) {
Device(PCI0){
Device(IGPU){
}}}
그런데 이를 원하는 위치에 한줄로 넣을수 있지요.
Scope (\_SB.PCI0.IGPU){ }
도움이 되었으면 합니다.
dsdt의 포맷 관심이 있으시면 ACPI specification을 읽어 보시면 이해가 쉽습니다. 그리고 그내용이 궁금하면 motherboard 칩셋의 specification을 공부하시면 됩니다.
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|
모니터(오류화면) 사진 찍을 때 팁(소소함) +269 | 달쇠 | 17.07.3020:49 | 11만 |
빠르고 정확한 답변을 받는 팁 및 질답자의 매너, EFI폴더 압축법 +90 | Mactopia | 17.02.1014:21 | 12만 |
GTX TITAN 그래픽과 macOS의 호환성. +5 | 민준송 | 24.09.3014:22 | 124 |
해킨 윈도우 듀얼부팅일때 윈도우 보안부팅 활성화 해보신분 있을까요? +2 | oreo | 24.09.2922:21 | 85 |
맥 설치하려고 Install macOS Sequoia 들어갔는데 그냥 금지 표시 하나... | 루마루 | 24.09.2910:19 | 113 |
민준송 | 24.09.3014:22 | 125 | |
oreo | 24.09.2922:21 | 85 | |
수박 | 24.09.2917:58 | 79 | |
루마루 | 24.09.2913:21 | 68 | |
루마루 | 24.09.2910:19 | 113 | |
머트 | 24.09.2723:18 | 96 | |
ashly | 24.09.2720:41 | 110 | |
loopers | 24.09.2716:50 | 121 | |
Caper | 24.09.2602:42 | 159 | |
낡은기계 | 24.09.2301:36 | 185 | |
Door | 24.09.2122:38 | 121 | |
루베콘 | 24.09.2108:35 | 181 | |
에잉 | 24.09.2022:16 | 400 | |
밤가시 | 24.09.1910:03 | 190 | |
SUNWAYFOTO | 24.09.1822:20 | 206 | |
Nelson | 24.09.1815:34 | 373 | |
sebali | 24.09.1814:34 | 373 | |
Panictosh | 24.09.1813:37 | 183 | |
SUNWAYFOTO | 24.09.1801:27 | 223 | |
그냥인간 | 24.09.1719:17 | 128 | |
dlraud | 24.09.1620:36 | 240 | |
Nelson | 24.09.1618:45 | 188 | |
아스타틴 | 24.09.1612:07 | 80 | |
lesmi | 24.09.1522:02 | 145 | |
윤수꾸하하 | 24.09.1323:56 | 195 | |
뚜비 | 24.09.1319:18 | 205 | |
Steer | 24.09.1200:33 | 170 | |
상큼버터 | 24.09.0918:08 | 218 | |
인터찹 | 24.09.0717:13 | 964 | |
서재희 | 24.09.0711:07 | 1442 | |
시습이 | 24.09.0113:39 | 1250 | |
블루 | 24.08.3022:44 | 476 | |
lesmi | 24.08.2911:20 | 417 | |
김덕뱀 | 24.08.2823:04 | 225 | |
그냥구름 | 24.08.2517:14 | 282 | |
Panictosh | 24.08.2218:42 | 252 | |
YouPick | 24.08.2022:45 | 126 | |
윤수꾸하하 | 24.08.2018:52 | 133 | |
HopeMan | 24.08.2012:14 | 211 | |
Panictosh | 24.08.1913:41 | 183 | |
YouPick | 24.08.1509:07 | 441 | |
Panictosh | 24.08.1518:04 | 346 | |
hackillious | 24.08.1514:14 | 144 | |
shion | 24.08.1420:32 | 118 | |
인터찹 | 24.08.1418:19 | 115 | |
Panictosh | 24.08.1217:23 | 407 | |
오디세이 | 24.08.1112:07 | 123 | |
동집 | 24.08.1105:35 | 239 | |
동집 | 24.08.1102:48 | 146 | |
유튜브 | 24.08.1019:03 | 155 | |
유튜브 | 24.08.0909:14 | 296 | |
Direct | 24.08.0901:18 | 258 | |
Panictosh | 24.08.0809:46 | 153 | |
인터찹 | 24.08.0801:41 | 126 | |
mac니망 | 24.08.0615:24 | 161 | |
페러 | 24.08.0615:10 | 145 | |
페러 | 24.08.0600:03 | 120 | |
bl | 24.08.0522:08 | 92 | |
Sequoia | 24.08.0410:04 | 261 | |
Panictosh | 24.08.0320:43 | 90 | |
yeojun | 24.08.0310:01 | 112 | |
yeojun | 24.08.0217:46 | 315 | |
oreo | 24.08.0214:44 | 114 | |
yeojun | 24.08.0214:07 | 272 | |
빅서로가 | 24.08.0118:45 | 306 | |
itstory | 24.08.0118:28 | 190 | |
oreo | 24.08.0115:38 | 94 | |
동집 | 24.07.3122:15 | 167 | |
류가파 | 24.07.3121:42 | 252 | |
마요네즈 | 24.07.3109:23 | 267 | |
동집 | 24.07.3012:52 | 113 | |
동집 | 24.07.2912:11 | 464 | |
인터찹 | 24.07.2901:06 | 314 | |
인터찹 | 24.07.2623:40 | 950 | |
찡준 | 24.07.2611:52 | 94 | |
psychyyy | 24.07.2503:18 | 622 | |
wnsks | 24.07.2502:19 | 149 | |
아키나리 | 24.07.2422:44 | 238 | |
페러 | 24.07.2313:55 | 130 | |
피아노맨 | 24.07.2216:20 | 214 |
예 맞습니다. Scope(,,){,,,}은 dsdt 아무 위치에서나 해당되는 device의 경로를 지정해 줍니다. 이는 ssdt를 통해서도 확인이 가능합니다. 예를 들어 dsdt에 _SB.PCI0.GFX0에 그래픽 디바이스가 있고 이 위치에 Method (_DSM,,,)을 따로 넣고 싶다면 ssdt에 Scope(_SB.PCI0.GFX0){ Method(_DSM,,,){}} 이런식으로 넣으면 됩니다. 이런식으로 존재하지 않는 dummy device도 만들어 넣을수 있습니다.