Contribute
Register

Intel Network adapters on OS X: Small Tree drivers

So put card back in Mac -

Went into kext-dev-mode=1
Rebooted in Safe Mode
Ran that command - saw a number of items get 'omitted'
Rebooted normal

Still nothing in Network Prefs

Don't use safe mode.

Console shows a new weird entry during restart:

9/29/15 4:54:53.000 PM kernel[0]: considerRebuildOfPrelinkedKernel org.rehabman.driver.FakePCIID triggered rebuild

It is telling you that FakePCIID wasn't in the kernel cache.
 
OK so here's the last reboot details:

9/29/15 5:03:33.892 PM stackshot[98]: Timed out waiting for IOKit to finish matching.
9/29/15 5:03:35.133 PM com.apple.kextd[49]: kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext "/System/Library/Extensions/FakePCIID.kext"
9/29/15 5:03:35.000 PM kernel[0]: SmallTreeIntel8259x probe b3d0f0: Unsupported Card 0x17d3
9/29/15 5:03:35.000 PM kernel[0]: SmallTreeIntel8259x probe b3d0f1: Unsupported Card 0x17d3
9/29/15 5:03:35.000 PM kernel[0]: SmallTreeIntel8259x freeResources b3d0f1: Entered freeResources
9/29/15 5:03:35.000 PM kernel[0]: SmallTreeIntel8259x freeResources b3d0f0: Entered freeResources
9/29/15 5:03:35.000 PM kernel[0]: FakePCIID v1.0 starting.
9/29/15 5:03:35.000 PM kernel[0]: FakePCIID v1.0 starting.

then eventually

9/29/15 5:05:25.000 PM kernel[0]: considerRebuildOfPrelinkedKernel org.rehabman.driver.FakePCIID triggered rebuild

Thanks again!

FakePCIID must be built into kernel cache.
 
I don't have a 10gbe card yet to test this, but I'm looking to order one soon.

What about modifying the SmallTree kext plist to include a dependency on fakepciid to ensure it's loaded first, using osbundlelibraries? Is there a check in the smalltree kext to make sure the plist hasn't been modified?

https://developer.apple.com/library...tual/IOKitFundamentals/Families/Families.html

I doubt the kext checks for Info.plist changes.

Note: It is not clear that when the documentation says the dependencies will be "loaded before" that it means the dependent objects will be "started before". Loading the code and starting the object are two separate things.
 
Hello,

since several weeks I try to get FakePCIID working for my dual NIC HP NC360T on OS X 10.11.2 / Clover. The AppleIntel8254XEthernet.kext doesn’t work reliable on my GA-Z68MX-UD2H-B3 - yesterday I installed the new AppleIntelE1000e.kext which seems to work so far with Link Aggregation. On my GA-Z77X-UD5H both of these kexts do not work with Link Aggregation.

For this reasons I try to install the SmallTree kext.

That's what I have done so far:

- added Vendor-Device-IDs 0x105e8086 for the HP NC360T to IOPCIPrimaryMatch of FakePCIID_Intel_GbX.kext:
<key>IOPCIPrimaryMatch</key>
<string>0x105e8086 0x10c68086 ….</string>

- installed FakePCIID_Intel_GbX.kext, FakePCIID.kext, SmallTreeIntel8254x.kext with KextBeast to /Library/Extensions
- Boot without caches („-f“)
- sudo touch /System/Library/Extensions && sudo kextcache -u /
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext realtekALC.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext LPCSensors.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext GPUSensors.kext
kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext FVInjector.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakeSMC.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_Intel_GbX.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext CPUSensors.kext
kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext AppleHDA898.kext
kext file:///Library/Extensions/AHCI_3rdParty_SATA.kext/ is in hash exception list, allowing to load
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext ACPISensors.kext
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext IONetworkingFamily.kext
AppleDataSetManagement.kext - dependency for com.apple.iokit.IOAHCIBlockStorage lacks valid OSBundleCompatibleVersion.
AppleDataSetManagement.kext is missing dependencies (including anyway; dependencies may be available from elsewhere)
AppleDataSetManagement.kext - dependency for com.apple.iokit.IOAHCIBlockStorage lacks valid OSBundleCompatibleVersion.

- reboot

sudo cat /var/log/system.log | grep -i fakepciid
Dec 31 17:11:39 localhost kernel[0]: FakePCIID: FakePCIID::init() <ptr>
Dec 31 17:11:39 localhost kernel[0]: FakePCIID: Version 1.2.4 starting on OS X Darwin 15.2.
Dec 31 17:11:39 localhost kernel[0]: FakePCIID: FakePCIID::attach() <ptr>
Dec 31 17:11:39 localhost kernel[0]: FakePCIID: FakePCIID::detach() <ptr>
Dec 31 17:11:39 localhost kernel[0]: FakePCIID: FakePCIID::attach() <ptr>
Dec 31 17:11:39 localhost kernel[0]: FakePCIID: FakePCIID::start() <ptr>
Dec 31 17:11:39 localhost kernel[0]: FakePCIID: FakePCIID::init() <ptr>
Dec 31 17:11:39 localhost kernel[0]: FakePCIID: Version 1.2.4 starting on OS X Darwin 15.2.
Dec 31 17:11:39 localhost kernel[0]: FakePCIID: FakePCIID::attach() <ptr>
Dec 31 17:11:39 localhost kernel[0]: FakePCIID: FakePCIID::detach() <ptr>
Dec 31 17:11:39 localhost kernel[0]: FakePCIID: FakePCIID::attach() <ptr>
Dec 31 17:11:39 localhost kernel[0]: FakePCIID: FakePCIID::start() <ptr>
Dec 31 17:15:23 localhost kernel[0]: FakePCIID: FakePCIID::init() <ptr>
Dec 31 17:15:23 localhost kernel[0]: FakePCIID: Version 1.2.4 starting on OS X Darwin 15.2.
Dec 31 17:15:23 localhost kernel[0]: FakePCIID: FakePCIID::init() <ptr>
Dec 31 17:15:23 localhost kernel[0]: FakePCIID: Version 1.2.4 starting on OS X Darwin 15.2.
Dec 31 17:15:23 localhost kernel[0]: FakePCIID: FakePCIID::attach() <ptr>
Dec 31 17:15:23 localhost kernel[0]: FakePCIID: FakePCIID::detach() <ptr>
Dec 31 17:15:23 localhost kernel[0]: FakePCIID: FakePCIID::attach() <ptr>
Dec 31 17:15:23 localhost kernel[0]: FakePCIID: FakePCIID::detach() <ptr>
Dec 31 17:15:23 localhost kernel[0]: FakePCIID: FakePCIID::start() <ptr>
Dec 31 17:15:23 localhost kernel[0]: FakePCIID: FakePCIID::attach() <ptr>
Dec 31 17:15:23 localhost kernel[0]: FakePCIID: FakePCIID::start() <ptr>

BUT: The SmallTree kext doesn’t load (no entries in system.log) and FakePCIID does not do it’s job.

Can you help please? I have no more ideas, where to start....

Thanks

Oliver
 

Attachments

  • Computer.ioreg
    7.2 MB · Views: 297
Hello,

since several weeks I try to get FakePCIID working for my dual NIC HP NC360T on OS X 10.11.2 / Clover. The AppleIntel8254XEthernet.kext doesn’t work reliable on my GA-Z68MX-UD2H-B3 - yesterday I installed the new AppleIntelE1000e.kext which seems to work so far with Link Aggregation. On my GA-Z77X-UD5H both of these kexts do not work with Link Aggregation.

For this reasons I try to install the SmallTree kext.

That's what I have done so far:

- added Vendor-Device-IDs 0x105e8086 for the HP NC360T to IOPCIPrimaryMatch of FakePCIID_Intel_GbX.kext:
<key>IOPCIPrimaryMatch</key>
<string>0x105e8086 0x10c68086 ….</string>

There are two places that the ID must be added.
 
There are two places that the ID must be added.

Oh, and where?

In a kext linked to this thread there was a version with two places:

<key>IOKitPersonalities</key>
<dict>
<key>Intel GbX</key>
<dict>
<key>CFBundleIdentifier</key>
<string>org.rehabman.driver.FakePCIID</string>
<key>IOClass</key>
<string>FakePCIID</string>
<key>IOMatchCategory</key>
<string>FakePCIID</string>
<key>IOPCIPrimaryMatch</key>
<string>0x10c68086 0x10c78086 0x10c88086 0x10ec8086 0x10d88086 0x10fb8086 0x10f18086 0x151c8086 0x150b8086 0x15288086 0x10fc8086 0x15608086</string>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>RM,Version</key>
<string>FakePCIID_Intel_GbX 1.0</string>
</dict>
<key>Intel GbX Properties</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleUSBMergeNub</string>
<key>IOClass</key>
<string>AppleUSBMergeNub</string>
<key>IOPCIPrimaryMatch</key>
<string>0x10c68086 0x10c78086 0x10c88086 0x10ec8086 0x10d88086 0x10fb8086 0x10f18086 0x151c8086 0x150b8086 0x15288086 0x10fc8086 0x15608086</string>
<key>IOProbeScore</key>
<integer>9001</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>IOProviderMergeProperties</key>
<dict>
<key>RM,subsystem-id</key>
<data>
CgAAAA==
</data>
</dict>
</dict>
</dict>

... but the Intel GbX Properties-Key has been removed in the newer versions. Should I use the old version of the kext?

Best regards & thank you for your quick answer!

Oliver
 
Oh, and where?

In a kext linked to this thread there was a version with two places:

<key>IOKitPersonalities</key>
<dict>
<key>Intel GbX</key>
<dict>
<key>CFBundleIdentifier</key>
<string>org.rehabman.driver.FakePCIID</string>
<key>IOClass</key>
<string>FakePCIID</string>
<key>IOMatchCategory</key>
<string>FakePCIID</string>
<key>IOPCIPrimaryMatch</key>
<string>0x10c68086 0x10c78086 0x10c88086 0x10ec8086 0x10d88086 0x10fb8086 0x10f18086 0x151c8086 0x150b8086 0x15288086 0x10fc8086 0x15608086</string>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>RM,Version</key>
<string>FakePCIID_Intel_GbX 1.0</string>
</dict>
<key>Intel GbX Properties</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleUSBMergeNub</string>
<key>IOClass</key>
<string>AppleUSBMergeNub</string>
<key>IOPCIPrimaryMatch</key>
<string>0x10c68086 0x10c78086 0x10c88086 0x10ec8086 0x10d88086 0x10fb8086 0x10f18086 0x151c8086 0x150b8086 0x15288086 0x10fc8086 0x15608086</string>
<key>IOProbeScore</key>
<integer>9001</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>IOProviderMergeProperties</key>
<dict>
<key>RM,subsystem-id</key>
<data>
CgAAAA==
</data>
</dict>
</dict>
</dict>

... but the Intel GbX Properties-Key has been removed in the newer versions. Should I use the old version of the kext?

Best regards & thank you for your quick answer!

Oliver

Sorry, I was thinking of a different FakePCIID injector or was looking at an old version someone posted.

The current version requires only the single entry. Using UsbMergeNub was determined to be unreliable, hence FakeProperties.
 
Sorry, I was thinking of a different FakePCIID injector or was looking at an old version someone posted.

The current version requires only the single entry. Using UsbMergeNub was determined to be unreliable, hence FakeProperties.

Do you have another idea, why the injection doesn't seem to work in my case?
 
Do you have another idea, why the injection doesn't seem to work in my case?

Make sure you installed the kext correctly.

Verify when you rebuild cache....

Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /

Check in ioreg to see if the kext is attaching to the device.
 
Back
Top