출처 : https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/ |
많은 분들이 아시다시피 USBInjectAll.kext 의 설치는 다양한 메인보드 시스템에 USB3.0을 인식시키도록 하는 목적이 있습니다.
그러나 SSDT패치를 동반하지 않은 완전하지 못한 USBInjectAll.kext 설치는 여러가지 문제점들을 야기하는데 하나는 커맥을 종료해도 다시 재부팅이 되는 현상과 일부 시스템이나 10.3.4(베타) 이후 전면 USB포트가 제대로 작동하지 않는 현상입니다. 후자의 문제점은 잠자기까지 안되게 하는 문제를 동반하게 되니 해결해 봅시다.
준비물 :
먼저 FakePCIID.kext, USBInjectAll.kext 를 설치하고 재부팅합시다. (전 EFI에 심어놓은 클로버 켁스트 폴더에 설치했습니다.)
구형보드라면(인텔 6x~9x시리즈) 클로버 컨픽에서 DSDT패치가 선행되야 합니다. 100시리즈 이상이라면 DSDT 패치가 필요하지 않을 수 있습니다.
IORegistryExplorer 를 이용, 해당되는지 부터 확인합시다.
IORegistryExplorer 에 EHxx 가 검색되지 않는다면 EHxx가 되도록 DSDT 패치 항목에 추가해 주어야 합니다. IORegistryExplorer 로 변경 전 항목(예:EHC1)이 존재할 경우 해당 패치를 추가해 줍시다. 재부팅해야 적용됩니다. (DSDT.aml 를 생성하는게 아닌 클로버에서 패치하는 것이니 착오 없으시길 바랍니다.)
잘 적용 됐다면 IORegistryExplorer 에 아래와 같이 보일겁니다. 단순히 USBInjectAll.kext 만 설치했을때의 기본상태 입니다.
노트북인데도 불구하고 포트가 14개나 표시되네요. 제 노트북에 맞게 수정하면 아래와 같이 나오게 됩니다.
HS01, 02는 왼쪽 USB3.1 Type-A와 Type-C포트 05, 07은 내부에 연결된 카메라와 블루투스 모듈로 확인되어 붙여준 결과입니다. SS01, 02, 05는 3.0이상의 속도를 내는 포트임을 나타냅니다.
역시 잡아줘야 합니다. 이제 방법을 살펴봅시다.
1. USB 포트마다 기기를 꼽았다 빼면서 갱신되는 정보를 파악해야 합니다.
만약 USB리시버를 뽑았다면 IORegistryExplorer 가 아래와 같이 갱신됩니다. (반대로 꼽았다면 녹색으로 갱신됩니다.)
제 USB리시버는 왼쪽 위 포트에 꼽혀 있었으므로 그 자리는 HS01로 확인됐으니 어디다 적어둡시다. 만약 USB3.x 포트라면 함께 적어둡시다. (이유는 아래에 서술)
나머지도 이런 방법으로 확인하시면 됩니다. 전 노트북을 기준으로 작성된 것이라 시간이 오래 걸리지 않았습니다만 포트수가 많은 데탑 커맥이라면 시간이 좀 걸릴겁니다.
2. 잘 적어 두셨다면 이제 MaciASL 를 실행해 줍시다.
cmd+n 단축키로 새 파일을 생성 후 아래 링크로 들어가 전체 내용을 붙여넣어 줍니다.
https://raw.githubusercontent.com/RehabMan/OS-X-USB-Inject-All/master/SSDT-UIAC-ALL.dsl
아래와 같이 보일겁니다.
자... 이제 적어 두었던 자신의 포트정보로 수정해 줍시다.
제 노트북의 경우 8086a12f 칩셋의 HS01, 02, 05, 07 이 확인되며
(칩셋 하드웨어ID는 윈도우에서 확인 가능합니다. 방법은 아래에... 제 시스템은 카비레이크(7700HQ)입니다.)
그 중 01, 02, 05가 3.x의 속도를 내는 포트로 수정된 내용은 아래왜 같습니다.
(제 시스템에 적합한 하드웨어ID는 노란색으로 강조해 놓았습니다만 자신의 시스템에 맞는 것을 찾아주셔야 합니다.)
DefinitionBlock ("", "SSDT", 2, "hack", "UIAC-ALL", 0x00000000) { Device (UIAC) { Name (_HID, "UIA00000") // _HID: Hardware ID Name (RMCF, Package (0x02) { "8086_a12f", Package (0x04) { "port-count", Buffer (0x04) { 0x1A, 0x00, 0x00, 0x00 }, "ports", Package (0x10) { "HS01", Package (0x04) { "UsbConnector", 0x03, "port", Buffer (0x04) { 0x01, 0x00, 0x00, 0x00 } }, "HS02", Package (0x04) { "UsbConnector", 0x03, "port", Buffer (0x04) { 0x02, 0x00, 0x00, 0x00 } }, "HS05", Package (0x04) { "UsbConnector", 0xFF, "port", Buffer (0x04) { 0x05, 0x00, 0x00, 0x00 } }, "HS07", Package (0x04) { "UsbConnector", 0xFF, "port", Buffer (0x04) { 0x07, 0x00, 0x00, 0x00 } }, "HS09", Package (0x02) { "UsbConnector", 0xFF }, "SS01", Package (0x04) { "UsbConnector", 0x03, "port", Buffer (0x04) { 0x11, 0x00, 0x00, 0x00 } }, "SS02", Package (0x04) { "UsbConnector", 0x03, "port", Buffer (0x04) { 0x12, 0x00, 0x00, 0x00 } }, "SS05", Package (0x04) { "UsbConnector", 0xFF, "port", Buffer (0x04) { 0x15, 0x00, 0x00, 0x00 } } } } }) } } |
복잡해 보여도 잘 살펴보시면 그렇지 않으니 차근차근 훓어보시기 바랍니다. 확인 된 포트번호만 남겨두고 지우시면 되는데 만약 HS01이 3.x포트라면 SS01도 함께 남겨두셔야 제대로 된 속도가 나옵니다. 반대로 2.0 포트라면 HS01만 남겨두시면 됩니다. 포트수가 적은 노트북이라 단촐한 것이지 포트가 많은 데탑은 줄이 좀 길어질 겁니다.
더불어 내장된 포트, 즉 언마운트 할 수 없는 블루투스 모듈이나 노트북의 카메라가 붙은 포트라면 "UsbConnector", 3, 대신 "UsbConnector", 255, 가 되야 합니다. 추가로 *.aml로 저장하게 되면 표기 방법이 달라지게 되니 착오 없으시기 바랍니다. (예: "UsbConnector", 255, > "UsbConnector", 한칸아래에 0xFF)
다 마무리 됐다면 *.aml 확장자로 저장한 후 ClOVER/ACPI/patched 폴더에 넣어줍니다... 아 힘드네요.
칩셋 하드웨어ID 확인방법:
윈도우10 기준 장치관리자에서 아래와 같이 확인 가능합니다. 8086과 A12F 가 보이시지요? 제 칩셋정보입니다. 여러분은 다를 수 있으니 꼭 확인해 주세요.
3. 마지막으로 클로버 컨픽 KextsToPatch에 macOS 버전에 맞는 항목을 추가해 줘야 합니다. 10.13.x 이라면 아래와 같습니다.
그 밖에 os버전이라면 링크 를 확인해 주세요.
추가로 2xx 칩셋이거나 x99 칩셋이라면 켁스트를 추가해 주어야 할지도 모릅니다. 일단 위 내용을 적용해 보시고 안되시면 추가해 주세요. 링크
아마 잘 따라해 주셨다면 필요 없을겁니다...ㅠ
이제 윈도우에서 처럼 완벽하게 USB 포트가 작동하고 정상적으로 종료도 될겁니다. 하... 안되면 뭐... 될겁니다...
비록 영어이긴 하나 보다 명확한 설명은 출처의 리햅맨 형님이 해주실 겁니다. ㅜ
일목요연한 설명글 감사합니다.
저의 경우 BCM94360CS-PCI 사용 시 원활하지 못했던 BT문제가 깨끗이 해결되었습니다.
다시 한번 감사드립니다.
킹보리님의 경우 PCI 와이파이 카드라도 BT장치는 보드내 USB2.0에 연결시키기 때문에 해결된 경우라 할 수 있겠네요. 이 경우 글의 내용처럼 SSDT내 해당포트의 설정을 3에서 255로 변경해 주시면 되겠습니다.
추천드립니다. 저는 잠자기후 USB-C포트로 연결되는 USB장치들이 모두 안되는 현상이 있는데, 이번에 봄날님이 써주신 가이드데로 한번 해봐야겠습니다. 이전부터 시간내서 한다고 해놓고 귀차니즘으로 인해 ㅎㅎㅎ 여하튼 같은 보드들도 많으니 수정한 파일들은 공유하는 방법도 좋을 것 같습니다.
같은 보드라도 번호가 다를 수 있다고 합니다. 가능하면 직접 확인하고 잡아주는게 좋을 것 같아요.
한가지 추가로 알려드리자면, 10.13.4 베타2로 업데이트 한뒤 인텔 내장 그래픽카드가 제대로 활성화 되지 않습니다. 아무래도 켁스트 업데이트가 필요할듯합니다.
원문에서 번역기 돌려가며 고생하면서 따라했는데 이제 까먹을때마다 봄날님 가이드를 참고하면 되겠네요. 감사합니다~
전면 USB포트에 2개 이상 USB 장치를 연결하면 전원 공급이 불안정해지는 문제가 있었습니다. 그런데 봄날님이 알려주신 방법을 통해 해당 문제를 해결할 수 있었습니다.
ssdt.aml을 추가하는 김에 좀 더 패치를 진행해서 iPad가 USB포트를 통해 충전이 안되는 문제를 해결했습니다.
USB를 통해 iPad를 충전하기 위해서는 AppleBusPowerController가 로드 되어야 합니다. AppleBusPowerController가 로드되기 위해서는 SB.EC가 로드되야하는 것 같습니다.
SSDT.aml에 EC와 USB전원 추가공급에 관련된 USBX을 추가해주면 됩니다.
DefinitionBlock ("", "SSDT", 2, "hack", "UIAC-ALL", 0x00000000)
{
Device (UIAC)
{
Name (_HID, "UIA00000") // _HID: Hardware ID
Name (RMCF, Package (0x02)
{
"8086_a2af",
Package (0x04)
{
"port-count",
Buffer (0x04)
{
0x1A, 0x00, 0x00, 0x00
},
"ports",
Package (0x22)
{
//생략
}
}
})
}
//추가된 부분은 이 밑부터
Device (_SB.USBX)
{
Name (_ADR, Zero) // _ADR: Address
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
If (LNot (Arg2))
{
Return (Buffer (One)
{
0x03
})
}
Return (Package (0x08)
{
"kUSBSleepPortCurrentLimit",
0x0834,
"kUSBSleepPowerSupply",
0x13EC,
"kUSBWakePortCurrentLimit",
0x0834,
"kUSBWakePowerSupply",
0x13EC
})
}
}
Device (_SB.EC)
{
Name (_HID, "EC000000") // _HID: Hardware ID
}
}
그럼 이렇게 iPad 연결 시 추가 동작 전류와 휴면 전류가 잘 잡힙니다.~~
저는 해당 패치 진행해도 작동하지 않네요 ㅠㅠ ssdt에서 USBX라고 이름을 잡아주는 이유가 있을까요?
저는 EC는 AppleBusPowerController을 로드하기 위해서 필요한 장치, USBX은 AppleBusPowerController가 어떻게 작동할지 규칙을 가지고 있는 장치 정도로 이해하고 있습니다.
혹시 SMBIOS는 어떤걸 사용하지는 지요??
"kUSBSleepPortCurrentLimit", 0x0834,
"kUSBSleepPowerSupply", 0x13EC,
"kUSBWakePortCurrentLimit", 0x0834,
"kUSBWakePowerSupply", 0x13EC
가 리얼맥 중 iMac17,1에서 추출한 값으로 알고 있는데....저는 iMac18,1을 사용하고 있고 제 경우에는 잘 작동하고 있습니다.
혹시 작동하지 않는다면 제 생각에는 봄날님이 공유해주신 팁이 잘 적용되지 않았거나, SMBIOS가 iMac이 아니라서 작동하지 않을 것 같습니다.
smbios는 맥북에어6,2쓰고 있습니다.
아니면 SSDT 순서가 잘못된건지도 모르겠네요 ㅠㅠ
---- info.plist보고 수정했는데도 안됩니다. 뭔가 문제가 생긴게 분명해요
1.혹시 IORegistryExplorer 에서 IOService 패널에도 USBX가 확인이 되나요? 저같은 경우는 IOService 가 아닌 IOACPIPlane에서만 확인이 되네요
2.EC/AppleBusPowerControllerUSB에 알맞게
Ex>>>>>>>>>>>>>>>>>>>>>>>>>>>
"kUSBSleepPortCurrentLimit", 0x0834,
"kUSBSleepPowerSupply", 0x13EC,
"kUSBWakePortCurrentLimit", 0x0834,
"kUSBWakePowerSupply", 0x13EC
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
요런식으로 표시가 되어 나오나요? 저는 DSDT 값과 완전 딴판으로 나와버리네요 ㅠㅠ
EC에서 AppleBusPowerControllerUSB이 로드 된건 IOService 패널에서 확인 되며, IOService 패널에서는 USBX가 확인되지 않습니다.
USBX는 IOACPIPlane에서만 확인되며 다음과 같은 내용을 가지고 있습니다.
둘 다 SSDT에서 입력해준 값과 같은 값을 보여줍니다.
혹시 작고 푸른 정사각형에 (하얀색 이였던가) 물음표 있는 그림 말씀하시는 건가요?
그건 플래시 설치를 안 해서 입니다.
커세어 H115i 수냉 쿨러가 활성화 됐을 경우에 잠자기에서 바로 깨어나는 문제가 있어서, 해당 포트만 클로버에서 아예 비활성화 시켜서 쓰고 있었는데,
본문 내용대로 aml 패치 해주니까 정상 작동하면서 잠자기에서 더 이상 깨어나지 않네요. 감사합니다.
덕분에 USB2.0과 3.0 포트는 완벽하게 잡히고, 잠자기 문제는 해결되었으나,
제 USB3.1 포트는 c타입과 기존 usb타임 각 1개씩 후면 포트에 있는데..
다른 3.0이나 2.0 포트처럼 XHC@ 하위에 등록 되지 않고, 다른곳에 마운트 되네요.
제가 usb3.1 포트에 사용중인게 akitio NT2 Usb3.1 이란 물건인데, 2베이 외장하드케이스입니다.
자체 전원 케이블이 따로 있는 제품인데, 이것 때문에 컴퓨터 종료를 하면 자동으로 재부팅 됩니다.
컴퓨터 종료하기전에 해당 기기의 전원을 먼저 끄거나, USB3.1 포트에 연결 된 케이블을 제거하고 종료하면 다시 재부팅 되진 않구요.
이건 usbinjectall.kext 관련 패치로 해결이 불가능한건지 궁금합니다..
관련 증상 해결법인 바이오스에서 wake on LAN 설정이나 클로버에서 fix shutdown 에도 체크해봤지만 별 영향은 없었습니다.
좋은 팁 너무 감사합니다 한가지 궁금한점이 있습니다 알려주신 방법으로 ssdt는 잘작성해서 IOreg에는 잘잡혔는데 시스템 정보에는 전부 3.0에 잡힌걸로 뜨네요
전부 2.0 포트에 꼽혀있는데... 이게 잘 잡힌게 맞는지 궁금하여 여쭤봅니다 혹시 몰라 만든 파일도 함께 첨부합니다 인텔 칩셋 8시리즈 입니다 ssdtusb(xhc).aml 켁스트는 두개다 클로버에 추가했습니다
포트 번호 확인하실때 잘못됐을수도 있고 아니면 칩셋정보가 잘못됐을수도 있는 것 같네요. 정확한 사양을 알려주사지 않아 답변드리기 난해합니다. 일단 시스템정보에는 3.0이지만 속도는 2.0으로 보이네요.
ga-h81m-ds2v 보드 쓰고있습니다 후면3.0포트 2개 2.0포트 2개 전면 2.0포트 2개 사용중입니다 3.0 usb 꼽아보니 시스템 정보에 최고속도 5gb로 나오는데
일단 포트번호 수정해봐야겠네요 감사합니다
마지막 3번 부분에서 켁스트커널패치부분에서 오히려 패치를 disable하고 사용해야하는 것 같습니다. 물론SSDT적용이 잘되었다면 말이지요. 원문확인해보세요.
좋은 자료 감사합니다. 크롬에서 링크 우클릭 후 다른 이름으로 링크 저장 하면 dsl 로 바로 저장 됩니다. 수정은 하드웨어 확인 후 나머지는 다 삭제해도 되는군요. 포트는 사용하는 것만 놔두고 나머지는 다 삭제..
좋은 정보 감사합니다~ 전 2.0이 안잡히는것으로 나오고 3.0부분에 2.0포트 가 표현되어 이네요.
#부분
감사합니다. 그전에 사용하던 것이 조금 미흡했는데 이곳 글을 보고 수정하니 잘 됩니다.
좋은 정보 감사드리면 즐거운 하루 되세요.
윈도우는 작동하지만 맥에서 kext 지원이 끊긴 구형보드의 서드파티 USB를 살려보고싶은데 이 글이 도움이 될 수 있을까요? VIA VL800 으로 시에라버전부터 동작을 안하네요.
이글 제가 탈퇴한 아이디로 쓴 글인데... 너무 예전 정보고 지금은 틀린부분도 있어요. 지금은 해킨툴로 간단히 가능합니다. 구글에서 검색하면 너무 상단에 떠서 지워야 할텐데...
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
macOS Sequoia 15.0.1 24A348 정식버젼 고스트 이미지 OC 1.0.2 ft: 전체공개 +30 | 948 | 24.10.1121:10 | 좌절금지 |
오픈코어 1.0.2 +23 | 583 | 24.10.0900:22 | 줌바이퍼 |
[중급편] 노트북 해킨 +16 | 1413 | 24.07.1219:19 | Stultus |
macOS Ventura 13.7 22H123 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체 공개 +17 | 579 | 24.09.1917:09 | 좌절금지 |
macOS Sonoma 14.7 23H124 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체공개 +31 | 910 | 24.09.1723:58 | 좌절금지 |
[초급편] 문제 스스로 해결하기 +20 | 4008 | 24.03.2920:07 | Stultus |
[입문편] 첫 해킨 길라잡이 +40 | 5100 | 24.01.1218:54 | Stultus |
[필독 - 안정화] macOS 해킨토시 설치 후 안정화 작업 목록 및 글타래 모음 총정리 📋 +67 | 5.1만 | 23.01.0913:39 | shl628 |
Hot [Sequoia 15.0.1, OC r1.0.2] ASUS TUF B550-PLUS / RYZEN 5 5600X / RX470 +2 | 110 | 24.10.2322:26 | 뿌엥 |
Hot OCLP로 지원되지 않는 기기/dGPU를 사용하는 해킨토시의 사이드카 품질 문제 해결방법 +1 | 133 | 24.10.2321:29 | 해킨도전자 |
110 | 24.10.2322:26 | 뿌엥 | |
133 | 24.10.2321:29 | 해킨도전자 | |
113 | 24.10.2319:04 | 사노라맨 | |
802 | 24.10.1412:27 | shl628 | |
694 | 24.10.1316:00 | 수박 | |
346 | 24.10.1222:56 | Stultus | |
948 | 24.10.1121:10 | 좌절금지 | |
738 | 24.10.1115:53 | 수박 | |
583 | 24.10.0900:22 | 줌바이퍼 | |
1413 | 24.07.1219:19 | Stultus | |
1223 | 24.10.0500:31 | 줌바이퍼 | |
569 | 24.10.0410:49 | Tamy | |
750 | 24.09.2923:48 | 머트 | |
629 | 24.09.2822:28 | 머트 | |
465 | 24.09.2808:22 | Tamy | |
895 | 24.09.2321:32 | Stultus | |
995 | 24.09.2210:59 | 좌절금지 | |
648 | 24.09.2203:23 | 누림어멈 | |
1192 | 24.09.1919:17 | 좌절금지 | |
579 | 24.09.1917:09 | 좌절금지 | |
498 | 24.09.1813:37 | Stultus | |
910 | 24.09.1723:58 | 좌절금지 | |
603 | 24.09.1722:40 | 좌절금지 | |
455 | 24.09.1717:13 | 맥가즈아 | |
562 | 24.09.1708:13 | 김경석 | |
234 | 24.09.1617:47 | Panictosh | |
770 | 24.09.1504:35 | Tamy | |
584 | 24.09.1319:18 | Stultus | |
707 | 24.09.1019:44 | 치토 | |
484 | 24.09.0118:13 | 머핀X | |
463 | 24.09.0112:54 | 해킨도전자 | |
547 | 24.08.3115:34 | 머핀X | |
307 | 24.08.2601:42 | 화정큐삼 | |
306 | 24.08.2422:59 | 하나브 | |
319 | 24.08.2316:25 | 화정큐삼 | |
416 | 24.08.1810:56 | CanBe | |
363 | 24.08.1800:04 | 화정큐삼 | |
301 | 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 | |
540 | 24.08.1022:10 | 오디세이 | |
168 | 24.08.1019:05 | jbhlyk | |
200 | 24.08.0923:20 | RogerT |
추천을 안드리고 갈수없는 글이네요..
복잡해 보이는 DSDT나 kext파일 등에도 규칙은 존재한다는것 ^^
정말 유용한 글입니다. 감사합니다.