(참고자료: https://www.insanelymac.com/forum/topic/306777-guide-usb-fix-el-capitan-1011/page-15)
엘캐피탠을 설치하고나면 USB3가 USB2 속도로 동작합니다. 동작을 안하면 쉽게 알아차릴텐데 어찌되었든 동작은 하니까 대부분 못 알아차립니다. 시스템 정보에서 다음과 같이 나오는지 확인해보세요. (추가설명: 아래처럼 보이면 정상입니다. USB 3.0까지 모두 2.0에 가 붙어 있으면 정상이 아닌 것입니다)
이유를 찾아보면... PC에서는 USB2와 USB3 컨트롤러 이름으로 보통 EHC1, ECH2, XHC 을 사용합니다. 그런데 OSX 엘캐피탠 에서는 EHC1, EHC2, XHC1 라는 이름을 사용합니다. XHC1에서 1이 빠져있는 것이지요. 이런 이유로, PC에 엘캐피탠을 기본 설치하면 EHC1과 EHC2는 동작 하지만 XHC는 동작하지 않습니다. (+ Device ID 어드레스가 잘못 들어가는 것도 한 원인)
일반적으로 EHC1와 EHC2 에는 USB2 포트 (USB3 포트의 2.0 호환모드 포함)들이 연결되고, XHC에는 USB3 포트들이 연결됩니다. 따라서, XHC가 동작을 안하면 USB3 포트는 동작을 안하지만 EHCx에 연결된 USB3의 2.0 호환모드는 여전히 동작하게 됩니다. 속도만 느릴뿐 어찌되었든 동작은 하니까 언듯 봐서는 알아차릴 수 없지요.
DSDT를 편집하여 XHC를 XHC1로 이름을 바꿔주면 될것 같지만 그것만으로 되지도 않고, DSDT free를 좋아하는 분들도 있고 하니 다른 방법을 찾아보겠습니다.
사전지식
인텔 칩셋별로 지원 가능한 USB3 포트 갯수가 정해져 있습니다 (제3업체 칩셋으로 지원되는 숫자 제외).
Z170, Q170 = 10
H170, Q150 = 8
Z97, H97, Q87, B150, X99 = 6
Z77, Z75, H77, B75, Q75, Q77, B85, H110 = 4
B81 = 2
메인보드를 제작할때는 USB3는 최대 숫자까지 지원하도록 만들지만 USB2는 보통 8개 까지만 지원하도록 한 경우가 대부분입니다.
예를들면, intel 9 series motherboard는 보통 USB3 6개, USB2 8개를 지원합니다. 즉, USB2 = 8개, USB3 = 6개, USB2 호환모드 = 6개..... 총 20개 입니다. USB2 호환모드는 USB3과 물리적인 포트는 공유하지만 내부적으로는 multiplexer를 써서 회로를 분기시키기 때문에 소프트웨어적으로는 별도의 포트로 간주해야 합니다. USB3 물리 포트 1개가 소프트웨어 2개 포트를 점유하는 셈입니다.
OSX 엘캐피탠에서 EHC1와 EHC2가 USB2를 담당하고, XHC가 USB3를 담당한다 했으니 그러면;
EHC1 로 USB2 포트 8개를, XHC 로 USB3 포트 12개 (USB3 6개 + USB2 호환 6개)를 담당하도록 하면 딱 맞을 것 같습니다. 혹은,
EHC1 로 USB2 포트 8개를, EHC2 로 나머지 USB2 포트 6개를, XHC 로 USB3 포트 6개를 제어하도록 해도 될것 같습니다.
예상치 못한 문제
그런데 한가지 큰 문제가 발견되었는데, XHC로 USB3 포트 12개(또는 6개)를 제어하도록 하면, EHCx에 붙어있어야 할 나머지 USB2 포트 8개(또는 14개)도 덩달아서 XHC 쪽에 와서 달라 붙습니다. 운나쁘면 총 20개가 XHC쪽에 달라붙을수도 있습니다. 애플이 의도한 것인지 버그인지는 모르지만, 아무래도 버그 같습니다.
XHC가 USB2 모드도 제어할수 있으므로 USB2 포트가 몇개 더 달라붙는다고 문제될 것은 없지만, XHC가 총 15포트까지만 수용 가능해서 20개가 달라붙으면 마지막에 오는 5개 포트는 기능을 못하게 됩니다.
중간결론
[1] USB2 포트중에서 안쓰는 포트를 삭제해서 USB3 포트에 차례가 가도록 설정 하던지.
[2] USB2 포트가 XHC에 안 달라붙도록 kext를 패치 해주든지.
둘중 하나를 선택해야 하는데, [2]번은 아직 검증이 덜 되었기 때문에 더 기다리는 것이 나을 것 같고(잠자기, 마우스 등등 몇몇 문제가 있고 애플이 향후 어떻게 패치할지 모르는 터라), [1]번은 일부 포트를 포기해야 하는 것 이외에는 다른 부작용은 없습니다.
준비물
IORegisteryExplorer.app (인터넷 검색하여 다운로드)
DummyUSBXHCIPCI.kext (첨부파일 -> DummyUSBXHCIPCI.kext.zip )
Kext Utility (Kext 설치 유틸리티... 알아서)
PList Editor (plistedit 를 쓰든지 텍스트 에디터를 써도 됨)
패치방법
1. XHC의 Device ID를 찾는다.
IORegisteryExplorer로 XHC라는 항목을 찾아 Device ID 값을 찾아냅니다. Vendor ID는 8086, Device ID는 8cb1 또는 9cb1 등으로 되어 있을 가능성이 높습니다. (아래 그림 참조)
2. XHC인지 XHC1 인지 찾는다.
이름이 XHC로 되어 있는지 XHC1으로 되어 있는지 찾습니다. XHC로 되어 있을 가능성이 높습니다. (위 그림 참조). (만약 이름이 XHC1으로 되어 있으면 오히려 DSDT패치를 하거나, clover patch를 해서 이름을 XHC로 바꿔줘야 합니다. 이름이 XHC1로 되어 있으면 애플의 기본 kext와 여기서 inject하는 kext가 충돌할수 있기 때문입니다.)
3. DummyUSBXHCIPCI.kext 안에 있는 Info.plist 수정
PlistEdit로 Contents\Info.plist를 열고 다음과 같이 수정합니다 (파인더에서 마우스 우측버튼으로 DummyUSBXHCIPCI.kext를 클릭하고 Show Package Content를 선택하면 안으로 들어갈수 있습니다).
(3.1) AppleUSBXHCILPTH1 아래 IOPCIPrimaryMatch의 값을 (1) 에서 찾은 값으로 바꿔줍니다. 값은 "0x" + "DeviceID" + "VendorID" 입니다. 보통 0x8cb18086 혹은 0x9cb18086 으로 될 가능성이 높습니다. 예를들어, 만약 Device ID가 8cad라면 문자열이 0x8cad8086이 되어야 겠지요. (아래 그림 참조)
(3.2) 본인이 사용중인 맥 모델 값으로 iMac15,1-XHC 문자열을 바꿔줍니다. 예를들면, iMac14,1을 사용중이라면, iMac14,1-XHC 로 바꿔주면 됩니다.
제일~ 아래쪽 "model" 값도 같이 iMac14,1로 바꿔줘야 합니다. 다른 예로, 만약 Macmini6,1을 사용한다면 Macmini6,1-XHC와 Macmini6,1로 바꿔줘야겠지요....
(3.3) ports 항목을 열고, HS01, HS02, ... HS15, SSP1, SSP2, ... SSP6 중에서 안쓰는 포트 번호를 삭제합니다. (HS01~15는 USB2 또는 USB2 호환모드 번호이고, SSP1~6는 USB3 용 번호입니다.) (이글 마지막에, 안쓰는 포트 번호 찾는 방법 참조)
(3.4) 파일을 저장하고 KextUtility로 /S/L/E/ 에 설치해줍니다.
4. 예제
Gigabyte Z97보드의 경우, 백패널의 파란색 USB3 포트의 USB2 호환모드가 각각 HS03, HS04, HS08, HS09에 연결되어 있더군요. 백패널의 USB2 기본포트 두개(키보드, 마우스 꼽는 부분)는 HS05, HS06에 연결되어 있고, 컴퓨터 앞쪽으로 나온 포트가 HS08, HS11, HS12에 연결되어 있었습니다(보드에 F_USB1과 F_USB2로 인쇄된 USB2 커넥터를 컴퓨터 전면 컨트롤 패널에 연결한 상태).
따라서, HS01, HS02, HS13, HS14를 안쓰는 것 같으므로 (컴퓨터 내부 빈 커넥터에 할당된것 같음??), 이 번호를 삭제하면 빈 공간이 USB3용 번호인 SSP2 ~ SSP5에 넘어갑니다. 이렇게 해도 15개 제한 때문에 USB3 포트 하나(SSP6)가 하나 버려지는데, 이것마저 끼워넣고 싶으면 HSxx 중에서 하나를 더 삭제하면 되겠지요. (아래 그림 참조)
다시 강조하면, 앞에오는 15개 포트까지만 유효하고 그 뒤에 오는 번호는 동작 안합니다. 아래 그림처럼 16개를 끼워 넣어도 되지만 마지막에 오는 SSP6 (USB3의 6번째 포트)는 무시됩니다.
최종 결론
수정된 DummyUSBXHCIPCI.kext를 설치하고 재부팅하면 아래처럼 USB3 포트가 살아납니다. USB3포트에 USB3를 지원하는 장치를 연결하면 HSxx가 아닌 SSPx 에 붙게됩니다.
참고
안쓰는 포트 번호 찾는 것이 쉽지 않을 수 있는데, 이렇게 해볼수 있습니다. 일단 포트번호는 삭제하지 말고 Dummy...kext를 설치하세요(물론 다른 값들은 수정해야 함). 그러면 15개 제한에 걸려서 HS01~14와 SSP1이 동작하게 됩니다. IORegisteryExplorer를 실행한 상태에서 USB 메모리 스틱 같은 것으로 각각의 USB 포트에 꼽았다 뺐다 하면 각 커넥터가 어떤 포트에 연결되어 있는지 XHC 밑의 HSxx 번호 밑에 표시됩니다.
----------------------------- 여기 까지가 끝이고 아래는 실험정신이 있는 분에게만 해당됩니다 --------------------------------------------
다른 방법[2] (미완성)
USB2 포트 몇개를 삭제한 것이 마음에 걸려 잠이 안오는 분이면서 실험 정신이 있는 분이라면, 아직 미완성이지만 위에서 편집한 DummyUSBXHCIPCI.kext 와 함께, 첨부한 FakePCIID.kext 와 FakePCIID_XHCIMux.kext 를 같이 설치해볼수 있습니다 (즉, 총 3개의 kext를 설치하는 것임). (다운로드 ==> FakePCIID.kext.zip FakePCIID_XHCIMux.kext.zip
)
DummyUSBXHCIPCI.kext 는 위에서 말한대로 편집하되 HS01~HS14 를 모두 삭제하고, SSP1~SSP6만 남겨둡니다. FakePCIxxxxx.kext는 편집할 것 없이 그대로 설치하면 됩니다.
3개의 kext를 설치하고 리부팅 하면, USB2 및 USB2 호환포트는 모두 EHC1과 EHC2에 가서 붙고, 진짜 USB3 포트만 XHC에 가서 붙습니다. 가장 이상적인 모양이 되는데, 테스트가 덜되어 예상치 못한 오류가 발생할 수 있습니다. FakePCIxxxxx.kext는 잘 얄려진 Rehabman 이라는 사람이 만든 것입니다.
USB2 포트중 일부가 (El Capitan을 설치한 이후) 처음부터 동작을 안하는 경우
(모두 동작하는 분은 이 섹션은 무시해도 됩니다. 다음줄에 나오는 모델명을 사용하는 분도 이 섹션은 통과하셔도 됩니다)
맥 모델이 iMac14,1. iMac14,2. iMac14,3. iMac15,1. Macmini7,1. MacBookPro11,1. MacBookPro11.2, MacBookPro11.3. MacBookAir6,1. MacBookAir6,2. 등이면 USB2가 모두 동작하지만, 다른 모델로 되어 있을 경우에는 간혹 USB2 포트중에서 처음부터 동작 안하는 포트가 있을 수 있습니다. 리얼맥에서 그 포트를 사용안하기 때문에 애플에서 막아놓은 것인데, 이것을 해제하려면 다음과 같이 해줘야 합니다.
1. OSX에 기본 설치된 kext와의 충돌을 방지하기 위하여 EHC1과 EHC2 로 된 컨트롤러 이름을 EH01과 EH02로 바꿔줍니다. DSDT편집없이도 가능한데 아래 파란 글자를 clover의 config.plist에 추가하면 됩니다.
<key>DSDT</key>
<dict>
...
<key>Patches</key>
<array>
<dict>
<key>Comment</key>
<string>EHC2 [to] EH02</string>
<key>Find</key>
<data>
RUhDMg==
</data>
<key>Replace</key>
<data>
RUgwMg==
</data>
</dict>
<dict>
<key>Comment</key>
<string>EHC1 [to] EH01</string>
<key>Find</key>
<data>
RUhDMQ==
</data>
<key>Replace</key>
<data>
RUgwMQ==
</data>
</dict>
</array>
...
</dict>
2. 위에서 언급한 DummyUSBXHCIPCI.kext 대신에 아래 첨부된 kext를 사용합니다. 다른 내용은 동일하고 USB2 포트 제한을 풀어놓는 항목이 더 추가된 것인데, 내부에 있는 iMac15,1을 본인의 맥 모델명으로 모두 바꿔줘야 합니다. 위에서 말한 편집 내용들(Device ID변경, 포트 삭제 등등)을 모두 그대로 따라서 하면 됩니다. 예를들면, iMac13,1을 사용중이라면 iMac15,1을 iMac13,1로 모두 바꿔야 하고, iMac15,1-XHC를 iMac13,1-XHC로 바꾸고 등등...
다운로드 ==> DummyUSBEXHCIPCI.kext.zip
아래 그림은 수정해야 할 부분을 표시한 것입니다.
또 재미있는 삽질 거리를 주셨네요. 이번 주말에 열심히 따라 가보겠습니다. :-)
영문으로된 문서 보면서 시도하다가 잘 안되서 포기중이었는데
올려주신 글 보고 해결되었습니다. ㅠㅠ
매우 감사합니다.
ASROCK h67m 보드 사용중인데, USB 2.0 포트는 반만 인식되던게 전부 인식되고...
USB 3.0 포트는 인식은되는데, 아직 문제가 조금있네요.?
그래도 USB 2.0 포트가 전부 인식되는것만해도 속이 뻥뚤린 기분입니다.
감사합니다.
저 같은경우 일반적으로 인스톨하면 (맥프로 3.1 이나 아이맥)
?
요런 알림창이 뜨고.. ?USB2 1포트만 사용가능했습니다..
거기서 맥프로 6,1 로바꾸면 알림창은 안뜨지만 여전히 usb2 1포트만 사용가능했구요.
근데 위에 올려주신 맨마지막 방법으로.. 전포트 다 사용가능해지고.. usb3.0포트도 인식해서 정상 사용가능해졌습니다. (정말 감사합니다)
근데 ?새롭게 생긴문제가..?
1. 여전히 이 알림창은 꺼도 계속 뜹니다.
?
2. ?부팅할때 꼽아놨던 USB 장치들은 작동하나.. 뺏다 다시 끼거나.. 새롭게 꼽은 장치들은 작동하지 않습니다.
3. 한방에 부팅이 안되고 재부팅됐다가 다시 해야 부팅되는경우가 생겼습니다.
보드는 애즈락 z68 pro3 ?입니다~ ? 어디가 문제일까요?
인텔이 7 series 보드부터 USB 3.0을 지원하기 시작했으니까, Z68보드면 아마 3rd party chipset을 사용해서 USB 3.0을 지원하는 보드일 것 같습니다(스펙 차트 보니까 Etron EJ168A 칩이라고 나와 있네요). 위의 Dummy... kext는 애플에서 기본으로 driver를 제공하는 intel chipset을 기준으로 한 것이니까 잘 안 맞을 것 같습니다.
이렇게 해보세요. Dummy... kext 에서 AppleUSBXHCILPTH1과 MacPro6,1-XHC 항목은 전체 삭제하고, MacPro6,1-EH01과 MacPro6,1-EH02 로 된 부분만 남겨두세요. 클로버에 EH01, EH02로 이름 바꾸는 것은 그냥 놔두고, 그러면 일단 USB 2.0은 모두 동작할 것입니다 (FakePCIxxxx.kext 두개도 삭제해야 함).?
USB 3.0은 그 칩셋에 해당하는 kext를 별도로 설치해줘야 할 것 같습니다(칩셋 이름과 osx 키워드로 인터넷 검색해보면 나올것 같습니다).
해결했네요 터미네이터님이 올리신 usb관련글이 첨에는 이해가 안됐는데....^^;;
dsdt수정해서 지금은 usb잘돼네요.. 진짜 오랜만에 삽들어봤습니다.. 하루반나절 걸렸네요..ㅎ
해결하니 이거였구나..이것때문에 시간버리고..삽질이라니...웃음만 나오네요.. 별걸다건드려 봤네요..ㅎ
소중한팁 감사합니다.
dsdt만 수정하셔서 된건가요? 저도 약간 USB에 문제가 있는듯 보여서 dsdt 수정중인데...?
어떻게 하셨는지 궁금합니다.. 아래처럼 정리해두긴했는데.,..어떻게 해야하는지 감이 안잡히네요
이글 덕에 해결했습니다. USB 2.0 포트 삭제하니 USB3.0이 되네요. 감사합니다.^^
자세한 설명이 눈에 쏙 들어오네요.
차분차분 따라하기 쉽습니다.
1번 방법으로 성공했어요. 감사합니다.
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
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 | 5082 | 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 | 114 | 24.10.2321:29 | 해킨도전자 |
114 | 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 | 치토 | |
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 | 화정큐삼 | |
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 |
이걸로 고생하고 있었는데 감사합니다