질문 [해결 완료] USBToolBox에서 UTBMap.kext와 USBMap.kext의 차이
- Stultus
- 5620
- 10
Stultus님의 기기정보
질문용 시스템 사양 | 3번 |
---|---|
추가사양 및 설치(할)OS | Opencore, All USBToolBox related macOS |
공지숙지/증상설명 | 숙지 |
안녕하세요.
(USBToolBox를 사용하여 기계적으로 USB 매핑을 하면서) 전부터 궁금하던 차에 엑팔이나 구글에서 UTBMap.kext와 USBMap.kext의 차이에 대해 명확하게 나온 자료를 찾을 수 없어 이렇게 문의를 드립니다.
USBToolBox 실행 후 세팅(Change Settings)에서 'N. Use Native Classes'를 'Disabled'로 놓고 매핑을 하면 다음과 같이 'UTBMap.kext'를 생성(Build)할 수 있습니다.
반대로 해당 항목을 'Enabled'로 변경 후 매핑을 하면 다음과 같이 'USBMap.kext'를 생성할 수 있습니다.
('L. Use Legacy Native Classes'는 'Disabled(Enabled)' 세팅에 상관없이 'UTBMap.kext'만 생성할 수 있습니다.)
위 메뉴의 내용에 따르면 'USBToolBox.kext'와 'AppleUSBHostProperties' 중 어떤 걸 사용할 것이냐에 따라 생성되는 파일이 'UTBMap.kext'와 'USBMap.kext'로 나뉘는데요.
Native Classes 즉, AppleUSBHostProperties 사용 시 USBMap이라는 이름만 인식하게 되어 저렇게 이름이 바뀌어 생성이 되게 한 건지, 아니면 다른 이유가 있어 저렇게 이름을 달리 하는 건지 모르겠습니다.
(UTBMap.kext는 USBToolBox.kext와 같이 사용해야 하는 것으로 봐서 단순 이름 차이 같지는 않다는 생각이 들긴 합니다.)
마찬가지로 (Legacy) Native Classes와 AppleUSBHostProperties 그리고 AppleUSBMergeNub에 대한 내용을 검색해봐도 잘 찾을 수가 없어 해당 내용에 대한 지식이 없는 상태입니다.
Stultus
댓글 10
자세한 설명의 댓글 감사합니다.
말씀해주신 내용을 바탕으로 보면 USBMap.kext의 경우 macOS의 내장 Class를 이용해서 'Native' Classes에 해당하는 것이고, UTBMap.kext는 (같은 이름이면 오류 유발 때문에) 'U(USB)T(Tool)B(Box)Map'.kext라고 구분한 것 같다는 생각이 듭니다.
그리고 USBToolBox.kext의 사용으로 macOS에 독립적(?)으로 세팅된 켁스트(Kext)라 macOS 버전 변경이나 패치 등 IOClass에 변화가 있을 때, 추가적인 세팅 없이 사용할 수 있다는 장점이 생길 것 같습니다.
한 가지 더 궁금한 게 생겼는데, 다른 모든 경우에도 macOS의 'Legacy'라는 단어는 모하비(Mojave) 이전 버전들을 뜻한다고 이해할 수 있을까요?
USBToolBox 에서 의미하는 Legacy 는 macOS Mojave 10.14 이하의 버전을 의미하는 것 같습니다.
음...
그럼 벤츄라는 어느쪽을 쓰는게 좀 더 좋을까요?
12세대에서 해킨툴로 생성하는 USBMap.kext로는 부팅이 안되서....
딱히 뭐가 더 좋다는 객관적인 자료는 없지만, USBToolBox.kext와 UTBMap.kext를 사용 시 나중에 덜 번거롭지 않을까 생각합니다.
Hackintool 에서 생성하는 USB Port Map Kext 는 USBPorts.kext 라는 이름으로 생성되며
macOS Mojave 10.14 이하의 버전에서 사용되는 AppleUSBMergeNub 의 Class 로 생성되기 때문에
macOS Ventura 13.x 버전에서는 USBMap 이나 USBToolBox 를 사용하는 것이 좋을 것 같습니다. :)
macOS Catalina 10.15 버전부터 USB 의 IOClass 에 일부 변경된 부분이 있습니다.
macOS Mojave 10.14 이하의 버전은 AppleUSBMergeNub 을 사용하지만,
macOS Catalina 10.15 이상의 버전부터는 AppleUSBHostMergeProperties 을 사용한다고 합니다.
https://dortania.github.io/OpenCore-Post-Install/universal/sleep.html#fixing-usb
https://github.com/dortania/bugtracker/issues/15
USBMap.kext 와 UTBMap.kext 의 차이점은 사용되는 USB 의 IOClass 가 다른 점입니다.
USBMap.kext 은 macOS 의 /S/L/E 경로에 내장된 USB 관련 Kext 의 Class 를 사용하는 것이며,
UTBMap.kext 는 별도의 USBToolBox.kext 를 Class 로 사용하는 것입니다.
그래서, USBMap.kext 은 USBMap.kext 만 사용하면 되지만,
UTBMap.kext 은 USBToolBox.kext 와 같이 사용해야 합니다.
이름을 다르게 한 것은 단순히 위의 2개를 서로 구분하려고 그런 것 같습니다.