elsa in mac

Netkas, 신형 맥북프로가 지원하지 않는 Thunderbolt3 장비를 연동시킬 수 있는 TB3 enabler 공개 본문

Mac(OS X)/macOS 팁

Netkas, 신형 맥북프로가 지원하지 않는 Thunderbolt3 장비를 연동시킬 수 있는 TB3 enabler 공개

elsa in mac 2016. 11. 30. 16:27

신형 맥북프로(late 2016)이 출시 된 후, Thunderbolt 3(USB-C) 인터페이스와 관련된 많은 문제들이 지적되고 있는데요. 그 중에서도 최초 출시와 함께 제기되었던 문제점 중, 기존에 나와 있는 Thunderbolt3 Dock 이나 eGPU 등의 연결과 관련하여 호환이 되지 않는다는 문제점이 있었습니다. 

분명 Thunderbolt3 인터페이스를 갖고 있으면서도, 기존에 출시된 TB3 외장기기들과의 연동이 되지 않는 문제에 대해 그 원인을 신형 맥북 프로가 Texas Instrument사의 TB3 controller 칩을 적용했기 때문이라는 데에서 그 원인을 찾았는데요.  이는 바꾸어 말하면, 신형 맥북프로의 TB3와의 호환성과 관련 애플의 인증을 받아야지만 실질적으로 정상적인 연결이 가능하다는 말이 됩니다. 

이러한 연결 허용 혹은 연결 거부등의 장치 연결 제한은 macOS Sierra에 포함되어 있는 Thunderbolt 드라이버인 IOThunderboltFamily.kext에 의해 결정되는데, 해킨토시 및 Mac용 비디아 드라이버 커스텀과 관련되어 유명한 러시아의 netkas가 IOThunderboltFamily.kext를 패치, 블랙리스트를 우회하여 기존의 TB3 외장장치와 연결할 수 있는 방법을 공개 했습니다.  

해당 포스트에서 netkas는 IOThunderboltFamily.kext를 분석한 결과, shoundSkipEnumeration 함수가 있는 것을 발견하고, 이 함수의 결과를 항상 false로 고쳐서 인증 받지 않은 썬더볼트3 장치를 연결하더라도 Skip(연결 취소)이 일어나지 않도록 수정했다고 밝히고 있습니다. 

TB3 enabler  

해당 솔루션은 tb3 enabler라는 이름으로 GitHub에 공개를 하고 있는데요.. TB3 enabler는 python 명령어로 제공됩니다.  즉, tb3-enabler.py를 터미널에서 실행을 하면,  IOThunderboltFamily.kext를 읽고, Binary 수준에서 패치를 해 주는 방식입니다. 

설치 방법은 다음과 같습니다. 

1. GitHub에서 tb3-enabler.py 다운로드 및 ZIP 압축 해제
2. Mac 재 부팅
3. 재 부팅 시 command + R 키를 눌러 Recovery(복구) 모드로 진입
4. 터미널 실행
5.  SIP(System Integrity Protection)을 OFF : csrutil  disable
6. 재 부팅
7. 정상 부팅 후, 터미널 앱 실행
8. tb3-enabler.py 가 위치한 폴더로 이동 : cd  Download/tb3-enabler-master
9. tb3-enabler.py 실행 : tb3-enabler.py  apply
10. Mac 재 부팅, TB3 외부장치 연결 후, 연결이 정상적으로 되는지 확인


해당 패치를 만든 KhaosT는 MacBook Pro 13,3과 macOS 10.12.1 (16B2659) 에서 패치를 테스트 했으며 MacBook Pro 13,1 에서도 정상적으로 동작한다는 report를 받았지만, 모든 TB3 외장장치에 대한 연결성을 확인해 보지 않았기 때문에 100% 보장은 할 수 없다고 하니, 도전해 보실 분들은 netkas forum에 올라온 댓들들을 잘 읽어보시고, 진행 하시기 바랍니다. 

공유하기 링크
Comments