Jump to content
Welcome to InsanelyMac Forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
Sign in to follow this  
dm_webd

Natit.kext - Titan imitation with source.

83 posts in this topic

Recommended Posts

Well, I've made this kext from the specifications listed by Omni. It's probably not as elegant as his, but this is my first time doing any IOKit development. Also C++ is not my native language, so I can surely say I've learned alot doing this.

The code is kind of messy, and I hope to clean it up and add new features.

In addition to what is described by Omni, I've only made one addition: looking up the chipset name from the device-id.

I've made it ease to add new types of strings and fboffsets.

Maybe I've made some mistakes - if so, I hope some of you more experienced can help point them out.

 

I've attached both source and a precompiled kext.

 

Please report back any results from trying this kext and experimenting with it.

(Remember to move Titan.kext out of the extensions folder if you try this one to prevent both from loading.)

 

Enjoy. :)

Natit.zip

Natit.kext.zip

Share this post


Link to post
Share on other sites
did it work for you?

It does the same as omni's kext for me. I don't have kernel 10.4.8, so I only get basic functionality like resolution switching, power management and sleep mode. But I see no reason why it shouldn't work like Omni's on a real 10.4.8 kernel, as it puts in the same entries to the IORegistry.

Also there's two commented out lines in the source that might give multi-monitor support, if someone want to experiment with it.

It would be nice if someone with the 10.4.8 kernel could try this.

Share this post


Link to post
Share on other sites
It does the same as omni's kext for me. I don't have kernel 10.4.8, so I only get basic functionality like resolution switching, power management and sleep mode. But I see no reason why it shouldn't work like Omni's on a real 10.4.8 kernel, as it puts in the same entries to the IORegistry.

Also there's two commented out lines in the source that might give multi-monitor support, if someone want to experiment with it.

It would be nice if someone with the 10.4.8 kernel could try this.

 

i test it ... it works :)

 

 

{censored} that i dont have enough experience in programming :)

Share this post


Link to post
Share on other sites
i test it ... it works ;)

Great, thanks for the quick test. :)

Now I just have to wait for a SSE2 enabled kernel.

But anyway, I probably can't keep myself from experimenting with this until then - this messing around with kernels and drivers is fun. :D

Share this post


Link to post
Share on other sites
Could this work with older Nvidia cards? Like the GeForce 3 Ti 200? ;)

great job, btw. :)

I think it might be possible to make it work, but I'm not sure. Also, I don't have such a card to test on. The device-id is listed in NVDANV20Hal.kext. I think perhaps the property "compatible" might need to be changed, but that's only a guess.

 

--- Edit ---

I just checked some things, and I think It'll be hard to get working.

Share this post


Link to post
Share on other sites
Well, I've made this kext from the specifications listed by Omni. It's probably not as elegant as his, but this is my first time doing any IOKit development. Also C++ is not my native language, so I can surely say I've learned alot doing this.

The code is kind of messy, and I hope to clean it up and add new features.

In addition to what is described by Omni, I've only made one addition: looking up the chipset name from the device-id.

I've made it ease to add new types of strings and fboffsets.

Maybe I've made some mistakes - if so, I hope some of you more experienced can help point them out.

 

I've attached both source and a precompiled kext.

 

Please report back any results from trying this kext and experimenting with it.

(Remember to move Titan.kext out of the extensions folder if you try this one to prevent both from loading.)

 

Enjoy. ;)

 

 

I beg you please try it to adjust to ATI cards :)

Share this post


Link to post
Share on other sites

On my system both Titan and this recognise my card, but the following appears in system.log and LoginWindow can't start:

Nov 3 21:20:47 localhost kernel[0]: NVDA,Display-A: Not usable

Nov 3 21:20:47 localhost kernel[0]: NVDA,Display-B: Not usable

Nov 3 21:20:47 localhost kernel[0]: display: Not usable

 

I'm assuming this is from the NVidia drivers, does anyone know what makes the displays 'unusable'? Is this possibly an attribute than can be edited by Nitat?

Share this post


Link to post
Share on other sites
On my system both Titan and this recognise my card, but the following appears in system.log and LoginWindow can't start:

Nov 3 21:20:47 localhost kernel[0]: NVDA,Display-A: Not usable

Nov 3 21:20:47 localhost kernel[0]: NVDA,Display-B: Not usable

Nov 3 21:20:47 localhost kernel[0]: display: Not usable

 

I'm assuming this is from the NVidia drivers, does anyone know what makes the displays 'unusable'? Is this possibly an attribute than can be edited by Nitat?

Some more info would be helpful: What card do you have and are you running the new kernel?

Share this post


Link to post
Share on other sites

Not running the new kernel, and it's a 6200 AGP. Might it be the AGP that's causing problems? It's not recognised as AGP in System Profiler.

Share this post


Link to post
Share on other sites
Not running the new kernel, and it's a 6200 AGP. Might it be the AGP that's causing problems? It's not recognised as AGP in System Profiler.

If you're not running the new kernel, you need the nVidia kexts from it. Also don't expect to get QE or CI on the old kernel with this kext. Maybe it will be possible, but now that an SSE2 version of the new kernel is just around the corner, it might not be worth the trouble.

 

--- Edit ---

These are the files you should get from the new kernel:

IONDRVSupport.kext

NVDAResman.kext

NVDANV10Hal.kext

NVDANV20Hal.kext

NVDANV30Hal.kext

NVDANV40Hal.kext

GeForce.kext (if it crashes on boot, try removing this one)

GeForce2MXGLDriver.bundle

GeForceGA.plugin

GeForceFXGLDriver.bundle

GeForce3GLDriver.bundle

GeForceVADriver.bundle

 

This might be needed too:

IOGraphicsFamily.kext

 

Also be aware that I've only tested this method on JaS 10.4.7 (Intel SSE2) and the same with JaS combo update 10.4.8 (Intel SSE2)

Share this post


Link to post
Share on other sites

Good job on the alternate .kext files!

 

Unfortunatley I'm in the same boat as MacRetail

I'm stuck with a GeForce 3 as well. . .

 

I believe there is still hope out there, somewhere. . .

Share this post


Link to post
Share on other sites

I tried this kext but it is not loading :) (Titan is)

 

--- Edit ---

My fault. I had to manually set permissions for this kext. Anyway I get only blue screen (system is not hanged I can connect via ssh to it).

 

Anyone got this kext runnoing with FX5200 AGP ?

 

It working, look http://forum.insanelymac.com/index.php?s=&...st&p=225061

for details.

Share this post


Link to post
Share on other sites

After installing Titan or Natiti.kext your System does not restart properly? Simply run your hackint0sh install DVD, go into Disk Utility and repair permissions from DVD, that fixed the restart bug here.

Share this post


Link to post
Share on other sites

Very nice dm_webd B)

 

Tried your kext its working like omnis titan, changed the values which might give dual display support but couldnt get it to work but i hope someone can get it to work :D

 

A special forum would be great, the next step would be to port it for ati and support for multiple cards at the same time to get more displays connected :dev:

Share this post


Link to post
Share on other sites

Just as with omni's version, the kext is loading fine and says that my 7900 GT/GTO has been detected, but when the GUI should start, I get just a black screen. The system starts ok, no errors in logs... only the screen stays black. Could it be possible to make a version of your kext, where the different options could be altered for example from plists? This seems to be so close, I wouldn't like to sell out this great card for a less powerful version in order to get it to work... And I think that this is a quite popular model also. I don't have Xcode, and propably wouln't know how to use it but I would like to help if anyhow possible.

 

edit:

I am running a VGA monitor from a DVI-VGA adapter, could it be that only pure DVI out works?

Share this post


Link to post
Share on other sites

is there a way to make an "efi.kext" wich reads some paratemers by plist settings and past them to the drivers? so we end having an universal kext ?

 

What about an ATI Natit ?

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.



×