Erst mal die ACPI anschauen, oft ist in der DSDT das "Grundgerüst" beschrieben (XHCI, sämtliche Ports des Chipsatzes), in einer weiteren SSDT dann dieses näher. Wenn letzteres der Fall, lässt sich diese sehr einfach per Bootloader "dropen", sowohl Clover wie auch OpenCore können bestimmte Tables deaktivieren. Diese kann man als Vorlage für eine eigene SSDT nutzen, jeden Port mittels "_UPC" beschreiben:
- Scope (HS01)
- {
- Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
- {
- 0xFF,
- 0x03,
- Zero,
- Zero
- })
- Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
- {
- ToPLD (
- PLD_Revision = 0x1,
- PLD_IgnoreColor = 0x1,
- PLD_Red = 0x0,
- PLD_Green = 0x0,
- PLD_Blue = 0x0,
- PLD_Width = 0x0,
- PLD_Height = 0x0,
- PLD_UserVisible = 0x1,
- PLD_Dock = 0x0,
- PLD_Lid = 0x0,
- PLD_Panel = "UNKNOWN",
- PLD_VerticalPosition = "UPPER",
- PLD_HorizontalPosition = "LEFT",
- PLD_Shape = "UNKNOWN",
- PLD_GroupOrientation = 0x0,
- PLD_GroupToken = 0x0,
- PLD_GroupPosition = 0x0,
- PLD_Bay = 0x0,
- PLD_Ejectable = 0x0,
- PLD_EjectRequired = 0x0,
- PLD_CabinetNumber = 0x0,
- PLD_CardCageNumber = 0x0,
- PLD_Reference = 0x0,
- PLD_Rotation = 0x0,
- PLD_Order = 0x0,
- PLD_VerticalOffset = 0x0,
- PLD_HorizontalOffset = 0x0)
- })
- Method (_RMV, 0, NotSerialized) // _RMV: Removal Status
- {
- Return (Zero)
- }
- }
Dabei steht:
0xFF, (Port aktiv; nicht aktiv wäre 0x00)
0x03, (USB3; USB2 wäre 0x00, intern 0xFF, USB-C je nach "verdreht" oder nicht 0x09 oder 0x0A)
Zero,
Zero
Das ist schnell gemacht, vor allem, wenn man eh schon mal eine Kext dafür gemacht hat und somit weiß, welcher Port aktiv und als was deklariert wird.
Da gibt es hier doch schon einen Thread für, komme gerade nicht auf den Namen …