Code Monkey home page Code Monkey logo

os-x-fake-pci-id's Introduction

FakePCIID.kext

The purpose of this kext is to attach to any IOPCIDevice so it can provide alternate PCI ID when another driver attached to the same device requests them. This technique can be used instead of patching binaries that may check for supported device-ids (or other PCI IDs) in their IOService::probe or IOService::start method.

In order to attach FakePCIID to a given IOPCIDevice, an injector kext must be built that IOKit can use to match against. The FakePCIID.kext Info.plist has no built-in IOKitPersonalities, as it is generic and not built to suit a specific purpose. The distribution ZIP provide has four such injector kexts, which are described below. Custom injector kexts can be created for other devices.

Note: FakePCIID_Intel_HD_Graphics.kext works for HD4400 mobile, HD4600 mobile, HD4200 mobile, and HD4600 desktop.

In any case, a DSDT patch, FakeID configuration (Clover), or FakeProperties dictionary in the injector's Info.plist will be required to inject the properties that FakePCIID can read on the IOPCIDevice. The properties used by FakePCIID are described later in this post. The properties must be present on the PCIDevice that is being hooked (the direct parent of FakePCIID).

Downloads:

Downloads are available on Bitbucket:

https://bitbucket.org/RehabMan/os-x-fake-pci-id/downloads/

How to Install

In all cases, FakePCIID.kext must be installed with a kext installer (such as Kext Wizard). The Release build should be used for normal installs. It has a minimum of output to system.log. For troubleshooting, the Debug build can be used.

The separate folder 'injectors' in the distribution zip contains two extra codeless kexts:

  • AppleIntelKBLGraphicsFramebufferInjector_3e9x.kext: Used for spoofing unsupported CoffeeLake as KabyLake

  • BroadcomWiFiInjector.kext: Used to load the native Broadcom WiFi kexts for unsupported devices. To be used with AirportBrcmFixup.kext as replacement for FakePCIID_Broadcom_WiFi.kext (both will work, but with AirportBrcmFixup.kext, full functionality of FakePCIID.kext is not needed)

In order to cause the kext to be loaded against a particular device, you must also install the appropriate FakePCIID injector kext. Currently, seven injectors are provided:

  • FakePCIID_Intel_HD_Graphics.kext (formerly FakePCIID_HD4600_HD4400.kext): This kext will attach to 8086:0412, 8086:0416, 8086:0a1e, 8086:041e, 8086:0a16, 8086:041a, 8086:016a, 8086:191d, 8086:162a, 8086:5917, 8086:3e91, 8086:3e92, 8086:1626, 8086:1616

    • 8086:0412 is HD4600 desktop (now the only GT2 device supported in Yosemite as of 10.10.2)
    • 8086:0a16 is HD4400 mobile.
    • 8086:0416 is HD4600 mobile.
    • 8086:0a1e is HD4200 mobile.
    • 8086:041e is HD4400 desktop.
    • 8086:041a is P4600 server.
    • 8086:016a is P4000 server.
    • 8086:191d is P530 server.
    • 8086:162a is P6300 server.
    • 8086:1616 is HD5500. Some CPUs (i3-5005U for example), must spoof as 0x1626 to avoid hang at boot
    • 8086:5917 is HD620 KabyLake-R.
    • 8086:3e91 is UHD630 CoffeLake (typical 3e91 with i3 or other low-end CPUs)

    For HD4600, normally fake device-id of 8086:0412 will be injected for Yosemite, as Yosemite does not natively recognize 8086:0416. 8086:0412 is the native device-id for HD4600 desktop. By injecting 0412, AppleIntelFramebufferAzul and AppleIntelHD5000Graphics will load. And since, FakePCIID will also be attached to these devices, it will successfully fool both kexts that the device an Intel HD4600 Desktop IGPU (0412).

    For P4000 support, inject device-id 0166 (HD4000). For P530 support, inject device-id 1912 (HD530). For P6300 support, inject device-id 1622 (HD6200) For HD620 KabyLake-R, inject device-id 5916 (HD620) For UHD630 CoffeeLake, inject device-id 3e92 (UHD630)

  • FakePCIID_Intel_HDMI_Audio.kext: This kext will attach to 8086:0c0c, 8086:9d70, 8086:9d71, 8086:9d74, 8086:a170, 8086:a171, 8086:a2f0, 8086:a348, or 8086:9dc8

    The purpose is to provide support for unsupported HDAU (native B0D3) or unsuppored HDEF (100-series, 200-series, 300-series) ) devices which provide HDMI-audio on Haswell(+) systems. 8086:0c0c is one such unsupported ID. The other two 8086:0d0c, and 8086:0a0c are supported. This kext, AppleHDAController, loads by PCI class, so you normally would not inject device-id for it, but to allow FakePCIID to work, you may need to inject RM,device-id (one of the supported IDs). By default for Haswell HDAU, the kext injects RM,device-id=<0c 0a 00 00> (0x0a0c). For 100-series and later HDEF, the kext injects RM,device-id=<70 a1 00 00> or <70 9d 00 00> depending on HDEF device-id (refer to the Info.plist).

    You can override it with a DSDT edit or ACPI injection via SSDT.

    For example (_DSM patch for HDAU device for FakePCIID and HDMI audio, if you wanted 0x0d0c instead of 0x0a0c):

into method label _DSM parent_adr 0x00030000 remove_entry;
into device name_adr 0x00030000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "RM,device-id", Buffer() { 0x0c, 0x0d, 0x00, 0x00 },\n
        "hda-gfx", Buffer() { "onboard-1" },\n
    })\n
}\n
end;

In the case of Skylake 8086:9d70 or 8086:1a70, it is attaching to the HDEF device (usually called HDAS, but renamed to HDEF to match what Aple expects). Skylake HDMI/DP audio codec is on HDEF along with onboard audio. It injects RM,device-id=<70 a1 00 00> for 0x9d70 and RM,device-id=<70 9d 00 00> for 0xa170. In other words, with these two device-ids, it will reverse them. Try it if you have everything set correctly for HDMI/DP audio, but it is not working. This was discovered by noting that Skylake HDMI audio works on the NUC6i7KYK (Skull Canyon), but not the other NUC6 devices. It is quite system dependent. Some computers need them swapped, others do not. So test both with and without.

This kext won't fix other problems/mistakes you may have with your HDMI/DP setup (eg. missing "hda-gfx", mismatched "layout-id" injection, incorrect or wrong framebuffer patches, or missing ACPI renames).

  • FakePCIID_AR9280_as_AR946x: This kext will attach to 168c:0034 or 168c:002a.

    This particular application of FakePCIID.kext is used in a situation where you have an AR9280 re-branded as some other device. For example, with the Lenovo u430, it is useful to rebrand an AR9280 ias an AR946x as that device is allowed by the BIOS whitelist where AR9280 is not. By using FakePCIID, we can remap the PCI IDs back to AR9280 (168c:002a) even though the device itself is reporting 168c:0034.

  • FakePCIID_Broadcom_WiFi.kext (formerly FakePCIID_BCM94352Z_as_BCM94360CS2.kext) This kext will attach to 14e4:43b1, 14e4:4357, 14e4:4331, 14e4:4353, 14e4:432b, 14e4:43ba, 14e4:43a3, or 14e4:43a0. And also 106b:4e, 14e4:4312, 14e4:4313, 14e4:4318, 14e4:4319, 14e4:431a, 14e4:4320, 14e4:4324, 14e4:4325, 14e4:4328, 14e4:432c, 14e4:432d.

    Originally created for BCM94352Z, this particular application of FakePCIID.kext is used to emulate an authentic Apple Airport Extreme, when using a variety of supported Broadcom WiFi devices.

  • FakePCIID_BCM57XX_as_BCM57765.kext: This kext will attach to numerous unsupported BCM57XX Ethernet devices in order to make the native drivers work for a wider variety of BCM Ethernet chipsets that are compatible, but not supported due to probe testing of PCI device-id/subdevice-id values. Further details here: http://www.tonymacx86.com/network/155984-fakepciid-broadcom-bcm57xx-network-oob.html

  • FakePCIID_Intel_GbX.kext: This kext will attach to a number of Intel Ethernet devices in an attempt to make the Small Tree drivers for Intel chipset based cards work. Further details here: http://www.tonymacx86.com/network/156135-intel-network-adapters-os-x-small-tree-drivers.html

  • FakePCIID_XHCIMux.kext This kext will attach to 8086:1e31, 8086:9c31, 8086:9cb1, 8086:9c31, and 8086:8cb1 This injector is a bit of an extension to normal FakePCIID duties. It doesn't actually fake any PCI IDs. Rather, it forces certain values to XUSB2PR (PCI config offset 0xD0) on the Intel XHCI USB3 controller. The effect is to route any USB2 devices attached to the USB2 pins on the XHC ports to EHC1. In other words, handle USB2 devices with the USB2 drivers instead of the USB3 drivers (AppleUSBEHCI vs. AppleUSBXHCI).

    So normally what is a complex "multiplex" DSDT patch (that is not well understood), is a simple kext install.

    Configuration properties and their defaults: RM,pr2-force <00 00 00 00>. By default forces all XHCI ports to route USB2 devices to EHC1. RM,pr2-init <01>. Will write RM,pr2-force value at startup if non-zero. RM,pr2-block <01>. Will block writes to XUSB2PR if non-zero. RM,pr2m-block <01>. No evidence that OS X drivers attempt to write XUSB2PRM (offset 0xD4), but since this kext relies on a valid value here (as provided by the BIOS), writes to it are blocked if non-zero. RM,pr2-honor-pr2m <01>: Changes to XUSB2PR will be masked by XUSB2PRM if this is non-zero. RM,pr2-chipset-mask: Writes to XUSB2PR are masked by this value. This is defined by the chipset documentation. Default value depends on chipset.

    Refer to Intel 7/8/9-series chipset data sheet for more info.

In order to create your own injector, you should be familiar with IOKit matching and kext Info.plist files. There is ample documentation available on developer.apple.com. Use the existing injectors as a template to build your own.

DSDT patches

FakePCIID.kext will return the vendor-id, device-id, subsystem-vendor-id, and subsystem-id as found in the IO registry under the associated IOPCIDevice. In order to provide the correct/supported values, _DSM injection is employed (or FakeID with Clover).

For example, this is one such patch that might be used for HD4600:

into method label _DSM parent_adr 0x00020000 remove_entry;
into device name_adr 0x00020000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "device-id", Buffer() { 0x12, 0x04, 0x00, 0x00 },\n
        "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x0a },\n
        "hda-gfx", Buffer() { "onboard-1" },\n
        "model", Buffer() { "Intel HD 4600" },\n
    })\n
}\n
end;

Note that the only property read by FakePCIID in the patch above is "device-id". Also the "device-id" injection could have been provided by Clover's config.plist (FakeID) or by (as an example) Chimera's IGPDeviceID flag.

The "device-id" property is used both by FakePCIID and by IOKit matching. Generally this is OK, but for flexibility you can specify a different IDs to be used by FakePCIID by using the "RM," prefixed properties.

So, a minimalist patch would be as follows:

into method label _DSM parent_adr 0x00020000 remove_entry;
into device name_adr 0x00020000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "RM,device-id", Buffer() { 0x12, 0x04, 0x00, 0x00 },\n
    })\n
}\n
end;

You would have to inject "device-id" and "ig-platform-id" to have working HD4600 using some other mechanism, of course. But FakePCIID.kext can do its work with only "RM,device-id".

And this is the patch used in the AR9280 as AR946x scenario:

into method label _DSM parent_label PXSX remove_entry;
into device label PXSX parent_label RP03 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "vendor-id", Buffer() { 0x8c, 0x16, 0x00, 0x00 },\n
        "device-id", Buffer() { 0x2a, 0x00, 0x00, 0x00 },\n
        "subsystem-id", Buffer() { 0x8F, 0x00, 0x00, 0x00 },\n
        "subsystem-vendor-id", Buffer() { 0x6B, 0x10, 0x00, 0x00 },\n
        "compatible", "pci168c,2a",\n
        "IOName", "pci168c,2a",\n
        "name", "pci168c,2a",\n
        "AAPL,slot-name", Buffer() { "AirPort" },\n
        "device_type", Buffer() { "AirPort" },\n
        "model", Buffer() { "Atheros 928x 802.11 b/g/n Wireless Network Adapter" },\n
    })\n
}\n
end;

For BCM94352Z as BCM94360CS2 the following DSDT patch is used:

into device Label PXSX parent_label RP03 replace_content begin
Method (_DSM, 4, NotSerialized)\n
{\n
	If (LEqual(Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
	Return (Package()\n
	{\n
		"vendor-id", Buffer() { 0xe4, 0x14, 0x00, 0x00 },\n
		"device-id", Buffer() { 0xa0, 0x43, 0x00, 0x00 },\n
		"subsystem-vendor-id", Buffer() { 0x6b, 0x10, 0x00, 0x00 },\n
		"subsystem-id", Buffer() { 0x34, 0x01, 0x00, 0x00 },\n
		"compatible", "pci14e4,43a0",\n
		"IOName", "pci14e4,43a0",\n
		"name", "pci14e4,43a0"
	})\n
}\n
end;

Please realize that the nodes PXSX and RP03 are specific to the subject DSDT. In this case a Lenovo u430 laptop.

Again, a minimalist patch for the WiFi scenario would look like this:

into method label _DSM parent_label PXSX remove_entry;
into device label PXSX parent_label RP03 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "RM,vendor-id", Buffer() { 0x8c, 0x16, 0x00, 0x00 },\n
        "RM,device-id", Buffer() { 0x2a, 0x00, 0x00, 0x00 },\n
        "RM,subsystem-id", Buffer() { 0x8F, 0x00, 0x00, 0x00 },\n
        "RM,subsystem-vendor-id", Buffer() { 0x6B, 0x10, 0x00, 0x00 },\n
    })\n
}\n
end;

Assuming that the function "compatible" served in the original example is with some other mechanism (an injector kext, or Clover configuration).

Properties supported by FakePCIID and their corresponding PCI configuration space offsets are listed below:

  • Offset 0x00: "vendor-id", "RM,vendor-id"
  • Offset 0x02: "device-id", "RM,device-id"
  • Offset 0x2c: "subsystem-vendor-id", "RM,subsystem-vendor-id"
  • Offset 0x2e: "subsystem-id", "RM,subsystem-id"

For more information on the PCI configuration space: http://en.wikipedia.org/wiki/PCI_configuration_space

Build Environment

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

32-bit Builds

This project does not support 32-bit builds, although it is probably not difficult to build one given the proper tools.

Source Code:

The source code is maintained at the following sites:

https://bitbucket.org/RehabMan/os-x-fake-pci-id

https://github.com/RehabMan/OS-X-Fake-PCI-ID

History

This kext was forked from the project originally named IntelHDMobileGraphics, and was first discussed here: http://www.tonymacx86.com/yosemite-laptop-support/145427-fix-intel-hd4400-hd4600-mobile-yosemite-47.html#post952079

The original repo is now renamed: https://github.com/the-darkvoid/OS-X-Fake-PCI-ID

So, originally a single purpose kext for Intel HD46000 graphics, it has been modified into a general purpose kext that can be used in many different scenarios.

Note: So far, https://github.com/the-darkvoid/OS-X-Fake-PCI-ID, and https://github.com/RehabMan/OS-X-Fake-PCI-ID are being kept in sync.

os-x-fake-pci-id's People

Contributors

rehabman avatar the-darkvoid 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

os-x-fake-pci-id's Issues

FakePCIID_XHCIMux.kext - no compatible dependency found for org.rehabman.driver.FakePCIID.

Hello

i found these errors when recreating the kernel cache:

Last login: Tue Jul 4 08:56:37 on console
MacBook-Air:~ manuel$ sudo touch /System/Library/Extensions && sudo kextcache -u /
Password:
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext Lilu.kext
FakePCIID_XHCIMux.kext - no compatible dependency found for org.rehabman.driver.FakePCIID.
FakePCIID_XHCIMux.kext is missing dependencies (including anyway; dependencies may be available from elsewhere)
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_XHCIMux.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_Intel_HD_Graphics.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_Broadcom_WiFi.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext ApplePS2Keyboard.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext ApplePS2Controller.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext ApplePS2SmartTouchPad.kext
kext-dev-mode allowing invalid signature -67013 0xFFFFFFFFFFFEFA3B for kext AppleMobileDevice.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext AppleBacklightInjector.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext PinConfigs.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext AppleALC.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext ACPIBatteryManager.kext
FakePCIID_XHCIMux.kext - no compatible dependency found for org.rehabman.driver.FakePCIID.
FakePCIID_XHCIMux.kext - no compatible dependency found for org.rehabman.driver.FakePCIID.
Prelink failed for org.rehabman.driver.FakePCIID.XHCIMux; omitting from prelinked kernel.
KernelCache ID: F9193654A6920FF2B623B392D52CCABC
MacBook-Air:~ manuel$

Could you advise what does it means ? Thank you

error.zip

Wi-Fi settings on Dell LATITUDE E7440

Hi

I have seen many explanations that confirm that it is possible to work with you Wi-Fi

Without having to use an external card!

I tried and did not work with me any way

Maybe the reason I did not do it right?

// Can you give me the right way to do it \

I desperately need your help, my friendMy device:

Dell LATITUDE

Core i-5 4th Gen

RAM 8 GB

256 GB SSD

btw I'm on High Sierra 10.13

FakePCIID with Ozmosis 1669M won't inject

Hello RehabMan

When using the following FakePCIID extensions:

FakePCIID.kext
FakePCIID_BCM57XX_as_BCM57765.kext
FakePCIID_XHCIMux.kext

Ozmosis 1669M fails to inject these Extensions from /EFI/Oz/Darwin/Extensions/Common/

The system just hangs on a black screen when booting, other kexts such as your branch of CodecCommander and FakeSMC work great as expected.

Do you have any ideas whats causing this? What logs/dumps might you need to help get this sorted out?

Is there anything else I can do to help?

Thanks in advanced.

Gratitude,
Robert aka Mrengles

Latest FakePCIID_Intel_HD_Graphics.kext doesn't work with Intel HD510

Hello Rehabman,

I have Intel HD510 on my Asus A456UR (proc: i5 6198DU) running Sierra 10.12.6.
The graphics is working fine with your FakePCIID_Intel_HD_Graphics.kext 1.3.7 (2017-0425) with additional IntelGFX FakeID inject 0x19128086 on Clover.

Then its broken with your FakePCIID_Intel_HD_Graphics.kext 1.3.8 and latest 1.3.9.
I spot that you add id 0x19128086 on IOPCIPrimaryMatch to the new kext plist (1.3.8 and later). I don't know why it broke the QE/CI on this graphic card.

Load the new kext (1.3.8-1.3.9) without injecting FakeID on Clover will result to no QE/CI display (It's show --> [IGPU] Graphics driver failed to load: could not register with Framebuffer driver! -- on Clover boot verbose log), while load the new kext with injecting FakeID 0x19128086 will result to full of glitch screen (It's seem QE/CI but with a ton of glitch artifact).

I have try to remove 0x19128086 from IOPCIPrimaryMatch on your latest kext, and load that with FakeID inject 0x19128086 on Clover, and the graphics card can load fine now.


I know it's uncommon graphic card used in market, and it will be hard for you to test if you don't have device with this graphic card. So I just want you know about this, and lookup the problem if necessary. Now i'm running well with the edited kext.

*Another info : I also used Lilu and IntelGraphicFixup, but it didnt change anything (Graphic still work fine with or without that).
Thankyou RehabMan, your work are always amazing.

Regards,
Heronimus.

FakePCIID_BCM57XXX

Not working on High Sierra. I guess it's because the AppleBCM5701Ethernet.kext doesn't exist in the S/L/E folder.

Boot hang

When I put FakePCIID.kext in /Library/Extensions (10.13.2), rebuild cache, and restart, the machine hangs on boot. If I boot to single-user mode, remove FakePCIID, rebuild cache, and restart, it's OK again. Is there some way to troubleshoot?

FakePCIID_Broadcom_WiFi doesn't load

Running Catalina on a mac pro 5,1 with the original BCM94322MC wifi card (14e4, 432b). Trying to fake the pci id so it will load the BRCM4360 kext and get continuity. FakePCIID.kext loads fine but no matter what I do it never loads FakePCIID_Broadcom_WiFi.kext injector. What am I missing?

less a issue but a question

hey rehabman,

i modified your code to get a injector working for the r9 390.

card sits in a real mac pro 3,1 and i'm not willig to change the amd kexts manually after every update.

i used the intel_hd_graphics injector as a template and changed it to this:

http://pastebin.com/fetRUbbF

however when installing the FakePCIID_R9_390_Graphics.kext and FakePCIID.kext the Mac will crash at boot until i remove the r9 390 and uninstall the kexts.

Can you give me a hint what i did wrong? Basically i just need the 390 (0x67b11002) to be recognized as a 290x (0x67b01002)

Cheers!

Auto Unlock gone on High Sierra for BCM94352Z

Before upgrading to High Sierra, Auto Unlock was shown as true in System Preferences, but not anymore after the upgrade. Is there some technical limitation? What does it take for a card to have support for Auto Unlock?

Do I need this in catalina?

Hello,

I need help to understand if my problem can be fixed using this kext.
Basically I've a working virtualized hackintosh using kvm and I'm attempting to pass through a Broadcom Inc. and subsidiaries BCM4360 802.11ac Wireless Network Adapter to my macosx catalina guest to get native wifi as well.

Bluetooth works out of the box but I've no wifi at all. The pci adapter is recognized but wifi is no working. As far as I know this kind of adapter should just works (TM) without any kext installed, or this is what it happens to metal hackintosh.
Instead I get this simple log at boot time

ARPT: 13.874602: Found chip of unknown type (0xffffffff) 
ARPT: 13.875093: wlcStart failed ARPT: 13.875354: AirPort_Brcm43XX::start: failed 
ARPT: 13.875815: Memory leak of bytes 116 (1) 
ARPT: 13.876139: AirPort_Brcm43XX::start: Failed 'startGated()'

I've tried to use clover to inject broadcom patches, air port fix but they are making any difference at all. Since Im pretty new to the whole hackintosh world I'm not sure if these kext are useless in catalina. Any help is appreciated. Thanks

BCM43142

My Broadcom Wi-Fi is BCM43142(14e4,4365). It's not on your list. How can I do? Can I just write it into the "IOKitPersonalities" in the "Broadcom_WiFi.plist"? If I can't, how can I do?
Thank you.

XHCIMux When there are no EHCI Controllers to Mix to

I have a new Gigabyte GA-Z170-HD3 Motherboard that I'm trying to setup Sierra on. Whilst trying to figure out my USB side of things, I found that to enable all the ports that I need, I will not be able to remain under the 15 port limit.

With this board, all USB2 and USB3 are handled by the XHC controller. There is no EHCI Controllers appearing in IORegistryExplorer or anywhere in the extracted DSDT.

So, I thought I would give this project a go to see if this could help me, but there doesn't seem to be any support for the 100-Series XHC Controller (8086:a12f).

Questions:

  • When using the XHCIMux kext, does there need to be an EHCI controller present for it to mix to?
  • Can the kexts be updated to support 100-Series Chipsets?

BCM5788 - Sleeping Issue

When my hackintosh goes to sleep, when it wakes back up, it says that the ethernet cable has been disconnected when it is still plugged in. This is only fixed by a reboot, then the ethernet works again until it sleeps again.

HD graphics 5500?

You have a config for it, can you please support it here? I have graphics working but not acceleration

Properties not being applied

I'm not quite sure I'm doing things right. I'm on El Capitan 10.11.1. And I have the FakePCIID kext installed in /Library/Extensions along with a modified version of the Broadcom Wifi injector kext. I'm trying to basically change the device ID of my card from (14e4,4329) to (14e4,4328) so that AppleAirPortBrcm43224 will load. I seem to have gotten FakePCIID to attached to it and putting properties onto the device, but they are the literal "RM,*" properties, and the real properties are not replaced. Am I missing a step?

I've tried to use Clover's FakeID feature as well as Clover's kext Info.plist patch, but neither work. The Clover Info.plist patch used to work before El Capitan, but it broke as soon as I upgraded.

The injector personality I'm using is as follows.

<key>IOKitPersonalities</key>
<dict>
    <key>Broadcom FakePCIID WiFi 43224</key>
    <dict>
        <key>CFBundleIdentifier</key>
        <string>org.rehabman.driver.FakePCIID</string>
        <key>FakeProperties</key>
        <dict>
            <key>RM,subsystem-id</key>
            <data>
            NAEAAA==
            </data>
            <key>RM,subsystem-vendor-id</key>
            <data>
            axAAAA==
            </data>
            <key>RM,device-id</key>
            <data>
            KEMAAA==
            </data>
            <key>RM,name</key>
            <string>pci14e4,4328</string>
        </dict>
        <key>IOClass</key>
        <string>FakePCIID</string>
        <key>IOMatchCategory</key>
        <string>FakePCIID</string>
        <key>IONameMatch</key>
        <array>
            <string>pci14e4,4329</string>
        </array>
        <key>IOProviderClass</key>
        <string>IOPCIDevice</string>
    </dict>
</dict>

I can see those values in IORegistryExplorer, but they don't seem to affect anything. Is it not being loaded soon enough or something?

screen shot 2016-04-09 at 10 35 49 pm

screen shot 2016-04-09 at 10 35 32 pm

OSX 10.11.1
Clover 3320
config.plist.txt

Adding support for Broadcom BCM94356ZAE?

Hello Rehabman,

I've got a Lenovo Thinkpad X260 laptop, using Broadcom BCM94356ZAE wifi adapter, with PCI Vendor ID 1434, Device ID 43ec. I've tried it on macOS 10.12.4 using your latest kexts and it seems doesn't work. Now my laptop has been reinstalled back to windows, so I'm not sure where the issue exists. But I've checked your Broadcom_WiFi.plist and I can't find this device ID (43ec). So...is it possible to add it directly into the plist?

Regards,
Jackson

Couldn't use HDMI output

The latest version of FakePCIID.kext (20170528) could not use HDMI Output for HD620 graphics. I try everything to make HDMI worked with FakePCIID.kext (20170528).

Force EHC to XHC

Hello,
I'm wondering if there Is a way to reverse the functionality of the mux: To move the EHCI USB2.0 Ports to be handled by the XHC driver?
I have the problem, that the EHCI will ignore my usbConnector value of 0xff. (Maybe because the ports are children of a hub).

Thank you for your help.

Rename FakePCIID_BCM57XX_as_BCM57765.kext

Hello RehabMan

Are you willing to rename FakePCIID_BCM57XX_as_BCM57765.kext like you have other extension names in the resent past? FakePCIID_Broadcom_Ethernet.kext would match up nicely with your other name changes.

Just a thought...

Gratitude,

Robert aka Mrengles

BCM94352z couldn't find WiFi networks

I have a BCM94352z and I flashed a new BIOS whitelist to make it work in my Lenovo PC.

What i have done:

  • I installed FakePCIID.kext and FakePCIID_Broadcom_WiFi.kext (WiFi) ,BrcmPatchRAM2.kext and BrcmFirmwareRepo.kext (Bluetooth) in SLE.

  • I ran a shell script (wireless_bcm94352-110-v4.0c 2.command) which you can find at wireless_half-mini to patch my Airport and 5 GHz

What i have got is that my computer can find my WiFi and Bluetooth (Can show it normally at Menu Bar but yellow in System Preferences/Network) and WiFi always in "Looking for networks" ,Bluetooth always in the "Loading" without a result.

This is my issue.

FakePCIID XHCI Mux makes USB 3.0 ports unstable in 8-series and 9-series

I tried using XHCI Mux on 8-series laptops with 10.10, the USB wifi in 3.0 port is routed to EHCI correctly, but the result is USB wifi disconnected sometimes. I removed XHCI Mux and it is stable now.

In Macbook pro 2015, I even don't see EHCI controller. All USB 2.0 ports are controlled by XHCI.

[Test] FakePCIID for QCA9565

Hello,
I just wanted to know how I could write a FakePCIID injector for my WLAN card.
I saw from here (original source: here) that I could _PROBABLY_ (I suppose to have a really few chances) that I could fake my device (QCA9565 [168c:0036]) with the AR9285 ([168c:002b]).
I know that probably (almost for sure) it won't work, but I wanted to give it a try.
I've been starting looking at your injectors, but I hope you could help me!

Certain colors of Blue in Safari crash Hackintosh

So randomly, I came across this issue where if you search oxycodone in Safari, I get a system wide freeze. I confirmed that this issue is caused by the special shade of blue that appears on the side of the webpage (see my screenshot from my iPhone that is attached). It appears that any time that Safari will display this color, it will immediately freeze the display. I would then have to hard power-off my computer. I have tried to recreate this issue in other Applications such as Chrome and Photoshop, but cannot recreate this error.

Another thing, I can confirm that the built in drivers for the 4400 and my GTX 1050Ti are unaffected by this.

Now down to specs and settings I am running:
H97 (UEFI) Chipset 1150
Intel Core i3 4160 with Intel HD 4400 Graphics

Current FakePCIID Kexts from RehabMan (Installed in /System/Library/Extensions and Clover/10.12/Kexts)
Intel GFX 0x04128086
ig-platform-id 0x0d220003

Clover and Screenshot attached!

And before judging me for searching oxycodone, I was simultaneously looking up what killed Heath Ledger and wanted to know what it was.
Clover.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.