Jump to content

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


  • Please log in to reply
3 replies to this topic

#1
david_osx

david_osx

    InsanelyMac Protégé

  • Members
  • Pip
  • 33 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

Attached File  redcolorisremovedinfoor.png   125.83KB   313 downloads

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:
Attached File  mykextset.png   196.59KB   281 downloads

Here is the LegacyAppleYukon2.kext:
Attached File  LegacyAppleYukon2.kext.zip   1.19KB   301 downloads

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, 13 December 2011 - 04:33 AM.
images and legacy kext stored locally, legendary topic pinned


#2
Beerkex'd

Beerkex'd

    Content Provider

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 3,000 posts
  • Gender:Male
  • Location:Belo Horizonte - Brazil
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

#3
StingerAlex

StingerAlex

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 9 posts
Big, big Thanks!!!

My Yukon with P5K Deluxe WiFi started working just fine. As soon as I copy Legacy driver tree to Extensions Marvell was detected by the system.

Thanks!

#4
Gringo Vermelho

Gringo Vermelho

    The Jan Bird fix

  • Supervisors
  • 6,121 posts
  • Gender:Male
  • Location:Brazil
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





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy