Danh mục
Tìm hiểu chung
Type port
Các conector type của usb được thể hiện dưới dạng decimal nhưng khi các bạn viết ssdt-uiac (hay ssdt-usb,..) thì cần chuyển nó về dạng hex (cách chuyển decimal to hex mình đã hướng dẫn rất nhiều ở các post trước các bạn có thể xem cách chuyển ở trong bài patch i2c)
Usb type A
- USB type A 2.0 connector type: 0
- usb type A 3.0 connector: 3
Usb type Mini
- Usb type mini-ab connector type: 1
Usb type B
- Usb 3 type B connector type: 4
Usb Type Micro
- USB 3 Type Micro-B có connector type: 5
- USB 3 Type Micro-AB có connector type: 6
USB Type Power-B
- USB 3 Type Power-B có connector type: 7
USB Type C

- USB Type C – USB 2 có connector type: 8
- USB Type C -switch có connector type: 9
- USB Type C – without switch có connector type: 10
Special:
- ExpressCard có connector type: 2
- Internal (cam, bluetooth,…) có connector type: 255
Tiến hành:
Usb toolbox version windows:
B1: các bạn tải usbtoolbox tại đây

B2: các bạn tải và cài đặt USBToolBox.kext
tại đây

B3: các bạn cài python tại đây
B4: Các bạn chạy tool lên và nhấn D

B5: Các bạn cắm lần lượt usb vào hết các cổng (cổng nào nhận sẽ hiện màu xanh và không nhận sẽ hiện màu trắng)

B6: nhấn B
B7: Nhấn S
Ta sẽ dùng cú pháp T:port:type (đọc ở phần tìm hiểu chung để biết type port ở decimal là gì)

- Ta thấy port 2 là 2.0 nhưng nhận dạng lại là 3.0 ta sẽ cần set nó lại thành 2.0
T:1:0
- Tiếp đó là port 3 ta thấy usb 2.0 nhận dạng là type A tức 2.0 –> đúng không cần sửa
- port 4 là 2.0 nhận dạng là 2.0 –> đúng
- port 5 là card mạng nhận dạng internal –> đúng
- Port 7 là bluetooth nhận dạng internal –> đúng
- Port 8 là web cam nhận dạng internal –> đúng
- Port 14 usb 3.0 nhận dạng là 3.0 –> đúng
B8: nhấn K
B9: các bạn sẽ copy kext UTBmap.kext
và Usbtoolbox.kext
vào EFI –> OC –> kext sau đó snaps (hoặc EFI –> clover –> kext –> other)
B10: reboot
Usb toolbox version macos
B1: tải usbtoolbox tại đây

B2: tải và cài đặt USBToolBox.kext
và UTBDefault.kext
tại đây

B3: chạy tool vừa tại về và nhấn D

B4: các bạn cắm lần lược usb vào các cổng (các cổng nhận sẽ hiện màu xanh)

B5: nhấn B

B6: nhấn S
sử dụng cú pháp T:port:type để chọn type cho port (xem ở phần tìm hiểu chung để biết type phù hợp)

- Port 1 là 1 hub device nhận dạng internal –> đúng
- Port 2 là cam và bluetooth nhận dạng là internal –> đúng
- Port 3 là usb 2.0 nhận dạng type A tức 2.0 –> đúng
- Port 4 là usb 3.0 nhận dạng là 3.0 –> đúng
B7: nhấn K


B8: Bỏ kext UTBmap.kext
và xóa kext UTBDefault.kext
sau đó snaps
B9: save và reboot
Map by hackintool with uia_include
B1: tải kext usbinjectall tại đây
B2: add các patch rename sau vào config.plist
B3: reboot
B4: Các bạn cắm usb vào port usb 2.0

B5: add boot-arg -uia_exclude_ss uia_include=XX
(thay XX bằng các port usb 2.0)
-uia_exclude_ss uia_include=PR11,PR21,HP21,HP23,HS01,HS02
B6: reboot
B7: cắm tiếp usb 2.0 vào các port 2.0 sau đó xóa hết những port không xanh (các usb khi đã nhận có màu xanh)
B8: add boot-arg -uia_exclude_hs
và xóa boot-arg -uia_exclude_ss
B9: reboot
B10: cắm các port usb 3.0 và type C vào sau đó tiếp tục xóa các port không xanh
B11: điều chỉnh type các port
- Bluetooth và web cam set là internal
- usb 2.0 set là 2.0
- Usb 3.0 set là 3.0
- type C
- Nếu mà nhận cùng là HSxx/SSxx(hs03/ss03) thì set là TypeC+Sw
- Ngược lại nếu 2 port nhận khác thì set là TypeC
B12: ấn export
- Có thể sử dụng ssdt-uiac kèm usb injectall.kext
- Hoặc usbport.kext
B13: copy ssdt-uiac vào EFI –> OC –> ACPI (EFI –> Clover –> ACPI –> Patched) hoặc usbport.kext vào EFI –> OC –> kext (EFI –> Clover –> kext –> other)
B14: snaps nếu là OC và reboot
Map by hackintool with uia_exclude
B1: Cắm 1 thiết bị USB 2.0 vào tất cả cổng trong hệ thống (mở Hackintool, chọn tab USB
)
B2: Ở đây các cổng thực sẽ hiện màu xanh các bạn hãy ghi nhớ phần name của các cổng ko hiện xanh ( có thể ghi tên các cổng đây ra )
B3: các bạn thêm đoạn code sau vào boot-arg
uia_exclude=“tên các cổng không hiện xanh”
( khi viết code không có dấu “ ”)
Đây là đoạn code của mình sau khi viết ra các bạn nhớ thêm vào boot-arg nhé
B4: Restart
B5: Các bạn cắm 1 thiết bị USB 3.0 và USB Type-C vào tất cả các cổng trên hệ thống
B6: Các bạn sửa lại đoạn code trên theo đúng với hiện tại ( loại bỏ 1 số cổng vừa hiện xanh trong code ) tiếp các bạn xóa đoạn code ở phần 1 đi và dán đoạn code mới vào boot-arg
B7: Restart
B8: mở và cắm các usb 2.0 vào các cổng 2.0 usb 3.0 vào các cổng 3.0 sau đó ấn dấu để loại bỏ các port không xanh (port rỗng)
B9: Sau khi các bạn đã làm xong cả 2 phần trên thì hãy điều chỉnh lại loại cổng trong hackintool cho đúng nhé
- Bluetooth và web cam set là internal
- usb 2.0 set là 2.0
- Usb 3.0 set là 3.0
- type C
- Nếu mà nhận cùng là HSxx/SSxx(hs03/ss03) thì set là TypeC+Sw
- Ngược lại nếu 2 port nhận khác thì set là TypeC
Đây là của mình sau khi điều chỉnh xong:
B10: ấn export
- Có thể sử dụng ssdt-uiac kèm usb injectall.kext
- Hoặc usbport.kext
B11: copy ssdt-uiac vào EFI –> OC –> ACPI (EFI –> Clover –> ACPI –> Patched) hoặc usbport.kext vào EFI –> OC –> kext (EFI –> Clover –> kext –> other)
B12: snaps nếu là OC và reboot
Lưu ý: USB 3.0 type A và USB type C xuất ra 2 port là 2.0 và 3.0. Lưu ý cắm usb 2.0 và usb 3.0 lần lược vào USB 3.0 type A và USB type C
Lưu ý 2: Sau khia add file đã xuất từ hackitool các bạn có thể xóa code ở boot-arg
Lưu ý 3: đối với usbtoolbox ở mac thì sẽ không có khả năng tiên đoán port các bạn phải tự set bằng tay. Còn đối với windows có khả năng tiên đoán port các bạn có thể bỏ qua bước set port bằng tay và trực tiếp build kext
Lưu ý 4: còn 1 số cách nữa nhưng mình thấy không thực tế nên sẽ không hướng dẫn
Lưu ý 5: các bạn hoàn toàn có thể dựa vào cấu trúc của ssdt-uiac để tự map usb bằng ssdt manual (mình thấy nó không cần thiết nên sẽ không hứng dẫn)
Source tham khảo: USBToolBox/tool: the USBToolBox tool (github.com) | tool/TYPES.md at master · USBToolBox/tool (github.com) | Hackintosh USB Port Mapping Guide 2021 / 2022 – Mojave – Catalina – BigSur – Monterey – Guides and Tutorials – Olarila | headkaze/Hackintool: The Swiss army knife of vanilla Hackintoshing (github.com)
Pingback: Convert bootloader - Heavietnam November 2021
Pingback: Convert bootloader - Heavietnam December 2021
Pingback: VII. Fix wifi và bluetooth - Heavietnam December 2021
Pingback: VI. Fix sleep - Heavietnam December 2021
Pingback: Kernel issue - Heavietnam April 2022