USB 포트 패치

일반 컴퓨터의 경우 최대 26개의 USB 포트가 사용되는 문제가 있지만 (2.0/3.0포함) 이와 달리 맥 운영체제는 15포트이하를 사용하므로
15개를 초과하는 포트를 15개이하로 낮춰서 수량을 조절해야 합니다.
보다 쉽게 작업하기 위해 커스텀맥툴을 이용해 실제 사용되는 포트를 확인하여 사용되지 않는 포트는 제외하는 형태로 패치할 수 있습니다.
Rehabman은 Config.plist에서 부트 플래그를 이용해 제외할 USB 포트 목록을 제외 시킬 수 있는 업데이트 본을 배포 했습니다

* 커스텀맥 툴을 이용한 USB 포트 패치가 어려울 경우 Config.plist/Kernel and Kext Patches/KextsToPatch 항목에 15 포트 해제 패치를
하지 않고 IOREG EXP상에서 HS(USB 2.0 포트를 검출하여 USB 3.0와 짝을 지어 사용되지 않는 포트를 제거합니다
(만약 잘 안되는 분께선 식스플로우 ZISQO의 게시물을 참고하여 USB 포트 패치를 진행하면 됩니다

1. EFI/CLOVER/kexts/Other폴더에 USBInjectAll.kext(포트 제외시킨 버전은 사용불가)를 배치 합니다

USBInjectAll.kext와함께 포트 정리 작업시 Config.plist에 추가해야할 내용

- 클로버 ACPI/DSDT 패치 : XHCI -> XHC
- 클로버 ACPI/DSDT 패치 : XHC1 -> XHC
- 클로버 ACPI/DSDT 패치 : EHC1 -> EH01
- 클로버 ACPI/DSDT 패치 : EHC2 -> EH02

2.재부팅

3. 커스텀맥 툴을 실행한 다음, 상단 도구탭의 설치된 Kexts 탭을 클릭하여 USBInjectAll.kext가 정상로드 되었는지 확인 합니다

- 예) USBInjectAll: Yes (Release-0.7.1)

4. 커스텀맥 툴 → USB 탭에서 USB 컨트롤러 목록을 확인해 주세요. USB 장치에 따라 추가 켁스트를 설치해야 할 수 있습니다

필요한 켁스트 목록

- 8086:8CB1 또는 macOS 운영체제 버전이 10.11.1 이상일 땐 → XHCI-9-series.kext 사용
- 8086:8D31, 8086:A2AF, 8086:A36D, 8086:9DED의 경우 -> XHCI-unsupported.kext 사용
- 8086:1E31, 8086:8C31, 8086:8CB1, 8086:8D31, 8086:9C31, 8086:9CB1 -> FakePCIID.kext와 FakePCIID_XHCIMux.kext 사용
- 만약 썬더볼트 장치는 썬더볼트 인젝션용 SSDT.aml이 필요합니다 (KGP, ZISQO의 내용 참고)
- Z390 DESIGNARE 마더보드의 경우 USB 3.0 장치는 XHC 포트에 연결됨을 유의합니다
- X299 마더보드의 경우 USB 3.0 장치는 썬더볼트 USB 포트에 연결됨을 유의합니다
- 썬더볼트 AIC의 경우 USB 2.0/3.0 장치는 썬더볼트 USB 포트에 연결됨을 유의합니다

5. 추가 켁스트를 설치한 다음 커스텀 맥을 재실행해야 하는데 이 경우 반드시 시스템을 재부팅 해주세요

6. 커스텀맥 툴을 실행한 다음 USB 탭으로 이동해 주세요

7. USB 포트의 모든 항목을 선택한 다음 하단의 “ 삭제 “ 아이콘을 눌러 삭제한 다음 “새로고침” 버튼을 누릅니다

실제 사용되는 USB 2.0 포트 확인

8. Config.plist의 부트 플래그에 -uia_exclude_ss uia_include=HS01,HS02를 추가한 다음 재부팅 합니다

- HS01, HS02 포트에 키보드및 마우스가 연결되도록 포트로 변경해 주세요 (물리 포트 연결)

9. 커스텀맥 툴을 실행한 다음 USB 탭으로 이동합니다

- USB 2.0 장치를 시스템의 모든 포트에 꽂아 놓거나 USB 2.0 장치 한 개로 모든 포트에 꽂은 다음 뽑습니다
- 활성화된 포트는 녹색으로 강조되어 표시됩니다

10. 녹색으로 강조되지 않은 모든 포트는 삭제합니다

실제 사용되는 USB 3.0 & C Type 포트 확인

11. Config.plist의 부트 플래그에서 -uia_exclude_hs를 입력하고 기존의 -uia_exclude_ss 부트 플래그를 삭제한 다음 재부팅 합니다

12. 커스텀 맥 툴을 실행한 다음 USB 탭으로 이동합니다

- USB 3.0 장치를 모든 포트에 꽂거나 뽑습니다
- 타입 C 포트에도 해당 장치를 꽂거나 뽑습니다 (마더 보드 전,후면 모두)
- 활성화된 포트는 녹색으로 강조되어 표시됩니다

13. 녹색으로 강조되지 않은 포트는 삭제합니다

포트 연결

14. USB 포트의 커넥터 드랍 다운 목록을 사용하여 각 포트별 해당 커넥터로 연결해 주세요

- 장치가 영구적으로 연결된 USB 포트 (이를테면 M.2 블루투스 카드)는 “Internal”로 설정해 주세요
- HSxx 포트는 USB3으로 설정해야 합니다
- 내부 허브는 일반적으로 포트 PR11과 PR12로 연결되므로 “Internal”로 설정해야 합니다

Type-C설정

- 전후면에서 포트에서 동일한 HSxx/SSxx 포트로 사용되는 경우 내부 스위치로 지정합니다 (“TypeC+Sw”)
- 전후면 포트에서 각각 다른 HSxx/SSxx 포트로 사용되는 경우 내부 스위치가 없습니다 (“TypeC”)

USB 포트 정리내용 내보내기

15. 내보내기 버튼을 눌러 바탕화면에 파일을 생성합니다

- USBPorts.kext를 EFI/CLOVER/kexts/Other에 복사합니다
- 만약 SSDT-EC.aml을 만들 경우 EFI/CLOVER/ACPI/patched에 복사합니다

16. 이제 정리 작업을 통해 불 필요한 포트를 제거할 수 있습니다

- 클로버의 부트 플래그 제거 : -uia_exclude_ss -uia_exclude_hs uia_include=xx;xx;xx
- USBInjectAll.kext제거
- 클로버에서 추가한 ACPI/DSDT 패치 제거 : (XHC, EH01, EH02)

17. 재부팅 합니다

18. 커스텀맥 툴을 실행하여 USB 탭으로 이동합니다

19. USB 포트 목록에서 모든 항목을 선택하고 “삭제’ 버튼을 눌러 삭제한 다음 “새로고침” 버튼을 누릅니다

- 이제 여러분이 정리한 USB 포트 목록대로 작동하는지 확인할 수 있습니다
- 커넥터 타입을 변경해야할 경우 15번 항목대로 내보내기하여 재부팅하여 변경 사항을 확인합니다
- 실수한 경우 USBPorts.kext를 삭제하고 처음부터 다시 시작하도록 합니다

Q. USBPorts.kext는 무엇인가요?

A. 이 것은 코드리스 커널 익스텐션으로 USB 포트를 인식시키는데 사용됩니다

Q. SSDT-UIAC.aml이 필요한가요?

A. 응 아니야 돌아가(한국식 조크) / 아니오 이 방법은 추가적인 aml등의 코드 없이 사용합니다