Jump to content

Natit new development version with ATI and nVidia dual screen


dm_webd
 Share

803 posts in this topic

Recommended Posts

This is a new build with more settings possible in Info.plist. Contains device-id -> name for both nVidia and ATI.

Inside is default settings for ati and nvidia which will be set if not otherwise specified. To specify other settings for a specific device id put a string inside the dictionary of the device id, with key "entriesToAddKey" and value of your choice. Then add to the entriesToAdd dictionary of the vendor, a dictionary with the key you choose before. Then this should be loaded for devices where entriesToAddKey is set to the dictionary's key.

This sounds confusing, but it's actually now. I'm just to tired to explain it better right now. If someone can explain this better, it would be great.

But anyway, this design should make it possible to collect the different configurations that work, and put them inside their own dictionaries, then point the device ids to the right dictionary for the card.

 

Warning: this has not been tested very much (and only on nVidia), and the default values might not work for you as they're taken from attempts at getting multiple displays working.

 

Please report back any bugs you find. Stories of success is also welcome. :)

 

--- EDIT ---

The reason why I'm not releasing source code yet is that the source contains a lot of confusing and messy vbe & gdt/ldt code which is not in use yet. Once I get it fully working and cleaned up I will of course release the source again.

 

--- EDIT ---

I've removed from some entries from the ATI default values and set the display-connect-flags to the right values on suggestion from MiR.

 

--- EDIT ---

New release with test of ATI autodetect of X1300, X1600, X1800 & X1900 based on values provided by Ciber.

Please report any results as the code for multiple settings for different device-ids has not been tested yet.

 

--- EDIT ---

For QE/CI you have to add the device id of your card in ATIRadeonX1000.kext.

Natit.kext.zip

Natit_edited.kext.zip

Natit_ATIauto.kext.zip

dualx1600natit.zip

  • Like 1
Link to comment
Share on other sites

Awesome dm_webd!

 

I've downloaded and will test this on my two screens (both dvi, one 19" one 47") system in signature

 

Since the titan kext seems to have been abandoned, and you're doing such a great development job on Natit, --> Could you please take a look at this thread I started and let me know if there's anything I can do?

http://forum.insanelymac.com/index.php?sho...c=33003&hl=

 

ConGratz on your great work!

Link to comment
Share on other sites

I removed the unnecessary keys (see the other posting), removed /System/Library/Extensions.* and rebooted...

 

System starts without troubles, my graphics card is now 100% detected and I can see the real name in 'About this Mac'.

 

Thank you very, very much!

 

I will start playing arround with the GMA950 of my Mac Mini tomorrow.

 

Keep up the great work (and please keep it Open-Source!!!)

 

MiR

Link to comment
Share on other sites

I removed the unnecessary keys (see the other posting), removed /System/Library/Extensions.* and rebooted...

 

System starts without troubles, my graphics card is now 100% detected and I can see the real name in 'About this Mac'.

 

Thank you very, very much!

 

I will start playing arround with the GMA950 of my Mac Mini tomorrow.

 

Keep up the great work (and please keep it Open-Source!!!)

 

MiR

I've removed the keys you suggest and set the display-connect-flags to the correct hex values. Do you think the display-connect-flags should be removed completely?

It's great to have people like you experimenting and getting great results - this way this project is developed by the community. So of course I will keep the source open - but for now this was just a quick release for testing. I will release source in a day or two when the vbe code is complete.

Link to comment
Share on other sites

If you're using an X1600, remember to change all the Alopias entries to Wormy. My X1600XT was fully detected after that, but still no dual screen, my second dvi port is still dead.

 

Here's my log:

 

Nov 12 17:01:18 localhost kernel[0]: BSD root: disk0s1, major 14, minor 1

Nov 12 17:01:18 localhost kernel[0]: AppleIntel8254XEthernet: Detected 82573V on PCI-E (x1)

Nov 12 17:01:18 localhost kernel[0]: Jettisoning kernel linker.

Nov 12 17:01:18 localhost kernel[0]: Resetting IOCatalogue.

Nov 12 17:01:18 localhost kernel[0]: display: family specific matching fails

Nov 12 17:01:18 localhost kernel[0]: display: family specific matching fails

Nov 12 17:01:18 localhost kernel[0]: Matching service count = 0

Nov 12 17:01:18 localhost kernel[0]: Matching service count = 2

Nov 12 17:01:18 localhost kernel[0]: Matching service count = 2

Nov 12 17:01:18 localhost kernel[0]: Matching service count = 2

Nov 12 17:01:18 localhost kernel[0]: Matching service count = 2

Nov 12 17:01:18 localhost kernel[0]: Matching service count = 3

Nov 12 17:01:18 localhost kernel[0]: display: family specific matching fails

Nov 12 17:01:18 localhost kernel[0]: display: family specific matching fails

Nov 12 17:01:18 localhost kernel[0]: display: family specific matching fails

Nov 12 17:01:18 localhost kernel[0]: display: family specific matching fails

Nov 12 17:01:18 localhost kernel[0]: display: family specific matching fails

Nov 12 17:01:18 localhost kernel[0]: Natit: Starting.

Nov 12 17:01:18 localhost kernel[0]: device-id: 0x71E0

Nov 12 17:01:18 localhost kernel[0]: Found device

Nov 12 17:01:18 localhost kernel[0]: Found device name

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting device_type=ATY,WormyParent

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @1,device_type=display

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @0,compatible=ATY,Wormy

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @0,display-connect-flags=0x00000400

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @1,compatible=ATY,Wormy

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @1,display-connect-flags=0x00000400

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @1,name=ATY,Wormy

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @0,name=ATY,Wormy

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @0,device_type=display

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting model=ATI Radeon X1600 Series Secondary

Nov 12 17:01:18 localhost kernel[0]: display: family specific matching fails

Nov 12 17:01:18 localhost kernel[0]: display: family specific matching fails

Nov 12 17:01:18 localhost kernel[0]: Natit: Starting.

Nov 12 17:01:18 localhost kernel[0]: device-id: 0x71C0

Nov 12 17:01:18 localhost kernel[0]: Found device

Nov 12 17:01:18 localhost kernel[0]: Found device name

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting device_type=ATY,WormyParent

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @1,device_type=display

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @0,compatible=ATY,Wormy

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @0,display-connect-flags=0x00000400

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @1,compatible=ATY,Wormy

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @1,display-connect-flags=0x00000400

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @1,name=ATY,Wormy

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @0,name=ATY,Wormy

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @0,device_type=display

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting model=ATI Radeon X1600 Series

Nov 12 17:01:18 localhost kernel[0]: display: family specific matching fails

Nov 12 17:01:18 localhost kernel[0]: Natit: Starting.

Nov 12 17:01:18 localhost kernel[0]: device-id: 0x71C0

Nov 12 17:01:18 localhost kernel[0]: Found device

Nov 12 17:01:18 localhost kernel[0]: Found device name

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting device_type=ATY,WormyParent

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @1,device_type=display

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @0,compatible=ATY,Wormy

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @0,display-connect-flags=0x00000400

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @1,compatible=ATY,Wormy

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @1,display-connect-flags=0x00000400

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @1,name=ATY,Wormy

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @0,name=ATY,Wormy

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting @0,device_type=display

Nov 12 17:01:18 localhost kernel[0]: Natit: Setting model=ATI Radeon X1600 Series

Nov 12 17:01:18 localhost kernel[0]: IPv6 packet filtering initialized, default to accept, logging disabled

Nov 12 17:01:18 localhost mDNSResponder-108.2 (Aug 25 2006 14: 50:48)[56]: starting

Nov 12 17:01:18 localhost memberd[63]: memberd starting up

Nov 12 17:01:18 localhost lookupd[64]: lookupd (version 369.6) starting - Sun Nov 12 17:01:18 2006

Nov 12 17:01:18 localhost DirectoryService[68]: Launched version 2.1 (v353.5)

Nov 12 17:01:19 localhost diskarbitrationd[62]: disk0s1 hfs 6F340C06-8291-3969-9A09-67CB117313D8 Macintosh HD /

Nov 12 17:01:20 localhost kernel[0]: ATY,Wormy: Not usable

Nov 12 17:01:20 localhost kernel[0]: ATY,Wormy: Not usable

Link to comment
Share on other sites

If you're using an X1600, remember to change all the Alopias entries to Wormy. My X1600XT was fully detected after that, but still no dual screen, my second dvi port is still dead.

Thanks for the input. I'll write this info down to add for autodetection. Do you know values for other ati cards?

Link to comment
Share on other sites

great work, this natit version does find my mobility x700 card, so that one stap further to a working x700 :)

 

oke, after he finds the card, it loads the logon window, and doesnt go further, you only see the boot screen.

 

 

but, it finds the card so we are one step further.

 

 

Ruud

Link to comment
Share on other sites

I've removed the keys you suggest and set the display-connect-flags to the correct hex values. Do you think the display-connect-flags should be removed completely?

It's great to have people like you experimenting and getting great results - this way this project is developed by the community. So of course I will keep the source open - but for now this was just a quick release for testing. I will release source in a day or two when the vbe code is complete.

 

I will re-install my system tomorrow, after that we will know if the entries are necessary.

 

No hurry with the source, better release source that is complete instead of a hurried version that is difficult to read. One thing to address in the future might be to create specialized patches for several Device-ID's. The entries we have right now may be sufficient for a X1900XT, but there may exist extra settings for a X1600 card that need to be applied if it is detected.

 

Perhaps it's an idea to keep natit simple and straightforward and to create an installer that does some hardware detection magic and creates parts of the info.plist based on it's findings.

 

Fortunately the Freepascal Compiler was ported to the mac, creating this hardware detection seems like a nice project for my spare time...

 

MiR

Link to comment
Share on other sites

Caretta = x1300, Wormy = x1600, Alopias = x1800, Sphyrna = x1900

Thanks for the info. I've added a new version with autodetect based on these values. It has not been tested, so if you could test if it detects your card properly, it would be a great help.

Link to comment
Share on other sites

I will re-install my system tomorrow, after that we will know if the entries are necessary.

 

No hurry with the source, better release source that is complete instead of a hurried version that is difficult to read. One thing to address in the future might be to create specialized patches for several Device-ID's. The entries we have right now may be sufficient for a X1900XT, but there may exist extra settings for a X1600 card that need to be applied if it is detected.

 

Perhaps it's an idea to keep natit simple and straightforward and to create an installer that does some hardware detection magic and creates parts of the info.plist based on it's findings.

 

Fortunately the Freepascal Compiler was ported to the mac, creating this hardware detection seems like a nice project for my spare time...

 

MiR

 

I would say we test the kext out and develop it till it works for all cards! Then I can make an automized installer with DevID detection and plist changing! (Only if you like) :pirate2:

Edit: Ok, nice work, dm_webd! :(

Link to comment
Share on other sites

No hurry with the source, better release source that is complete instead of a hurried version that is difficult to read. One thing to address in the future might be to create specialized patches for several Device-ID's. The entries we have right now may be sufficient for a X1900XT, but there may exist extra settings for a X1600 card that need to be applied if it is detected.

This is already implemented. You can see an example in the Info.plist of the version I just posted. I don't know if it works yet.

Perhaps it's an idea to keep natit simple and straightforward and to create an installer that does some hardware detection magic and creates parts of the info.plist based on it's findings.

 

Fortunately the Freepascal Compiler was ported to the mac, creating this hardware detection seems like a nice project for my spare time...

 

MiR

A installer would be nice, although NeoPheus already made one available for the nVidia version. Perhaps he'll make one for this version too.

Link to comment
Share on other sites

A installer would be nice, although NeoPheus already made one available for the nVidia version. Perhaps he'll make one for this version too.

 

1. The autodetection works!!

2. DVI isn't working for me yet! (hmm...)

3. Yep, I will make an installer tomorrow!

4. Keep up the great work! I'm going to bed now :(

 

cYa!!

Link to comment
Share on other sites

I would say we test the kext out and develop it till it works for all cards! Then I can make an automized installer with DevID detection and plist changing! (Only if you like) :D

Edit: Ok, nice work, dm_webd! :pirate2:

 

I love your installers!

 

Seems to me that I will have to find another spare-time project... :(

 

MiR

Link to comment
Share on other sites

great work, this natit version does find my mobility x700 card, so that one stap further to a working x700 :(

 

oke, after he finds the card, it loads the logon window, and doesnt go further, you only see the boot screen.

but, it finds the card so we are one step further.

Ruud

 

 

MiR, do you hava any idea what has to be changed? its x700 on an internal 15.4" laptop screen.

 

 

Thanks for your work.

Link to comment
Share on other sites

1. The autodetection works!!

2. DVI isn't working for me yet! (hmm...)

3. Yep, I will make an installer tomorrow!

4. Keep up the great work! I'm going to bed now :pirate2:

 

cYa!!

Great.. Thanks for the testing & installer.

I think it's time for me to get some sleep too. :(

Link to comment
Share on other sites

Thanks for the info. I've added a new version with autodetect based on these values. It has not been tested, so if you could test if it detects your card properly, it would be a great help.

 

The auto detection is working properly, QE, CI, Res change etc, are supported and the card is showing up as the correct card.

 

I have a feeling that my second DVI port not working has to do with the fact that i flashed my card with a sapphire bios a while back in order to get it working at all. I'm gonna try to flash it back to the original bios and see what happens.

 

If anyone has a HIS X1600XT or can get me the bios for it somehow i would really appreciate it.

 

 

Thanks.

Link to comment
Share on other sites

Use Natit_ATIauto.kext.zip and let us know if it works for you.

 

 

it didnt work here, i found my card a ati mobility x700. When loading the loginwindow, it doesnt go any further.

 

 

 

Ruud

Link to comment
Share on other sites

Unless the video card is supported by the original drivers, it will not work.

 

 

so i have to use the ATIRadeon9700.kext that was used with callisto? this was hex eddited for use with this card.

 

 

Ruud

Link to comment
Share on other sites

This sounds like a very interesting project. I'm just wondering: what are the key differences between this and ATIinject?

 

I see you're taking a solid approach: create a huge catalogue of vendor IDs, device IDs, and data about each general type of card, including whether each would be classified as wormy, caretta, etc. This saves a lot of work for end-users.

 

A few questions:

1) Has anybody managed to get DVI working?

2) Does this kext function without the need for EDID data?

3) Will ram finally display correctly? My 512mb x1600 is shown as having only 256mb. I know its a common issue.

Link to comment
Share on other sites

Ok, first of all, as a mini tutorial, you need to do something else to get QE/CI working besides installing Nanit.kext. You need to change (in the case of X1000 series for example) the device id list inside ATIRadeonX1000.kext:

 

ATIRadeonX1000.kext/Contents/Info.plist

 

Edit the Info.plist and where it says (dont mind the numbers, they are from a 9700 plugin, just an example):

 

<key>IOPCIMatch</key>

<string>0x71c01002 0x41441002 0x4E481002</string>

 

Change it to reflect YOUR deviceid (get it from System Profiler / Graphics):

 

<string>0x71c2</string>

 

In the case you have a common mill x1600, 0x71c2 is usually the number.

 

Repair permissions and reboot. You should be fine. I will post a complete tutorial for "not cli friendly" later.

 

As a side note, ATIInject or this solution, I DO NOT GET DUAL DISPLAY. I just get a cloned (not mirroring, just the same one display) on both ports (DVI and VGA).

 

Now, I believe the solution is in initializing the second port which in my card where first port is 0x71c2, secondary display is 0x71e2. If I ass this value to X1000 kext too (so it initializes) I get a kernel panic upon boot.

 

If anyone can please give me any info or link I can follow to read up, I would appreciate it. Am I correct that we should pursue secondary port, or is that a non issue? Thanks.

 

I am thinking we can add all the "possible" ATI deviceids out of the PLIST, add them to the corresponding ATIRadeonX1000.kext, ATIRadeon9700.kext, etc, and then build an installer that installls Natit and ALL possible ATI* kexts and it would provide pretty automatic detection of ATIs. I could do this if you guys think it would work ok. I just need to not put secondary ids, because its kernel panicking my computer.

 

EDIT: As a side note, and as suggested by some of you, I tried different Kernels, versions of ATINDRV (IONDRV has always been 4.5 since 4.8 won't work for me, blue screen), and even AppleSMBIOS (someone suggested using the original that came with JaS DVD). Of course I tried without AGPGart too. I tried all this combos, and still get Kernel Panic when loading secondary adapter. Just so nobody looses time doing the same ...

Link to comment
Share on other sites

 Share

×
×
  • Create New...