Jump to content

[How-To] make a legacy kext - Marvell Yukon 88E8056


7 posts in this topic

Recommended Posts

Maxiums II formula with Marvell yukon 88E8056 and how to make Legacy kext...

 

 

Finally I've got my marvell yukon 88E8056 to work OK with leopard by making a legacy kext, so called plist kext.

After some resarch about how to make legacy kext and of course getting help on irc, specillay of the great chameleon team members, they know who.. Thanks guys!! :)

I've now made a legacy kext for appleyukon2 :D is working for me and going to work for you too guys...

 

 

For those who still don't know what a legacy kext is or the benefit of a legacy kext, WELL IT'S BIGGER THEN YOU THINK!!

Legacy kext had not be possible without 132 boot method (vanilla kernel ), PC_EFI and Chameleon Bootloader of course... Great and amazing work.

 

Imaging no need to patch some kext no more after every system update like 10.5.1 (2,3,4,5) 10.5.6 and newer...

Now it's possible thanks to the hard work of these passioned guys.

 

 

 

Now about legacy kext..

 

This is the most basic info about legacy kext and I'm sure there is more to tell about it but this will do for regular users...

 

1. A legacy kext is simple a plist kext that you will only going to add your device id to so the plist can add, point, redirect your device for the original kext and get the device loaded and functional, we are talking ata/ahci/jmicron/network, make ahci drives internal and others like AppleHDA.

 

2. With legacy kext there will be no need no more to patch the original kext in this cause AppleYukon2.kext and that is great for future updates that eventually going to update the original patched kext and break the patch.

 

 

 

Well to make a legacy kext (plist kext) for some devices that you like to have working after new System update is not that hard like it's going to be the first time you trying to do it, mostly difficult for new begins and people that won't use google first before asking/posting in the thread.

 

So please use Google and then irc like irc.osx86.hu #Hackint0sh then back here later and post if must, not sure that I can help but if I could then sure.

 

 

 

So time to learn about:-

1- How to make legacy kext. As detailed it should I could and if you know how to make legacy kext you don't need to read more and simple jump to section 2!

2- What things that is needed for Marvell yukon 88E8056 to work finally right on Leopard.

 

 

1. Legacy kext walkthrough..

 

Simple to make a legacy kext of an original kext that you want to, need to use with (132 boot, /Extra folder, Extensions.mkext) is by copying that original kext on a safe place in our cause is only the AppleYukon2.kext that is inside IONetworkFamily.kext/Contents/PlugIns (so you do not edit the original kext by mistake) and editing plist.info file in that kext (AppleYukon2.kext copy version) and removing/changing some lines that is already in the original kext and add your device id so the legacy/plist kext can in order load your device id to the original kext properly and without any patching when the system start.

 

A. Make a new folder at the Desktop and name it ( legacykextfolder, for example).

Now you are going to copy your own AppleYukon2.kext from /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleYukon2.kext to that folder you just made and change the kext name to LegacyAppleYukon2 or witch name you think is best and start editing the plist.info file.

 

B. In terminal simple wright:

- sudo nano /Users/User Name/Desktop/legacykextfolder/LegacyAppleYukon2.kext/Contents/Info.plist and start change, remove the following lines.

 

1- Remove these lines:

<key>CFBundleExecutable</key>

<string>AppleYukon2</string>

<key>CFBundleGetInfoString</key>

<string>Apple Yukon Ethernet 3.1.10b2, Copyright 2007 Apple Inc., and Marvell</string>

 

And the rest of the devices that is not yours and you simple don't want them there...

For example: take a look here

post-378074-0-26460100-1323749218_thumb.png

 

2- Change these lines:

<key>CFBundleIdentifier</key>

<string>com.apple.iokit.AppleYukon2</string> will be

<string>marvell.iokit.AppleYukon2</string> you have to change a bit otherwise there will be no different and the legacy kext fails.

 

( com.apple was removed here and add just marvell. ) etc for the rest...

 

3-

<key>CFBundleName</key>

<string>Apple-Marvell Yukon-2 Gigabit Ethernet Driver</string> change to

<string>Yukon-2 Gigabit Ethernet Driver</string>

 

4-

<key>CFBundleShortVersionString</key>

<string>3.1.10b2</string> change to

<string>3.1.0</string>

 

5-

<key>CFBundleVersion</key>

<string>3.1.10b2</string> change to

<string>3.1.1</string>

 

( I could had use 3.1.1 on both 4- and 5- just forgot at the moment or 3.1.10 or 1.0.0 or what you like, it doesn't matter what number you choose because the plist.info is going to choose/load the latest version in the original kext anyway...)

 

6- Add your device id, in this cause marvell yukon 88E8056.

<key>Yukon-88E8056</key>

<dict>

<key>CFBundleIdentifier</key>

<string>com.apple.iokit.AppleYukon2</string>

<key>EnableLowPwr</key>

<integer>1</integer>

<key>IOClass</key>

<string>yukon2osx</string>

<key>IOPCIPrimaryMatch</key>

<string>0x436411ab</string>

<key>IOProviderClass</key>

<string>IOPCIDevice</string>

<key>MACNumber</key>

<integer>1</integer>

<key>Model</key>

<string>Yukon Gigabit Adapter 88E8056 Singleport Copper SA</string>

<key>NetworkNumber</key>

<integer>1</integer>

<key>Vendor</key>

<string>Marvell</string>

</dict>

 

7- The las changes.

<key>OSBundleRequired</key>

<string>Network-Root</string> change to

<string>Root</string>

 

After all these changes is time to save the changes and quit from terminal.

So still in terminal wright:

1. Ctrl O --(like word OS)

2. Enter --to save changes

3. Ctrl X --to quit.

 

Now you are finally done with a Legacy kext so called plist kext and learned how to make one so be happy :)

It's the basic rules for making legacy kext of network kext to ata/ahci/jmicron/ but not AppleHDA really, not that simple so let that for the Pro guys...

Of course you can always look at my kext and compare the result if you want, that is only for LegacyAppleYukon2.kext of course.

 

 

 

 

--What kext is needed beside the LegacyAppleYukon2.kext we just made--

 

2. Making Marvell yukon 88E8056 works on Leopard.

What needed is simple pc-efi v9 or a compatible boot loader with (/Extra folder) and using the Extentions.mkext file, has to be in mkext format!!

 

A. What the most guys have missing beside how to make a real legacy kext, including me is that LegacyAppleYukon2.kext has depends on both IONetworkingFamily.kext and IOPCIFamily.kext and these 2 kext MUST be in the Extensions.mkext along with LegacyAppleYukon2 in order to let LegacyAppleYukon2 been loaded properly.

 

B. You can copy,use both (IONetworkingFamily.kext and IOPCIFamily.kext) from the latest 10.5.6 and include them in the Extensions.mkext and you are good to go. There is no need for those other kext inside /Plugins other then your AppleYukon2 of course so you can remove them safely if you want. We are talking about a copied version that is in your created folder for those kext that your going to make Extension.mkext of, not the real IONetworkingFamily.kext inside the /System/Library/Extensions

Take a look here:

post-378074-0-22656700-1323749231_thumb.png

 

Here is the LegacyAppleYukon2.kext:

LegacyAppleYukon2.kext.zip

 

I used very handy tool of PCWiz, MKext Tools, BIG thanks for his tool that made the job easier and fun :)

 

 

Down to known issue here that is not really a big deal or issue...,

 

I gets these on my system and evan real macs dose...

 

2 errors for me:

AppleYukon2: 81f81043,00000000 sk98osx_dnet - CheckDictionaryEntry failed, expected vs. dictionary

AppleYukon2: 81f81043,00000000 sk98osx_dnet - CheckDictionaryEntry failed, expected vs. dictionary

 

And after some lines gets 2 more:

AppleYukon2: 00000000,00000000 sk98osx_dnet - recovering from missed interrupt

AppleYukon2: 00000000,00000000 sk98osx_dnet - recovering from missed interrupt

 

That's it and my connection is not slow or something, it work like it should and I gets my full speed like it dose on Windows...

 

You can Google these errors and read about them if you want and I hope someone has a fix or so, I don't know how to fix it anyway...

 

 

Just giving something back for this great community and thanks for all folks behind it :)

Thanks for me and keep up good work..

Edited by Gringo Vermelho
images and legacy kext stored locally, legendary topic pinned
Link to comment
Share on other sites

  • 2 weeks later...

This is great, thanks for sharing. I've made my own and it works well on ASUS P5Q-E too.

 

It works fine from /Extra/Extensions (mkext is not necessary), there's a related "not available in early boot" error during boot but it loads eventually.

 

I'm not seeing the CheckDictionaryEntry failed message, and I haven't seen the interrupt error since I did this:

http://www.insanelym...howtopic=140085

Link to comment
Share on other sites

  • 1 year later...
  • 11 months later...

Note to any newcomers - the basic principles of making a legacy kext are still the same today as they were back in March 2009.

 

Note that while it's true that AppleYukon2 depends on both IONetworkingFamily.kext and IOPCIFamily.kext it is not necessary to place those in /Extra/Extensions or /Extra/Extensions/Extensions.mkext when using the legacy kext attached up there.

 

And by the way, yes, this particular legacy kext still works in Mountain Lion!

 

Here's another topic on how to make a Legacy kext, courtesy Prasys:

http://www.projectos...p?showtopic=798

Link to comment
Share on other sites

  • 5 years later...
  • 1 year later...
On 2/26/2017 at 8:09 AM, Slice said:

Many years after that I can say that with Clover there is another way:

FakeID=0x435411ab

Tested in ElCapitan, works fine.

 

Thanks

it is strange

both 4354 and 4362 are in original Apple kext

but device id = <54430000> works Ok

<62430000> does not

what is the difference?

real card id is 4364

PCI (00|03:00.00) : 11AB 4364 class=020000

4:244  0:000   - LAN: 0 Vendor=Marvell

or

03:00.0 Ethernet controller [0200]: Marvell Technology Group Ltd. 88E8040 PCI-E Fast Ethernet Controller [11ab:4354] (rev 12) (subsys 1043:81f8)

 

533215998_2019-01-1215_34_00.thumb.png.2069ff6316435f583c35b2d425a82491.png

Link to comment
Share on other sites

 Share

×
×
  • Create New...