Jump to content



Member Since 06 Aug 2006
Offline Last Active Private

Topics I've Started

MLWrapper: a 64bits wrapper to load incompatible kexts in ML (Exemple code included!)

26 August 2012 - 03:07 PM

Hello, happy developers! :)

I hiope this topic will not be just a waste of time for you, but following this topic and the release by Netkas of a 32 bits ML kernel, came to my mind a strange idea, i''m just a noob but following my message someone encouraged me to submit my idea to Slice, just in case...

Here's the message i sent to him, it exposes my idea, but the answer from Slice is far better in the sense in that it opens a practical way to make this simple noob idea an eventual reality, it doesn't implies that Slice is supporting or approve my idea in any way, it just explains things better:


I hope this message will not be a waste of time for you, i would be very sorry about that because i as i said elsewhere i'm really admirative and respectful about the work of developers like you, without humans like you there's simply no osx86 and no community, just a massive bunch of newbies and wannabes that try to convince themselves that they are interesting.... lol!

Here is the facts: with the release of ML, a lot of people (including regular apple users) feel angry, frustrated and/or abandoned by apple because their hardware is simply too old or incompatible with the last release. Their hardware are incompatible because the drivers are 32 bits only, or because they have 32 bits efi, etc... As an exemple amongst many, many others you could read
this article of blog, it have beaten some records of frequentation since the publication of this tutorial! So my conclusion is that a LOT of people is concerned, not just osx86 community.

So here's my idea: instead of creating legacy kernels that will soon be rendered obsolete by future updates (apple says they will release one major update per year!), is it possibe to imagine a 64 bits wrapper, in the form of a generic kext, capable of loading 32 bits (old or incompatible) kexts?

What i call a "wrapper" in my noob language could play the role of a proxy between the kernel and an incompatible kext, with it we could be able to load a 32 bit kext in a 64 bit "space".

The result could take the form of a kext where we could put our 32 bits kexts inside a folder called, for exemple, "plugins", because in fact the 32 bit kext becomes a plugin of the 64 bit wrapper kext.

the post i've written about it, you will see that i'm deeply interested by the subject, because i'm stuck with my incompatible nvidia 7600 gs, so for now there's no way for me to really play with and enjoy ML with QE/CI...

I'm just a noob and perhaps this is only a stupid idea, if this is the case please accept my apologies!

And (with his permission) here's the Slice's answer:


Yes, your idea is entitled to be. As far as I understand there is some workaround in the kernel to start 32-bit application with 64-bit kernel. Why not a kext?
Such wrapper should have multiple instances, one for each superclass you want to execute as 32bit.
For example, if some application calls IOEthernetControllerClass it should calls wrapper and it calls your driver.
In terms of C++ you have to create subclass instances.

About 7600GS it is strange why NVidia do not produce 32-bit drivers. I checked in Lion with 7300LE. Version 270 works in 64bit, but crashes in 32bit. So I understand you. It is only reason why you can't use ML. Mmmm.... another reason is Attansic? Twice bad.

This is very complex subject and I feel my skill is not enough to do something here. Anybody else? I can help if I'll see that I can help.

(/Off-topic note: about the Attansic/Atheros L1, the problem can be solved by using AttansicL1Ethernet.kext from SL and PCIRootUID=1)

So what's your thoughts about this?

About nvidia incompatibilities with ML, you could read also this article, interesting in the sense that we can see that the problem with nvidia is more complex than just a 32bits/64bits issue.

In any case, i'm available for testing/anything, but of course i can't help for programming, because i'm only a dumb and useless musician, sorry... :afro:

The goal is to find a global and sustainable solution, not just for me or for osx86 but also for regular apple users who suffer of incompatibilities between their (not so old, after all!) hardware and Mountain Lion.

- - - - - - -

EDIT 09-12-12:

I have EXCELLENT news! :) I've found an actual exemple of what a wrapper could look like: it's called nspluginwrapper (see attached file), and it's used to load 32bits plugiins, like flash for exemple, in 64 bits browsers! Of course it is really focused on NPAPI, so it could not be usable "as is", but... but... this is for me a "proof of concept", and i'm sure we could find other examples in the Linux world... A good start point for possible genius developers?

:superman: :superman: :superman:

- - - - - - -
© 2017 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy