HACKINOS
Diễn đànGroupsDịch vụ
  • Welcome to HackinOS
  • Tổng Quan
    • Giới thiệu
  • Khái niệm cơ bản
  • Các Kext thường dùng
  • Công cụ thường dùng
  • Ứng dụng thường dùng
  • Thông tin phần cứng
    • Lấy thông tin
  • Phần cứng hỗ trợ
  • Bộ cài macOS
    • Ghost
  • Image
  • App Store
  • Pkg
  • Tạo EFI
    • Cấu trúc EFI
    • EFI Sạch
    • Các SSDT cơ bản
    • Cấu hình config.plist
    • Tham số khởi động
  • Config Desktop
    • Yonah, Conroe và Penryn
    • Lynnfield và Clarkdale
    • Sandy Bridge
    • Ivy Bridge
    • Haswell và Broadwell
    • Skylake
    • Kaby Lake
    • Coffee Lake
    • Comet Lake
  • CONFIG LAPTOP
    • Clarksfield và Arrandale
    • Sandy Bridge
    • Ivy Bridge
    • Haswell
    • Broadwell
    • Skylake
    • Kaby Lake và Amber Lake
    • Coffee Lake và Whiskey Lake
    • Coffee Lake Plus và Comet Lake
    • Ice Lake
  • SỬA LỖI KHI CÀI ĐẶT
    • Lỗi khởi động OpenCore
    • Lỗi trước khi vào GUI cài đặt
    • Lỗi Khởi động khi tải GUI
    • Lỗi sau khi cài đặt
  • HOÀN THIỆN HỆ THỐNG HACKINTOSH
    • Sửa lỗi Audio
    • Boot không cần USB
    • Cập nhật OpenCore và macOS
    • Sửa lỗi DRM
    • Sửa lỗi iMessage
    • Tối ưu hóa Power Management
    • Sửa lỗi Sleep
    • Sửa lỗi USB
      • Chuẩn bị hệ thống
        • Intel
        • Map thủ công
    • Các lỗi khác
      • Sửa lỗi USB Power
      • Sửa lỗi Shutdown/Restart
      • Sửa lỗi Instant Wake
      • Sửa lỗi Keyboard Wake
Powered by GitBook
On this page
  • Why should you USB map
  • #macOS and the 15 Port Limit
  1. HOÀN THIỆN HỆ THỐNG HACKINTOSH

Sửa lỗi USB

Cách Map USB

PreviousSửa lỗi SleepNextChuẩn bị hệ thống

Last updated 10 months ago

Why should you USB map

So the process of USB mapping is defining your ports to macOS and telling it what kind they are, the reasons we want to do this are:

  • macOS is very bad at guessing what kind of ports you have

  • Some ports may run below their rated speed(3.1 ports running at 2.0)

  • Some ports may outright not work

  • Bluetooth not working

  • Certain services like Handoff may not work correctly

  • Sleep may break

  • Broken Hot-Plug

  • Even data corruption from XhciPortLimit

So now that you know why you should USB map, we can now talk about technical info of USB mapping. This is a section you cannot skip, otherwise all info below will seem like a very broken Russian translation written by a very drunk slav.

So with USB, we need to understand not all ports are the same and that some ports are actually hiding other ports within them! What I mean by this is the following:

  • A USB 3.0 port is actually seen as 2 ports to macOS: a USB 2.0 and USB 3.0

  • This is also how USB can keep its backwards compatibility, as all USB 3.0 devices must support USB 2.0

Now let's look at a diagram of a USB port to better understand this:

Image from usb3.com

As you can see, the bottom 4 pins are dedicated to USB 2.0 and when the extra 5 pins above are recognized the device will switch to a USB 3.0 mode.

Now with the basic understanding out of the way, we now have to talk about the dreadful 15 port limit.

Now let me take you back in time to the late 2015's and the release of OS X 10.11, El Capitan. This was an update that established much of what both blesses us and pains us in the community like System Integrity Protection and the 15 port limit.

What the 15 port limit is in macOS(then called OS X) is a strict limit of only 15 possible ports per controller, this becomes an issue when we look at the chipset ports included on your motherboard:

  • Z170 and newer Chipsets: 26 Ports in total

And you may not even have 26 actual ports, but they're still declared in your ACPI tables causing issues as macOS can't tell the difference between a real port and one your firmware writers forgot to remove.

But why did Apple choose 15 ports as the limit?

Well this gets into a fun subset of computers, the hexadecimal counting system! How this differs from our decimal system is that there are a total of 15 values with the last one being 0xF. This meant it was just cleaner to stop at 15 than to say expand the port limit to 255(0xFF), and in Apple's eyes it made little sense to have anything above 15 ports as no Macs they supported went over this limit. And if a Mac Pro user added a USB expansion card, it would get it's own 15 port limit.

And now when we take into account the quirk XhciPortLimit, you can see why data corruption can happen. As we're pushing past the 0xF limit and going into someone else's space. So avoid this quirk when possible.

  • Note: While the name XhciPortLimit may seem that it's limiting the number of XHCI ports, it's in-fact patching the XHCI Port Limit to a higher value.

What about USB hubs?

USB Hubs attached to one of your USB controller's ports have a different kind of port limit. In total, a single USB port can be split into 127 ports. This includes USB hubs attached to USB hubs

macOS and the 15 Port Limit

#