기존의 5강을 적어서 올려두었다가!! 문제가 생겨버려서...,
부득이하게 다시 정리하느라 ^^; 글 내용을 잠시 삭제해두었습니다.
요번 강의는 네이티브 켁스트를 건드리는 것이 아닌,
순수하게 DSDT와 외부 켁스트 로드를 통해서 USB를 인식시키도록 해보려합니다.
켁스트 로드는 GenericUSBXHIC.kext가 대표적으로 사용되거나
GenericUSBMergenum.kext가 대표적으로 많이 사용되는 켁스트입니다.
하지만, 요번에 저희가 살펴볼 내용은
해당 외부켁스트에 완전히 의존하는 것이 아닌
외부의 켁스트를 통해 내부의 네이티브 켁스트를 인식할 수 있게끔 할것입니다 @_@
맥 운영체제가 드라이버를 로드하는 방식에 대해
지난 강의를 통해 얼추 말씀드렸었는데, 대부분 기억하실거라 생각합니다만... ^^......
다시 정리해서 말씀드리도록 하겠습니다!
그래픽을 예로 들도록 하겠습니다.
그래픽카드에 대한 정보가 따로 독립적으로 존재할 것입니다.
제조사는 어느곳이며, 기기 버전은 몇 버전이고
종류나 모델명은 어떤 이름을 가지고 있고, 리비전 버전이나
시스템 버전 등등...
그리고 운영체제는 여러 그래픽 카드에 대한 지원 정보를 담고 있는
켁스트라는 것을 가지고 있습니다.
그런데, 모든 종류의 드라이버를 가지고 있는 것이 아니라
순수하게 애플사가 공식적으로 출고한 제품들에 대해 들어가있는
그래픽 카드의 정보를 지원해줄 수 있는 켁스트 드라이버들만을 가지고 있습니다.
이런 이유로, 그래픽카드를 장착하였을 때
맥 운영체제는 해당 그래픽카드에 대한 정보를 불러들여
자신이 가지고 있는 정보랑 비교하여 정보누락이나
불일치 시에 그래픽을 지원해주지 않게 되는 것입니다.
하지만, 다행이게도 맥 드라이버 형태는
특정 제품만에 대한 정보가 아니라, 해당 제품 라인과 같은 동종 칩셋 드라이버인경우도
포함하고 있는 경우가 있어서! 칩셋종류가 맞으면 어떨결에 인식이 되는 경우도 있기는 합니다.
(드물어요 -_-.....)
대부분 디바이스 단위의 정보까지 철저하게 비교해서
인식시켜버리는 까탈스러운 녀석이다보니, 그냥저냥 대부분 어중간한 그래픽카드들은
쳐다보지도 않고 지원도 안해주고 그러는 것이지요.
....
그래서 그런 정보들을 도중에 가로채서
다른 정보를 흘려보내서 아 이 기기가 이런 정보를 가지고 있구나!
내가 가진거랑 같네? 사용할 수 있게 허락해줄게 ^^
이런형태게 되게끔 만들어주는 작업을 하게 되는데,
이 과정에서 Kext패치, 외부 켁스트 드라이버를 통한 로드.
그리고 dsdt패치 등이 이루어지게 되는 것입니다.
외부 켁스트 드라이버를 통한 로드 형태는 대체로
Nvidia사의 웹드라이버 설치를 예로 들 수 있겠습니다.
네이티브, 즉 맥의 순수한 켁스트로 동작하는 것이 아닌
외부 제 3자가 만들어둔 드라이버 켁스트를 설치하여 로드하는 방식이 되는 것이지요.
다만 그 3자가 엔비디아사, 즉 그래픽카드 제조사이기에 믿고 안심하며
사용할 수 있게 되는 것이구요. (맥도 사인검사를 하는데, 합격해야 제대로 로드시켜줘요.)
하여튼, 요번에 저희가 사용할 방식은 FakeID를 통해
네이티브 USB지원을 활성화 하는 방식이 되겠습니다!
(클로버가 지원하는 usb fake id를 직접 한다고 보시면 돼요.. -_-;;; 저는 Ozmosis사용자라 흑흑..)
여기서 주의하셔야 할 부분이 한가지가 있습니다.
USB 3.0의 경우에는 정상적으로 3.0포트로 동작하지 않을 수 있습니다.
실제 리얼맥의 USB지원 포트 경로랑 여러분이 사용하고 계신 보드가 지원되는
USB지원 포트 경로가 다르면서 발생되는 부분인데, 해당 부분까지 완전히 fix를 하시려면
제가 앞으로 설명드릴 방식으로 하시면 안되시고,
다른 방식으로 인식시키셔야 합니다 ^^;
대부분 제가 작성하는 강좌는, 제가 Ozmosis를 사용하는지라
직접적으로 건드리고 패치하는 방식으로 진행되는 점.
양해 부탁드리겠습니다
자 그럼, 시작하도록 하겠습니다 :)
USB 3.0은 XHCI를 로드하며 2.0은 EHCI를 로드합니다.
바이오스에서 2개모두 Hand-off Enable을 통하여 활성화 시켜주셔야하며,
활성화가 되어있다는 전제 하에 설명드리도록 하겠습니다.
음, 우선 AppleUSBEHCIPCI.kext의 Info.plist를 살펴보아도
해당 기종에 대한 정보가 나와있지를 않습니다.
multiplex라는 방식을 채용하기 때문인데, 이로인해 해당 켁스트는
DSDT패치로는 정상 작동이 어려운 상태입니다.
고로 XHCI를 살펴봐야합니다.
XHCI는 AppleUSBXHCIPCI.kext의 Info.plist를 살펴보시면
여러가지 기종에 대한 포트정보를 담고 있는 부분을 찾으실 수 있습니다.
저의 경우에는 아이맥 5k 17, 1의 심바이오스를 사용중이므로 값을 찾아보면 되는데,
XCHI의 경우에는 DSDT에서 인식할 때에 XHC1이라는 이름으로 인식을 하게 됩니다.
그리고 ECHI의 경우에는 EH0X형식으로 인식하게 되므로 DSDT의 device이름들을 찾으셔서
수정해주셔야 되겠습니다.
그리고 첨부해둔 파일을 다운로드 받으셔서
두개의 파일을 모두 인식시켜줄 수 있는 곳에 넣으셔서 인식시켜주시면 되겠습니다 ^^;
설치하셔도 상관은 없겠지만, 되도록이면 각 부트로더들이 지원하는
외부켁스트 로드 방식을 사용하여 로드해주시는걸 추천드립니다.
인식이 끝나면, 아래처럼 로드가 되었다고 살펴볼 수 있겠으며,
이때부터는 USB3.0포트에 지원 기기를 넣으면 3.0포트에 달라붙으면서
속도가 5기가비트/초 형식으로 늘어나게됩니다.
3.0에 2.0을 붙이면 2.0인 EHCI로 넘어가 붙으면서
500메가비트/초 단위로 속도가 낮춰져서 동작하게 되겠습니다.
요번에는 딱히 패치할 부분이 많지 않아서 원리만 설명드리기 위해 사진 첨부가 조금만 들어갔습니다.
그리고, 아직 더 정확한(?) USB구조에 대해서 살펴보지 않았구요.
개괄적인 개요 정도만 여러분께 설명을 드렸습니다.
다음 강의에서는 IORegistry와 실제 DSDT구간을 살펴보며
어떤게 어떤 값으로 들어가는지를 살펴보도록 하겠습니다.
즉 서로를 매칭시키면서 해당 부분이 DSDT에서 어느부분에 해당되는 건지 살펴볼겁니다 +_+....
그리고 그것을 기본 베이스로 삼아 충전패치와 잠자기 문제도 함께 건드려보는 시간을 3탄에서 가져볼 것이구요.
요번 USB편은 한글에 모두 다루기가 까다로워서 부득이하게 3편으로 나누었습니다 ^^
읽어주셔서 감사합니다~
감사합니다, 맥토피아님!
지금 잠시 당황스러워서; 아무래도 해당 글은 잠시 내용보류해야 할 것 같습니다.
게시물 삭제보다는 내용참고로 따라하지는 마시라고.. -_-;;... 적어두어야겠습니다.
실제로 적용해보니, USB관련 문제가 생겨버려서
3.0을 실질적으로 지원해주는 usb를 하나 구해다가 인식을 하는 방식으로
리얼맥과 흡사하게 2.0의 사용은 EHCI에서, 3.0기종과 3.0의 하위지원 2.0버전은 XHCI에서 사용하게끔
건드려보아야겠습니다....
(지금 전부다 2.0으로 강제로 내린상태입니다; 3.0으로만 전부 지원해버리니 포트가 안맞아서 인식이 안되더군요 ㅜㅜ)
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
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 |