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.kextUsbtoolbox.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)

Do mình không kiếm được 1 máy chưa map usb nên các bạn xem cú pháp và áp dụng vào máy các bạn
  • 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ể gh‌i 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)