david_osx Posted March 16, 2009 Share Posted March 16, 2009 (edited) 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 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 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: 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 December 13, 2011 by Gringo Vermelho images and legacy kext stored locally, legendary topic pinned Link to comment Share on other sites More sharing options...
Beerkex'd Posted March 29, 2009 Share Posted March 29, 2009 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 More sharing options...
StingerAlex Posted January 9, 2011 Share Posted January 9, 2011 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! Link to comment Share on other sites More sharing options...
Gringo Vermelho Posted December 13, 2011 Share Posted December 13, 2011 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 More sharing options...
Slice Posted February 26, 2017 Share Posted February 26, 2017 Many years after that I can say that with Clover there is another way: FakeID=0x435411ab Tested in ElCapitan, works fine. 2 Link to comment Share on other sites More sharing options...
Rodion2010 Posted January 12, 2019 Share Posted January 12, 2019 (edited) LegacyAppleYukon2.kext.zip updated and working for newer systems this way works too Ioreg: device-id is shown as Unicode bytes but it works Edited January 12, 2019 by Rodion2010 Link to comment Share on other sites More sharing options...
Rodion2010 Posted January 12, 2019 Share Posted January 12, 2019 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) Link to comment Share on other sites More sharing options...
Recommended Posts