Map USB
Last updated
Last updated
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 2.0 connector type: 0
usb type A 3.0 connector: 3
Usb type mini-ab connector type: 1
Usb 3 type B connector type: 4
USB 3 Type Micro-B có connector type: 5
USB 3 Type Micro-AB có connector type: 6
USB 3 Type Power-B có connector type: 7
HSxx
USB 2.0
Set là 2.0
0
0X00
HSxx
Bluetooth và Camera
Set là internal
255
0xFF
SSxx
USB 3.0
Set là 3.0
03
0x03
SSxx
Type C 3.0
Set là type C with switch
Set là type C w/o switch
09
10
0x09
0x0A
HSxx
Type C 2.0
Set là type C with usb 2.0
Set là type C with switch
Set là type C w/o switch
08
09
10
0x08
0x09
0x0A
B1: Các bạn tải usbtoolbox
tại đây
B2: Các bạn cài python
tại đây
B3: Các bạn chạy tool lên và nhấn D
B4: 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
B5: Nhấn B
B6: Nhấn C
để tiến hành thay đổi setting
B7: Ấn N
để enable Use Native Classes
Chú ý: Đối với AMD bắt buộc phải dùng Native Classses
B8: Ấn B
B9: 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ì
Tuy nhiên với windows bạn có thể bỏ qua câu lệnh này
B10: Nhấn K
B11: Ở màn hình Enter Model Identifier
nhập model SMBIOS của bạn vào
Hoặc
EFI --> clover --> kext --> other
B13: Save lại và reboot
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
B9: Save và reboot
Lưu ý
Đố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.
Khi map usb bằng usbtoolbox 1 số controller có thể sẽ không nhận. Biện pháp khắc phục là bạn sẽ cần load kext xhci-unsupported chung với kext usb vừa map
Chú ý:
XHCI-unsupported.kext
phải cùng ver với usbinjectall
B1: Tải kext usbinjectall
tại đây
B2: Tải XHCI-unsupported.kext
tại đây
B3: Các bạn tiến hành nhìn vào mục type của controller
trong tab usb của hackintool
Nếu controller của bạn có type khác với
EH01
EH02
XHCI
XHC
Thì bạn sẽ cần rename chúng thành các tên tương ứng. Một số rename thường gặp là
EHC1 to EH01
EHC2 to EH02
XHC1 to XHCI
Trường hợp trong DSDT tên XHCI đã được sử dụng thì các bạn có thể rename là XHC1 to XHC_
B3: Reboot
XhciPortLimit
B1: Mở config.plist
và bật quirk XhciPortLimit
Path:
Root --> Kernel --> Quirk --> XhciPortLimit
B2: Save lại và reboot
B3: Tải app Hackintool
B4: Mở Hackintool và đến tab USB
B5: Chuẩn bị 2 chiếc usb 3.0
và 2.0
B6: Tiếp tục cắm các usb vào hết tất cả cổng
Mỗi cổng đợi 5s rồi rút ra cắm cổng tiếp theo
Sao cho mỗi usb đều cắm vào tất cả các cổng
B8: Tiến hành set port type các port màu xanh theo phần tìm hiểu chung
Vậy làm sao để biết cái nào là 3.0 cái nào là type C. Các bạn hãy quan sát trong quá trình cắm usb để có thể xác định một cách chính xác
B9: Ấn export
Có thể sử dụng ssdt-uiac
kèm usb injectall.kext
Hoặc usbport.kext
B10: Copy ssdt-uiac
vào EFI --> OC --> ACPI
và snapshot
Hoặc
EFI --> Clover --> ACPI --> Patched
Hoặc
usbport.kext
vàoEFI --> OC --> kext
Hoặc
EFI --> Clover --> kext --> other
B11: Tiến hành tắt xhciportlimit
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
Sau khia add file đã xuất từ hackitool các bạn có thể xóa code ở
boot-arg
Chỉ dành cho
uia_exclude
vàinclude
Chú ý:
Nếu như máy các bạn có hơn 15 port usb dù làm theo cách nào đi chăng nữa thì các bạn cũng phải bật xhciportlimit
trong config.plist
để có thể sử dụng được tất cả 15 port
uia_include
B1: Các bạn cắm usb vào port usb 2.0
B2: Add boot-arg -uia_exclude_ss uia_include=XX
Thay
XX
bằng các port usb 2.0
B3: Reboot
B4: 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
B5: Add boot-arg -uia_exclude_hs
và xóa boot-arg -uia_exclude_ss
B6: Reboot
B7: 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
B8: Điều chỉnh type các port theo bảng ở phần tìm hiểu chung
B9: Ấn export
Có thể sử dụng ssdt-uiac
kèm usb injectall.kext
Hoặc usbport.kext
B10: copy ssdt-uiac
vào EFI --> OC --> ACPI
và snapshot
Hoặc
EFI --> Clover --> ACPI --> Patched
Hoặc
usbport.kext
vào EFI --> OC --> kext
Hoặc
EFI --> Clover --> kext --> other
B11: Save lại và reboot
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
“ ”
B4: Restart
B1: 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
B2: 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
B3: 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
B4: Restart
Port rỗng
B2: 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é
Đọc bảng ở phần tìm hiểu chung
B3: Ấn export
Có thể sử dụng ssdt-uiac
kèm usb injectall.kext
Hoặc usbport.kext
B4: Copy ssdt-uiac
vào EFI --> OC --> ACPI
và snapshot
Hoặc
EFI --> Clover --> ACPI --> Patched
Hoặc
usbport.kext
vàoEFI --> OC --> kext
Hoặc
EFI --> Clover --> kext --> other
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)
B12: Thêm kext USBMap.kext
vào EFI --> OC --> Kext
và snapshot lại theo hướng dẫn
Các bạn sẽ copy kext UTBmap.kext
và Usbtoolbox.kext
vào EFI --> OC --> kext
sau đó snapshot theo hướng dẫn
B8: Bỏ kext UTBmap.kext
và xóa kext UTBDefault.kext
sau đó snaps theo hướng dẫn
Xem chi tiết hướng dẫn add patch rename mẫu patch rename xem tại đây
B7: Các port không hiện xanh thì các bạn tiến hành ấn dấu
B12: OC_Snapshot theo hướng dẫn nếu là OC và reboot
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 xem chi tiết
B1: 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
B5: Snaps theo hướng dẫn nếu là OC và reboot
Thì bạn sẽ cần thêm kext trên. Đối với những bạn chưa boot được vào macos thì có thể xác định vendor-id
và device-id
theo hướng dẫn