DSDT좀.. 정복을 함 해봐요 우리(??)
커텀맥을 다루거나 되게끔 작업하다 보면 클로버든, 카멜레온이던, 키메라던, 오즈모시스던
어떠한 형태의 부트로더들이건 DSDT에 관여하지 않는 것들이 없습니다.
그만큼 이 중요도가 굉장하다고 볼 수 있겠는데,
문제는 무슨 이상한 c언어도 아닌것이 비스무리하게 생겨서,
열어보는 즉시 정신을 차려보니 창이 닫혀있는 현상을 겪게되고는 합니다.
왤까요, 마땅한 가이드라인이 딱히 없어서일지도 모르겠습니다.
구글링해보세요- 라고들은 말씀하시지만? (저도 그런 사람들 중 한 사람입니다..)
실로 나오는 글은 영어요, 하얀건 배경이며 검은건 먹물일지어니 이게 무슨소리요 =_=..싶은 글들이
너무나도 많다는게 문제입니다.
제가 작성하는 가이드라인이 과연, 얼마나 유용하게 사용되어질지
얼마나 유용하게 작성될지(?)는 저도 잘 모르겠습니다.
그래도, 적어도 여러분들께서 dsdt에 대해 알아가시고
구조나 원리가 이런거구나~ 하는것 정도를 알아주셨으면 좋겠습니다.
당분간 dsdt 강의를 올리려합니다 =_=.. 강의아닌 강의글이겠지만;
그래도 다 읽고 나셨을 때 어느정도는 수정하고 만질줄 아는 여러분의 모습을
스스로 느낄 수 있을거라 생각합니다.
첫 번째로, DSDT는 해당 컴퓨터에 설치된 모든 하드웨어적인 정보에 대한
총 집약적 테이블이라 할 수 있다는 것입니다.
하여 다른 A라는 컴퓨터와 b라는 컴퓨터가 있을 때에
두 컴퓨터가 사용하는 메인보드, 그리고 CPU, 램이 같아도
세부적으로 생성되는 DSDT의 정보가 다르게 나옵니다.
정말 깨알같이 다르게 나오는데, 이 깨알 때문에
울기도 하고 웃기도 한다는게 무서운 부분 중 하나입니다.
(덧붙여 삽도 들게 만듭니다 -_-.... 너란녀석 멋진녀석)
둘째는 첫번째의 사유로 인하여,
다룰 줄 알게 되면 굉장히 커스텀맥을 만지작 만지작 거리기가 쉽다는 것입니다.
클로버 혹은 키메라의 경우에는 해당 부트로더들이 툴을 제공하며
편하게 dsdt를 수정할 수 있게끔 기능을 제공해주기는 하지만
실질적으로 직접 패치할 수 있는 경우라면
굳이 사용할 필요 없이 자신이 원하는대로 주물럭 거린 후
해당 경로에 투척하는 것으로 적용이 끝!이라는겁니다.
오류가 생겨도 내가 만졌으니 금방 고칠 수 있고 말이죠.
1 + 1로 dsdt를 아니깐 당연히 클로버, 키메라의 dsdt 지원 옵션도
손쉽게 사용할 수 있겠죠.
단점도 물론 존재하긴 합니다.
민감한 녀석이라 어중간하게 한두개 잘못 건드렸다가
컴퓨터가 부팅불능이 되기도 합니다.
(이정도 까지는 아니어도, 맥으로 부팅이 안되는 경우가 간혹 있습니다 ㅠㅠ)
이런경우 대형삽질이 필요해지는 상황이 있을 수 있기 때문에
해당 작업은 항상 신중해야 한다는 것입니다 @_@;;
그럼에도 불구하고 장점이 너무 강력해서 갠적으로 강추드리고 싶은 부분입니다.
(정말 잘잘 만지면 리얼맥과 흡사해질 수 있습니다...)
제가 첨부한 압축파일을 사용하여 앞으로 설명을 드릴 것입니다.
해당 프로그램들은 2개의 프로그램으로 구성되어있는데,
하나의 프로그램은 자세한 IO값들을 보여주며
나머지 하나의 프로그램은 직접적으로 dsdt를 수정할 수 있는 프로그램입니다.
IORegistryExplorer가 전자에 해당되는데,
해당 프로그램을 실행하면 아래와 같은 화면이 나타납니다.
쓸데없이 이상한 영어들이 보입니다.
그나마 알아먹을 수 있는건 CPU정도...인데 나머지가 무슨 기능을 하는지 감이 안잡힙니다.
이제부터가 시작입니다 ^^.... (여러분을 영원한 삽질의 세계로...)
대략적으로 건드리게 될 부분들을 알려드리겠습니다.
CPU0~CPU7 이부분은 후에
SSDT라는 부부을 통하여 dsdt에 넣음으로써
정보를 수정할 수 있는 부분인데,
CPU의 세부적인 기능들에 관한 옵션이
들어가게 되는 부분들입니다.
예를들면, 스피드 스텝이라던지, 스피드 스텝이라던지, 스피드 스텝이라던지...
하여튼 민감한 부분이어서
SSDT를 가지고 수정을 해주게되는 부분입니다.
아래로 쭉 내려가면...
PCI0이라는 부분이 있습니다.
여기가 거의 저희가 건드리게 될 주 영역이 됩니다.
pci는 말그대로 PCI-SLOT의 정보를 모두 담아놓은 곳인데
여기에 USB, Graphic, Audio, GLAN, 등등의 정보들이 들어가게 됩니다.
PWRB는 파워버튼입니다.
거의 건드릴 일이 없습니다.
RTC는 저도 잘은 모르겠습니다만,
애플이 사용하는 rtc서버랑 관련이 있는걸로 알고 있으며
주로 RTC ERROR를 해결하는 것과
다소 관련이 있는 부분으로 알고있습니다.
거의 저희가 건드리게될 부분들은 이렇게 3~5가지 정도의 부분들이 됩니다.
나머지는 실력이 되신다면(?) 천천히 인식시켜주고 하셔도 늦지 않는 잉여스러운 부분들입니다.
pci0을 눌러보시면 이런 (망할ㅇㄴㄹㄴㅇㄴㅇㄹ) 죄송합니다.
하여튼 이상한 것들이 또 잔득있습니다.
이것들은 각각 모든 Device들의 정보를 담고 있는만큼 중요한 부분들이 됩니다.
하나하나 알려드리겠습니다.
USB는 EHCI, XHCI로 나뉘게 됩니다.
ECHI는 2.0이며 XHCI는 3.0이됩니다.
맥의 상위버전으로 넘어가면 2.0은 3.0에 자동 귀속되며,
3.0이 하위 2.0을 다스리는 형태로 동작을 하게 됩니다.
이로 인하여 ECHI는 거의 사용되어질 일이 없고,
ECHI에 연결된 정보는 XHCI로 넘어가며 자동으로 2.0으로 하위인식되어
usb가 인식되는 형태를 띄게됩니다.
EHC1, EHC2, XHC1.... EH0 EH1 XHC등 비스무리한 이름들이 모두 usb관련 부분들이 되겠습니다.
이 이름들 오른쪽에 @<< 이게 있는데 그 이후에 나오는 16진수들은 해당 Device가 지니는 최상위 주소값 Address가됩니다.
HDAU는 HD(MI) AU(DIO)...의 약어정도로 보시면 좋을 것 같습니다 (=_=.. 원어는 저도 잘 모릅니다 흑흑)
hdmi관련 오디오를 다루는 부분이라고 생각해주시면 되겠습니다.
HDEF는 High Defenced Audio의 약어로써
말그대로 오디오 컨트롤러를 담당하는 부분입니다 (코덱이여...)
IGPU는 내장 그래픽카드에 관한 정보를 담는 부분입니다.
해당 부분은 GFX0 등으로 나타나기도 합니다. (이부분은 좀 애메합니다.)
GFX0은 때때로 외장 그래픽카드를 나타내기도 하나
대체로 외장그래픽카드는 PEG0형식으로 표기가 됩니다.
제컴은 외장으로 라데온을 달고있는데,
아쉽게도 칩셋인식을 제가 못시켜서 ㅜㅜ... 그냥 껴놓기만하고 비활성화로 사용하고 있는 상태입니다.
RP01~rp05에 대한 정보는.. 솔직히 저도 잘 모르겠습니다.
대충 PCI슬롯과 관련된 것 같아보이는걸로만 짐작하고 있는 상태입니다.
SAT0은 사타인식입니다.
요즘 IDE케이블로 연결하는 기기를 사용하는 곳이 거의 없다보니;
sata단자에 대한 정보를 담아두는 곳이라 보시면 되겠습니다.
SBUS는 smbus와 관련이 있는 부분인데
정확하게는 무슨 역할을 하는지 잘 모릅니다.
XHC는 말씀드렸다시피 usb관련된 부분입니다.
이외로 GLAN이라 하여 내장 이더넷과 관련된 부분도 존재하며
LPCB를 설명드리지 않았는데, 이부분은 AppleLPC.Kext를 로드하게끔 해줄 수 있는
부분을 다루는 곳입니다.
이제 이 정보들을 DSDT로 살펴보겠습니다 (후훗 -_-++)
키면 이렇게 쓰잘없이 나옵니다. (DSDT야 미안)
우선은 잘 살펴보면 _SB....~~라고 되어있습니다.
약어이기에 원어는 저도 잘은 모릅니다.
다만 .을 구분자로 한것을 보아 뭔가 상위부분에 해당된다는 것정도만 알 수 있겠습니다.
PCI0이 굉장히 많아보이는데,
실질적으로 대부분 수정되는 부분들은 _SB.PCI0이란 폴더에서 수정이 됩니다.
바로 아래사진처럼 말이죠.
폴더가 아니라 무슨 하드처럼 생겼는데
저게 device모양을 나타내주는 것입니다.
저런 모양인 것을 거의 수정해 주신다 보면 되겠습니다.
솔직히 dsdt는 거의 이게 끝입니다;
일단 수정해야할 폴더가 굉장히 제한적이며
나온 패치법도 뒤져봐도 거의 여기서 저기정도이지
이상하고 복잡하게 프로그래밍하고 그런 것은 딱히 없습니다.
이제 다만, 중요해 지는 것은
이 DSDT정보는 순수한 현재 컴퓨터의 상태이므로 이것을 커맥 운영체제,
즉 맥 os가 적절히 인식할 수 있는 정보들로 수정하여
OS에서 BIOS를 통하여 hw정보를 불러오는 과정사이에 변형된 DSDT정보를 넘겨줌으로써
맥 os가 아, 이컴퓨터에 이런 기기가 있구나라고 인식해서
정상적으로 드라이버가 동작하게끔 만들어 주는 것을 하는게 정확히 dsdt를 수정하는 목적이라고 할 수 있겠습니다.
좀더 구체적으로 동작원리를 궁금해 하시는 분들을 위해 적어둡니다.
운영체제는 하드의 첫 섹터로부터 정보를 넘겨받아 메모리에 복사됨으로써 시작되는데,
이때 최하단에서 일어나는 과정에 dsdt가 개입하게 됩니다.
맥을 하드디스크에 설치를 하게 되면, 첫 섹터에 이 하드는 부팅 가능한 하드에요 라고 정보를 남깁니다.
그런데 하드디스크를 포맷하는 방식이 윈도우랑 달라서, 일반 윈도우용 bios로는 얘를 못읽더라는 겁니다.
그래서 인식도 안되고 설치도 안되는겁니다.
이때 이걸 도와주는 징검다리 역할을 해주는 애들을 설치해서 사용하게 되는데
이 역할을 하는 친구들이 그 유명한 클로버와 키메라라는 것입니다.
하드디스크나 유에스비에 클로버나 키메라를 설치하지 않으면
부팅이 안되는 경험, 처음이라면 누구나 했을 것입니다.
그 이유가 위의 이유때문이라는 것입니다.
조금만 더 자세히 들어가면,
바이오스가 로드됩니다.
바이오스는 부팅가능한 장치들을 검색합니다.
이때, 맥이 설치된 usb에 클로버나 키메라가 존재하게 되면,
해당 클로버나 키메라는 EFI파티션쪽 등에 설치가 되기 때문에
윈도우 체제 기반의 메인보드가 읽을 수 있는 형태이므로 부팅가능하게끔 인식하게 됩니다.
이때 얘네를 선택하게 되면, 바이오스는 이 정보를 메모리에 복사하여 usb의 키메라나 클로버를
실행시키게 됩니다. 이녀석들이 부트로더라는 것입니다.
부팅을 도와주는 역할을 한다는 것이죠.
따라서 이 프로그램들은 맥이 설치된 파티션의 첫 정보를 읽을 수 있는 프로그램들이기에
자신들 독자적으로 또다른 바이오스같은 역할을 하여, 맥을 부팅하게됩니다.
이제 이 과정상에서 중요한 일이 일어나는데
이 사이에 해당 프로그램은 자신이 가진 설정값들을 가지고 해당 맥을 구동하게 됩니다.
이때 DSDT가 존재하여 패치가 들어간 상태라면
정보를 로드할 때 실제 하드웨어에 있는 정보를 로드하는 것이 아니라,
dsdt를 최우선적으로하여 정보를 로드하고, 없는 것들이나 다른 것들은 실제 하드 정보로 받아온다는 것입니다.
이로 인하여 클로버나 키메라가 FakeID등을 지원하는 것이며
dropdsdt, dropssdt등을 지원하는 것입니다.
이야기가 길어졌는데, 대충 다음글에서는
제가 직접 OZmosis 바이오스를 사용하며 최적화하기 위하여 패치하였던
기기 정보들을 통하여 실제로 패치해보는 글들을 올려보도록 하겠습니다.
감사합니다 ^^
오늘부터는 KsJ님의 DSDT 강좌를 보려고 합니다. 그간 이 작업은 하나도 안하였는데 조금 더 세밀하게 잡아줘야겠다는 생각이 듭니다.
#DSDT,#검색,#삽질,#한계
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
macOS Sequoia 15.0.1 24A348 정식버젼 고스트 이미지 OC 1.0.2 ft: 전체공개 +29 | 936 | 24.10.1121:10 | 좌절금지 |
오픈코어 1.0.2 +23 | 574 | 24.10.0900:22 | 줌바이퍼 |
[중급편] 노트북 해킨 +16 | 1401 | 24.07.1219:19 | Stultus |
macOS Ventura 13.7 22H123 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체 공개 +17 | 574 | 24.09.1917:09 | 좌절금지 |
macOS Sonoma 14.7 23H124 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체공개 +31 | 908 | 24.09.1723:58 | 좌절금지 |
[초급편] 문제 스스로 해결하기 +20 | 4002 | 24.03.2920:07 | Stultus |
[입문편] 첫 해킨 길라잡이 +40 | 5081 | 24.01.1218:54 | Stultus |
[필독 - 안정화] macOS 해킨토시 설치 후 안정화 작업 목록 및 글타래 모음 총정리 📋 +67 | 5.1만 | 23.01.0913:39 | shl628 |
Hot AMD Sequoia용 AppleALC 1.9.2 +3 | 105 | 24.10.2319:04 | 사노라맨 |
Hot [Sequoia 15.0.1, OC r1.0.2] ASUS TUF B550-PLUS / RYZEN 5 5600X / RX470 +2 | 101 | 24.10.2322:26 | 뿌엥 |
Hot OCLP로 지원되지 않는 기기/dGPU를 사용하는 해킨토시의 사이드카 품질 문제 해결방법 +1 | 113 | 24.10.2321:29 | 해킨도전자 |
113 | 24.10.2321:29 | 해킨도전자 | |
105 | 24.10.2319:04 | 사노라맨 | |
783 | 24.10.1412:27 | shl628 | |
659 | 24.10.1316:00 | 수박 | |
936 | 24.10.1121:10 | 좌절금지 | |
574 | 24.10.0900:22 | 줌바이퍼 | |
1401 | 24.07.1219:19 | Stultus | |
1209 | 24.10.0500:31 | 줌바이퍼 | |
569 | 24.10.0410:49 | Tamy | |
463 | 24.09.2808:22 | Tamy | |
893 | 24.09.2321:32 | Stultus | |
601 | 24.09.1722:40 | 좌절금지 | |
562 | 24.09.1708:13 | 김경석 | |
768 | 24.09.1504:35 | Tamy | |
584 | 24.09.1319:18 | Stultus | |
706 | 24.09.1019:44 | 치토 | |
461 | 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 | 화정큐삼 | |
419 | 24.08.1419:58 | Stultus | |
377 | 24.08.1311:26 | 오디세이 | |
270 | 24.08.1115:46 | 좌절금지 | |
233 | 24.08.1022:46 | Stultus | |
131 | 24.08.0609:17 | RogerT | |
88 | 24.08.0523:34 | jbhlyk | |
267 | 24.08.0521:10 | 수인과윤슈 | |
621 | 24.08.0221:07 | Stultus | |
391 | 24.07.3019:12 | Tamy | |
308 | 24.07.2112:43 | Stultus | |
284 | 24.07.1122:47 | Stultus | |
215 | 24.07.1020:44 | Stultus | |
257 | 24.07.0921:44 | Stultus | |
384 | 24.07.0820:57 | Stultus | |
397 | 24.07.0721:25 | Stultus | |
359 | 24.07.0604:41 | bsiugr | |
650 | 24.07.0509:56 | 애플브리크 | |
472 | 24.06.2723:24 | 치토 | |
852 | 24.06.1120:40 | Stultus | |
1447 | 24.04.3022:28 | Stultus | |
1027 | 24.04.2718:46 | Stultus | |
3084 | 24.04.1312:15 | Stultus | |
3049 | 24.04.0712:49 | Stultus | |
1537 | 24.04.0619:59 | Stultus | |
1517 | 24.04.0613:43 | Stultus | |
2665 | 24.04.0521:57 | Stultus |
좋은글 감사합니다!! 다음편 기대하고있겠습니다 :D