Coder Social home page Coder Social logo

os-x-usb-inject-all's Introduction

USBInjectAll.kext

In 10.11+ Apple has changed significantly the way the USB drivers work. In the absense of a port injector, the drivers use ACPI to obtain information about which ports are active. Often, this information is wrong. Instead of correcting the DSDT, a port injector can be used (just as Apple did for their own computers). But in order to create such an injector, you must first determine which ports are actually being used. And to do that you need to inject all ports so you can test all ports on the computer to determine which ones correspond to each available port address. You can't test a port that is disabled...

That's where this kext comes in.

This kext attempts to inject all ports for each controller, and for hubs as well. You can use this kext (temporarily) to enable all ports so you can determine which ports really need to be in the final injector. Only the (potential) hub on EH01.PRT1 and EH02.PRT1 are injected. Other hubs would require modifications. So far, I haven't seen internal hubs connected to other ports. The kext automatically determines the ports (and their addresses) based on the specifc USB controller chipsets.

EH01: 8-USB2 ports PR11-PR18.

EH02: 6-USB2 ports PR21-PR28.

EH01 hub: 8-USB2 ports HP11-HP18.

EH02 hub: 8-USB2 ports HP21-HP28.

XHC, 7-series chipset (8086:1e31): 4-USB2 ports HS01-HS04, 4-USB3 ports SS01-SS04.

XHC, 8/9-series chipset (8086:9xxx): 9-USB2 ports HS01-HS09, 6-USB3 ports SS01-SS06.

XHC, 8/9-series chipset (8086:8xxx): 14-USB2 ports HS01-HS14, 6-USB3 ports SS01-SS06.

XHC, 8/9-series chipset (8086:9cb1): 11-USB ports HS01-HS11, 4-USB3 ports SS01-SS04.

XHC, 100-series chipset (8086:a12f): 14-USB2 ports HS01-HS14, 10-USB3 ports SS01-SS10, plus USR1/USR2)

XHC, 100-series chipset (8086:9d2f): 10-USB2 ports HS01-HS10, 6-USB3 ports SS01-SS06, plus USR1/USR2)

XHC, 200-series/300-series chipset, etc.

This kext is only for 10.11+. It has no use with prior versions.

Currently, only Intel controllers are supported. The most commonly used SMBIOS model identifiers are in the kext.

Without a custom configuration, it is not intended that this kext be used long term. It is best to create a custom injector containing only the ports that are active on the target machine, or to create an SSDT that customizes the port injection done by USBInjectAll.kext. Customizing USBInjectAll.kext with an SSDT is covered later in this README.

For some chipsets, you may need to bypass the 15-port limit in 10.11. In particular, XHCI controllers with device-id that starts with '8' will need the patch to bypass the limit. The patch was created by arix98 and published on insanelymac.com here: http://www.insanelymac.com/forum/topic/308325-guide-1011-full-speed-usb-series-89-keeping-vanilla-sle/page-9#entry2175618 (post #179 of that thread).

This kext requires only 20 ports maximum, so the patch would be: (these patches are for 10.11.x only)

Comment: change 15 port limit to 20 in AppleUSBXHCIPCI
Name: AppleUSBXHCIPCI
Find: <83bd8cfe ffff10>
Replace: <83bd8cfe ffff15>

If you have a 100-series board, there can be up to 26 ports on XHCI, so you should increase the limit accordingly:

Comment: change 15 port limit to 26 in AppleUSBXHCIPCI
Name: AppleUSBXHCIPCI
Find: <83bd8cfe ffff10>
Replace: <83bd8cfe ffff1b>

You can copy/paste the patch from the file config_patches.plist that is checked into this project, which also has the patches for versions other than 10.11.x. The config_patches.plist also contains the DSDT patches required to rename EHC1->EH01 and EHC2->EH02 which is important to avoid collisions between this kext and any built-in port injectors in the native kexts for your SMBIOS.

Note: Do not plan to use the patch long-term. It could be problematic. If you have more than 15 ports on XHC, you should use FakePCIID_XHCIMux to route the USB2 component of those USB3 ports to EHCI. It is easy to stay under the limit if up to 8-USB2 ports are routed off XHC.

This kext may be helpful in installation scenarios as well where broken USB may prevent booting the installer from a USB stick. It should work from EFI/Clover/kexts.

Injected Property Customization

Two mechanisms are provided for customizing the injections that this kext performs. Kernel flag 'uia_exclude' can be used to eliminate ports that would normally be injected. uia_exclude takes is a string of characters with multiple port identifiers comma delimited.

For example, on my Lenovo u430 without FakePCIID_XHCIMux, bluetooth is on XHC at HS06. And the touchscreen is at HS01. I can disable the touchscreen by booting with kernel flag uia_exclude=HS01, or with uia_exclude=HS06 disable bluetooth. To disable both, uia_exclude=HS01,HS06. With FakePCIID_XHCIMux, the touchscreen is on the hub on USB port1 on EH01. To disable this hub port, uia_exclude=HP11. You can easily see which devices are connected to which ports. Each port identifier injected by the kext is unique, so you can easily identify each one.

In addition a few other flags are available:

flag -uia_exclude_hs: excludes all HSxx ports

flag -uia_exclude_ss: excludes all SSxx ports

flag -uia_exclude_xhc: disables injection on XHC

flag uia_include: to include certain ports even if would be normally excluded. For example: -uia_exclude_hs uia_include=HS01 (to keep HS01 but exclude other HSxx)

But excluding ports doesn't give all the flexibility that might be needed. All of the data in the Info.plist for ConfigurationData can be configured through ACPI.

For example, if we wanted to enable only SS01 on XHC for 8086_8xxx chipsets:

DefinitionBlock ("", "SSDT", 1, "hack", "UIAC", 0)
{
    Device(UIAC)
    {
        Name(_HID, "UIA00000")

        // override XHC configuration to have only one port
        Name(RMCF, Package()
        {
            "8086_8xxx", Package()
            {
                "port-count", Buffer() { 0xa, 0, 0, 0 },
                "ports", Package()
                {
                    "SS01", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 0xa, 0, 0, 0 },
                    }
                }
            }
        })
    }
}

An example is also provided in SSDT-UIAC.dsl. All of the data injected for each type of device can be changed via this mechnanism.

The SSDT-UIAC-ALL.dsl contains the same data present in the Info.plist. Using it would result in a net zero change. You can use it as a template to establish your own custom SSDT for the specific USB configuration on your computer. Delete ports you do not need. Or change UsbConnector or portType to match your own USB hardware configuration. All XHC identifiers (vendor_device) are included, so you should probably start by eliminating the configurations that don't apply to your XHC device, leaving only the configuration for your device. You can see your device-id in ioreg under the XHC node (vendor-id and device-id).

Feedback

Please use this thread at tmx for futher details and feedback.

http://www.tonymacx86.com/el-capitan-laptop-support/173616-guide-10-11-usb-changes-solutions.html

Downloads:

Downloads are available on Bitbucket:

https://bitbucket.org/RehabMan/os-x-usb-inject-all/downloads/

The best way to download the config_patches.plist and other repo files is to download the project ZIP:

https://github.com/RehabMan/OS-X-USB-Inject-All/archive/master.zip

How to Install

Install the kext with your favorite kext installer, such as Kext Wizard.

Or install via Terminal:

sudo cp -R Release/USBInjectAll.kext /Library/Extensions
sudo touch /System/Library/Extensions && sudo kextcache -u /

Note: This kext assumes you already renamed EHC1->EH01 and EHC2->EH02. It also assumes your XHCI controller is named XHC or XHCI (not renamed to XHC1). These names EH01/EH02/XHC are best to avoid conflicts with built-in port injectors for Apple computers. Refer to config_patches.plist in this repo for the patches required (config_patches.plist/ACPI/DSDT/Patches).

If you have a 9-series chipset XHC controller, 8086:8cb1, install XHCI-9-series.kext from the project as well. The USB3 drivers will not load without this injector kext. Update: As of 10.11.1, this injector is no longer needed as direct support was added. If you need it, go back in history: https://github.com/RehabMan/OS-X-USB-Inject-All/tree/706fea51222eb73343d347db10cf48500333a7bd

Certain Intel xHCI controllers are not supported natively and require an injector. For these systems, install XHCI-unsupported.kext. The native support depends by version, you can check in /System/Library/Extensions/IOUSBHostFamily.kext/Contents/Plugins/AppleUSBXHCIPCI.kext/Contents/Info.plist to see if your xHCI is supported natively.

Because XHCI-unsupported.kext uses a lower IOProbeScore than the native Info.plist, there is no harm in installing it even if native support exists.

Typical xHCI needing XHCI-unsupported.kext:

X99-series chipset XHC controller, 8086:8d31 200-series chipset XHC controller, 8086:a2af (depends on macOS version) 300-series chipset XHC controller, 8086:a36d or 8086:9ded

Build Environment

My build environment is currently Xcode, using SDK 10.11, targeting OS X 10.11.

Keep in mind the Info.plist is generated by generate_Info_plist.sh. Do not edit the Info.plist directly. USBInectAll_template-Info.plist serves as the starter Info.plist, with each model injected using USBInjectAll_model_template.plist. This allows new models to be added easily by modifying the script.

Change Log

2018-11-08 (0.7.1)

  • add MacBookAir8,1 and Macmini8,1

  • remove EHCI configuration (EH01/EH02/HUB1/HUB2) from models which are unlikely to need it

  • remove matching for AppeBusPowerControllerUSB, which was used in old versions of macOS (note: AppleBusPowerController should still match)

  • change SSPx to SS0x in 8086_8xxx

  • reduce Info.plist size

  • rename all SSPx -> SS0x for consistency

  • remove kernel flag -uia_exclude_ssp

2018-10-26 (0.7.0)

  • ignore empty entries in RMCF data (user error: caused when package size is larger than the data within)

  • add uia_include kernel flag

2018-10-20 (0.6.9)

  • add support for AppleBusPowerController (not just AppleBusPowerControllerUSB)

  • note that the configuration override via "AppleBusPowerControllerUSB" in UIAC is no longer supported; must use "AppleBusPowerController"

2018-10-15 (no new version of USBInjectAll.kext)

  • consolidated XHCI injectors into single XHCI-unsupported.kext

2018-10-08 (0.6.8)

  • add XHCI match

  • fix capitalization of MacBookPro10,2 (courtesy OatmealDome)

2018-08-21 (0.6.7)

  • add 300-series support XHC device 8086:9ded

2018-07-16 (0.6.6)

  • add support for MacBookPro15,1 and MacBookPro15,2

2018-04-20 (0.6.5)

  • add 300-series support XHC device 8086:a36d

2018-01-02 (0.6.4)

  • added iMacPro1,1

2017-12-14 (0.6.3)

  • added iMac19,1

  • added possibility for custom configurations to add "Disable" flag, which will disable USBInjectAll.kext

2017-07-24 (0.6.2)

  • added iMac18,2 iMac18,3

  • changed default portType to zero for hub ports

2017-06-09 (0.6.1)

  • added add MacBookPro14,x; iMac18,1; MacBook10,1

2017-05-17 (0.6.0)

  • added ability to override 10.12 USB power properties via "AppleBusPowerControllerUSB" ACPI override

2017-01-12 (0.5.17)

  • add 200-series support XHC device 8086:a2af

2016-12-14 (0.5.16)

  • add new MacBook Pro models: MacBookPro13,1, MacBookPro13,2, MacBookPro13,3

2016-12-13 (0.5.15)

  • add more iMac models: iMac4,1, iMac4,2, iMac5,1, iMac6,1, iMac7,1, iMac8,1, iMac9,1, iMac10,1

2016-09-07 (0.5.14)

  • add "model" for internal hub IOKitPersonality (IOKit matching has changed on 10.12)

2016-06-29 (0.5.12)

  • add MacBookPro11,3 MacBooKPro11,4 MacBookPro11,5

  • add MacBook9,1

2016-04-22 (0.5.11)

  • allow "XHC" as match for the XHCI controller. The primary use for this would be in SSDT configuration as there is no XHC config in Info.plist

2016-03-30 (0.5.10)

  • add special configuration for XHCI 8086:9cb1

2016-01-26 (0.5.9)

  • add support for 100-series chipset XHCI 8086:9d2f

2015-11-17 (0.5.8)

  • add kernel flags -uia_exclude_hs, -uia_exclude_ss, -uia_exclude_ssp

2015-11-16 (0.5.5)

  • add kernel flag -uia_ignore_rmcf to allow ACPI RMCF customization to be ignored

2015-11-14 (0.5.4)

  • fix bug with zero length dictionary in ACPI RMCF customization

2015-10-25 (0.5.3)

  • initial 100-series support

2015-10-23 (0.5.2)

  • add more SMBIOS (eg. MacPro*)

2015-10-20 (0.5.0)

  • initial release

os-x-usb-inject-all's People

Contributors

rehabman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

os-x-usb-inject-all's Issues

New iMac18,1 and others

While testing sys def iMac18,1 I realized that usb injection didn't work. I figured out that running generate_Info_plist and recompiling the kext solved the issue. There are new iMacs . Cheers.

0.7.4 Prelink Injection error with opencore (0.7.1 works fine)

Hello @RehabMan I just tried the 0.7.4 update on a fully functioning system (EC, USBX, UIAC all injected) without changing anything else and it threw a Prelink injection error (incorrect parameter) at boot and booted without usb support. I reverted to 0.7.1 and it works fine. Let me know if I can provide anything.

no usb3 with Asus x99-a/usb 3.1 bios 3701

hello there,

I installed usbinjectall and the xcci-x99 kext, as well as adding the port limit patch for 10.12.6 in clover. however, I still don't get usb. I have the controller set to 'auto' and ehci handoff enabled
and xhci handoff enabled. what else could be causing the issue?>

imac18,3 sysdef doesn't work

hi rehabman.
I tried your latest kext 0.6.1 with imac18,3 sysdef (because I have 7700k) and I found out that usb injection is not working.
I saw that into info.plist you have added imac18,1 but not iMac 18,3 (most common I think due to 7700k choice)
could you please fix that? thank you

edit: everything working using imac17,1 for example, so i'm sure it's up to imac18,3 the issue

need support for iMac19.2 SMBIOS

Hi, I found that the SSDT-UIAC i made for my Motherboard does not work properly on iMac 19,2 SMBIOS.

I have HS 01 02 03 05 06 07 08 09 14 and SS 01 02 03 04 06 defined on iMac18,3 macOS 10.14.4, recently i upgraded to 10.14.5 beta1 and use SMBIOS iMac 19,2. the ports in iojones was displayed as:
HS 01 02 03 04 05 06 07 08 09 10 11 14 SS 01 02 03, thus SS 04 05 06 does not work.

use this kext, Bluetooth and camera work,but sleep and shutdown error

My laptop is MSI GT72S 6QF-065CN

100-series chipset (8086:a12f): 14-USB2 ports HS01-HS14, 10-USB3 ports SS01-SS10, plus USR1/USR2) XHC

System log

kernel[0]: 000786.091778 IOUSBHostHIDDevice@14700000,0: IOUSBHostHIDDevice::interruptRetry: resetting device due to IO failures
kernel[0]: 000786.162450 IOUSBHostDevice@14700000: IOUSBHostDevice::getDescriptorGated: compliance violation: USB 2.0 9.3.5: device returned more than wLength data
kernel[0]: 000786.473072 MSI EPF USB@14700000: IOUSBHostDevice::setConfigurationGated: compliance violation: failed to enable remote wake

issue running generate_Info_plist.sh error

Hi there.

When I attempt to run generate_Info_plist.sh I receive this error:

./generate_Info_plist.sh
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 19: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 22: /usr/libexec/plistbuddy: No such file or directory
./generate_Info_plist.sh: line 119: md5: command not found
./generate_Info_plist.sh: line 120: md5: command not found

Any solutions?

Kind regards
Michael

New mapping for XHCI-unsupported (ASUS ROG strix B460I)

I have an ASUS ROG strix B460I board and it needed a new entry with IOPCPrimaryMatch "0xa3af8086" for USB 3 to work correctly. Not sure if that should be a new personality or added to an existing one. That's why I didn't submit a pull request.

about 10.13.4+

Hey, Rehab, we need edit kexts and use com.apple.driver.usb.AppleUSBXHCI instead com.apple.driver.usb.AppleUSBXHCIPCI? and AppleUSBXHCI instead AppleUSBXHCIPCI.

Thx!
Keep up the good work!

Port Limit Patch Update

Please update the sample port limit patch in the README to 26 (decimal) or greater, to support 170 boards with 14 + 10 + 2 ports.

fix for satinization

mojave

kxld[com.rehabman.driver.USBInjectAll]: The super class vtable '__ZTV9IOService' for vtable '__ZTV12USBInjectAll' is out of date. Make sure your kext has been built against the correct headers.
localhost kernel[0]: kxld[com.rehabman.driver.USBInjectAll]: The super class vtable '__ZTV9IOService' for vtable '__ZTV19USBInjectAll_config' is out of date. Make sure your kext has been built against the correct headers.
localhost kernel[0]: Can't load kext com.rehabman.driver.USBInjectAll - link failed.
localhost kernel[0]: Failed to load executable for kext com.rehabman.driver.USBInjectAll.
localhost kernel[0]: Kext com.rehabman.driver.USBInjectAll failed to load (0xdc008016).
localhost kernel[0]: Failed to load kext com.rehabman.driver.USBInjectAll (error 0xdc008016).

v0.6.9 reset first boot on macOS 10.13.6

Hi

I use v0.6.7 with custom SSDT: all works fine.

I install v0.6.9 yesterday in /EFI/Clover/KEXTS/10.13. My system reboots alone, at first startup, when I run macOS High Sierra.

Any idea? Please

Mobo: Asus P8z77-v Pro

Are legacy USB supported?

All USB appearing 'unknown' under series / Hackintool e.g.

Type: USB0
ID: 0x1D
Name: 82801JI (ICH10 Family) USB UCHI Controller #1
Series:Unknown
Vendor: 0x8086
DeviceID: 0x3A34

Does the kext support this?

Overriding the IOUSBHostFamily.kext/Contents/Info.plist failed

Hi,Rehabman,i follow your guide "USB power property injection for Sierra (and later)"
I have laptop that 10.13.5 installed , using SMBIOS MacBook Pro 11,3 which in the info.plist ,So I just rename the EC0->EC, then the AppleBusPowerControllerUSB loaded as expect. But I want to overriding the values ,so I create a SSDT-UIAC like this
06ff9254a999ad615ad47e7aef2e63f8
The port limit was fine, but the values don't change at all,look the pic
71b00928cb7cf3527d15ad4863ed24bc
I don't know what was happend,may i miss something?

Blocking USB devices

Hello,
I'm a new MacOS developer. I need to create a client app, which can block mass storage devices. After googling, I found little information how to do that. The only way I found is to install Configuration Profiles to prevent external volumes mounting. I'm wondering if I can develop a kernel extension to accomplish that and what KPI(kauth, MAC, ...) I need to use. It is better I can block specific devices based on their pid/vid or something instead of all usb devices. Thanks a lot!

Leo

Stops working with different CPU on identical Motherboard

My Current working configuration is:

Asus Sabertooth X79
i7-4930k @3.4 6 core
32 GB ram
Evga GeForce GT 710 2GB DDR3 gpu
960 GB Patriot SSD
10.14.3
Clover v2.4k_r4862
No DSDT file used.

Mojave 10.14.3 Installed, all USB ports working, all the time using USBInjectAll.kext v 0.7.1, with no patching needed to increase port numbers since the available number covers all of them.

However, when I use this same SSD that Mojave is installed on, in another computer with an exact same motherboard, GPUs, etc, with an E5-2697 v2 12 core CPU instead, USB 3.0 stops working. Only USB 2.0 works.

Is there is something in the USBInjectAll.kext that includes the i7-4039k CPU but doesn't include the E5-2697 v2?

I don't know that there is a difference in version numbers on the motherboards or if that could affect this.

I have confirmed all bios settings are identical.

I even tried switching all the cards in the E5-2697 v2 computer so they'd be in the same order as the i7-4930k, taking out a USB 3.0 card. Nothing solved the problem.

The only other difference is the bios version and ME versions of the board. If I remember correctly, I updated the bios to a newer version when I installed the E5-2697 v2.

I have tried various configurations with the Config file, expanding the number of USB ports, using the old SSDT from Sierra and High Sierra, different configs and EFI folders from here and from elsewhere. Nothing has solved the problem. I also tested on a Asus Rampage IV Gene, and again there were no issues. It seems to be related to the CPU, but short of taking the E5-2697 v2 out of the computer with the USB 3 issues and putting in the one that's working to see if it is the CPU specifically causing the problems, I thought I'd check here first. Posting this problem on other hackintosh sites produced no solutions as to why it would work on one computer but not the other.

GenericUSBXHCI, which has worked up to high 10.13.6, doesn't really work with Mojave on this same computer. It works initially, but if I unplug the usb device it stops working and 2.0 ports don't work at all.

Any help is appreciated.

config.txt
drivers64uefi
kexts-other

README.md typo.

The config_patches.plist also contains the DSDT patches required to rename EHC1->EH02 and EHC2->EH02

should be

The config_patches.plist also contains the DSDT patches required to rename EHC1->EH01 and EHC2->EH02

(:

Solved-8086_a1af Not Working

Dell Precision 7920Tower
Cpu: Dual xeon silver 4116
Mojave 10.14.3
8086_a1af not working usb 3.0 devices. 2.0 devices works.

Fix for 10.13.5

Hi there, it seems like this does not work for 10.13.5 yet, can anyone verify?
I'm using MSI Z270i mobo.

not working with B360 chipset

macOS Mojave 10.14.1 has native support device id 0xa36d8086 in AppleIntelcnlusbxhci
I have installed USBInjectAll.kext in /Library/Extensions also apply clover kext patch
but can't get usb3.1 gen2 and usb3.1 work with 10Gbps or 5Gbps
they only can work with 480mbps
here is my ioreg
B360M-PRO4.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.