USB 포트 패치
macOS 10.14.1부터는 USB 포트 제한 패치가 작동하지 않으므로
한 번에 모든 포트가 작동하게 구성할 수 없습니다. RehabMan은
특정 포트들을 제외하기 위한 부트 플래그를 포함하도록 USBInjectAll.kext를 업데이트했습니다.
- EFI/CLOVER/kexts/Other에 포트 검색을 위한
USBInjectAll.kext를 넣습니다
- USBInjectAll 요구 사항: Clover - DSDT Renames (해당 장치가 있을 경우)
- XHCI to XHC
- XHC1 to XHC
- EHC1 to EH01
- EHC2 to EH02
- 재시동합니다
- 해킨툴을 실행하고 "설치된 켁스트" 탭으로 가서
USBInjectAll이 올바르게 설치됐는지 확인합니다
- "USB" 탭에서 USB 컨트롤러 목록을 확인하세요.
USB 컨트롤러에 따라 추가적인 Kext 설치가 필요할 수 있습니다:
- 8086:8CB1 또는 OS 버전이 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
- 상기된 kext의 설치가 필요하다면 설치 후 재부팅하고
해킨툴을 실행합니다
- "USB" 탭을 선택합니다
- "USB 포트" 목록의 모든 항목을 선택한 뒤 “삭제” 버튼을 누르고
“새로고침” 버튼을 누릅니다
- -uia_exclude_ss uia_include=HS01,HS02 부트 플래그를 추가한 뒤 재부팅합니다
- HS01, HS02 포트에 키보드와 마우스를 연결하세요
- 해킨툴을 실행하고 "USB" 탭을 선택합니다
- USB 2.0 장치를 포트마다 꽂고 빼봅니다
- 인식된 포트는 녹색으로 표기될 것입니다
- 녹색으로 표기되지 않은 모든 포트를 삭제하세요
- 기존의 -uia_exclude_ss 부트 플래그를 삭제하고
-uia_exclude_hs를 추가한 뒤 재부팅합니다
- 해킨툴을 실행하고 "USB" 탭을 선택합니다
- USB 3.0 장치를 포트마다 꽂고 빼봅니다
- USB-C 장치 또한 포트마다 꽂고 빼봅니다 (위 아래 둘 다 시도)
- 인식된 포트는 녹색으로 표기될 것입니다
- 녹색으로 표기되지 않은 모든 포트를 삭제하세요
- 목록에서 각각의 포트들이 적절한 커넥터 타입을 가지도록 설정합니다
- 계속 부착되어야 하는 장치(내장 블루투스 모듈 등)가 있는 USB 포트는
“Internal”로 설정합니다
- USB 3.0 포트에 연결된 HSxx 포트는
"USB3"으로 설정합니다
- 내장 허브는 보통 PR11 및 PR21 포트에 연결되어 있으니
“Internal”로 설정합니다
- USB-C:
- 장치의 위 아래를 바꿔 끼웠을 때 같은 HSxx/SSxx 포트를 사용한다면
내장 스위치를 가진 것이니 “TypeC+Sw”로 설정합니다
- 만약 위 아래가 각자 다른 HSxx/SSxx 포트를 가진다면
스위치가 없는 것이니 “TypeC”로 설정합니다
- “내보내기” 버튼을 눌러 바탕화면에 파일을 생성합니다
- 만약 SSDT-EC.aml 파일이 있다면
EFI/CLOVER/ACPI/patched 경로에 넣습니다
- 아래 항목 중 하나를 선택합니다:
- USBPorts.kext를 EFI/CLOVER/kexts/Other에 넣습니다
- SSDT-UIAC.aml와 SSDT-USBX.aml (있을 경우) 파일을
EFI/CLOVER/ACPI/patched에 넣습니다
- 이제 정리하고 불필요한 파일을 삭제합니다
- 부트 플래그를 제거합니다 (-uia_exclude_ss -uia_exclude_hs
uia_include=x)
- USBInjectAll.kext를 제거합니다 (USBPorts.kext를 사용할 경우)
- 재부팅합니다
- 해킨툴을 실행하고 "USB" 탭을 선택합니다
- "USB 포트" 목록의 모든 항목을 선택한 뒤 “삭제” 버튼을 누르고
“새로고침” 버튼을 누릅니다
- 이제 모든 포트가 제대로 작동하는 것을 확인할 수 있습니다
- 커넥터 타입을 바꿔야 한다면 다시 "내보내기"해야 합니다
- 무언가 실수한 경우 USBPorts.kext를 삭제하고
처음부터 다시 하세요
Q. USBPorts.kext가 뭔가요?
A. USB 포트를 주입하는데 사용되는
코드리스 kext입니다.
Q. SSDT-UIAC.aml도 필요한가요?
A. 아뇨, 이 방법은 해당 코드리스 kext만을 사용합니다.