Closed johncolby closed 3 years ago
Does not inject for me:
@startergo To mimic my hack above, change your IONameMatch
to AppleASMedia3142USBXHCI
. But YMMV since it looks like you have 2 identically named controllers, so will probably need to match also on something else.
@startergo To mimic my hack above, change your
IONameMatch
toAppleASMedia3142USBXHCI
. But YMMV since it looks like you have 2 identically named controllers, so will probably need to match also on something else.
Thanks!:
Not sure why it did not take the second controller:
I recently migrated USBMap to leverage IOPathMatch over IONameMatch - which should hopefully alleviate some issues with more exotic setups. The commit that added that functionality is here - but I've added some other fixes and etc since.
-CorpNewt
I recently migrated USBMap to leverage IOPathMatch over IONameMatch - which should hopefully alleviate some issues with more exotic setups. The commit that added that functionality is here - but I've added some other fixes and etc since.
-CorpNewt
I have tried Dortania's IOPathMatch, but it did not hook my ASMedia3142USBXHCI. Is there any difference between the IOProbescore (higher value than the original kext) and kUSBMuxEnabled=true?
I have tested the IOPathMatch but it is not very reliable especially with USBMap for all ports. This works fine:
Also Catalina uses AppleUSBXHCI, but Big Sur hooks to AppleASMedia3142USBXHCI, so for Catalina use this Info.plist instead on cMP5,1 in another kext. Restrict Min and Max Kernel and ACPI rename:
The issue with using a generic class match for IONameMatch is that it will apply to all controllers with that name - which, in your example is fine, as you are using the same ports for both of the ASMedia controllers - but for those with different types and ports, it won't work. I suppose the search shall continue for a more reliable way - however, the IOPathMatch works fine for my ASMedia controllers (of which I have two, with different numbers of ports and different types), so I'm inclined to continue toward a solution that works with them individually over a blanket solution. If you make any other headway on the topic, please update me, but for now I won't use the class as the IONameMatch.
-CorpNewt
Awesome, thanks for the discussion. I will play around with the path match method some too (I guess the script is not getting the path successfully for my case, so is falling back to using name match...but I need to run through debug mode to understand fully). FWIW I'm on a KVM hackintosh, so it's OVMF firmware, and my particular pci layout, may also be in play.
Beautiful, although I had a recent snapshot after https://github.com/corpnewt/USBMap/commit/f3be68900f4c4e0d1e67c13760446f9d916faa2a, the old port map was cached and getting reused. Wiping that and rediscovering ports now picks up the correct IOPathMatch
method, which works perfectly for my simple case. Thanks again for the awesome tool!
The name of the controller does not match the name of its container (not sure if that's the correct term), so
IONameMatch
tries to insertports
(and also the power settings I included) at the wrong spot, and fails. A simple hack for my simple setup was to change theIONameMatch
string toAppleUSBXHCIPCI
from the name of the controllerpci1022,149c
. I'm sure you'll know of a more elegant way to fix this in your script!
```xmlUSBMap.kext
(with above tweak already applied)screenshot (original as output by
USBMap.py
, with power settings added, without above tweak):Before
After
Thanks for the great work!!