Jump to content

X1900XT fully working with Dual-Screen, DVI out (Natit)


MiR
 Share

35 posts in this topic

Recommended Posts

I just got my X1900XT working with QE/CI & Dual Screen Support + DVI output with 10.4.8 and latest Version of semthex's kernel

 

I simply installed natit and after playing arround for a while I got everything working with the following entries.

 

(Important, make sure that you replace the original entry for IOPCIMatch with the following:

<key>IOPCIMatch</key>

<string>0x00001002&0x0000ffff</string>

otherwise Natit will not load the Keys)

 

You must also make sure that you have the 'original' AppleSMBIOS that came with the latest JaS DVD, if you use the patched version that was created to make 'About this Mac' work your second screen will not show up!

 

MiR

 

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>CFBundleDevelopmentRegion</key>

<string>English</string>

<key>CFBundleExecutable</key>

<string>Natit</string>

<key>CFBundleIdentifier</key>

<string>com.dmweb.Natit</string>

<key>CFBundleInfoDictionaryVersion</key>

<string>6.0</string>

<key>CFBundleName</key>

<string>Natit</string>

<key>CFBundlePackageType</key>

<string>KEXT</string>

<key>CFBundleSignature</key>

<string>????</string>

<key>CFBundleVersion</key>

<string>1.0.0d1</string>

<key>IOKitPersonalities</key>

<dict>

<key>Natit</key>

<dict>

<key>CFBundleIdentifier</key>

<string>com.dmweb.Natit</string>

<key>IOClass</key>

<string>com_dmweb_Natit</string>

<key>IOMatchCategory</key>

<string>IOFramebuffer</string>

<key>IONameMatch</key>

<string>display</string>

<key>IOPCIMatch</key>

<string>0x00001002&0x0000ffff</string>

<key>IOProbeScore</key>

<integer>0</integer>

<key>IOProviderClass</key>

<string>IOPCIDevice</string>

<key>entriesToAdd</key>

<dict>

<key>device_type</key>

<string>ATY,AlopiasParent</string>

<key>ATY,FrameBufferOffset</key>

<integer>0x80000000</integer>

<key>ATY,IOSpaceOffset</key>

<integer>0x00001000</integer>

<key>ATY,RegisterSpaceOffset</key>

<integer>0x90b20000</integer>

 

<key>@0,compatible</key>

<string>ATY,Alopias</string>

<key>@0,name</key>

<string>ATY,Alopias</string>

<key>@0,device_type</key>

<string>display</string>

<key>@0,display-connect-flags</key>

<integer>00000400</integer>

 

<key>@1,compatible</key>

<string>ATY,Alopias</string>

<key>@1,name</key>

<string>ATY,Alopias</string>

<key>@1,device_type</key>

<string>display</string>

<key>@1,display-connect-flags</key>

<integer>00000400</integer>

</dict>

Link to comment
Share on other sites

I just got my X1900XT working with QE/CI & Dual Screen Support + DVI output with 10.4.8 and latest Version of semthex's kernel

<snip!>

 

 

This is very interesting!

Natit with an ATI card.... cool thing!!!

Could you post your Complete Natit.kext?

Link to comment
Share on other sites

can i ask... the AppleSMBIOS which mifki/vitaliy released with his kernel.. is that one ok? or is that the patched one?

 

the one from the JaS disc.. which version is it? the 10.4.8 one? the 10.4.7 one? the 10.4.4 one? any ideas? :)

Link to comment
Share on other sites

????

 

The only thing that needs to be changed in natit.kext is Info.plist

 

I've included my complete Info.plist File in my previous post.

 

MiR

 

Yep, but its not formatted as a plist :)

It would help many people if you post your kext!

Ah, and do you know what this does:

 

<key>ATY,FrameBufferOffset</key>
<integer>0x80000000</integer>
<key>ATY,IOSpaceOffset</key>
<integer>0x00001000</integer>
<key>ATY,RegisterSpaceOffset</key>
<integer>0x90b20000</integer>

 

Thanks for this!

Link to comment
Share on other sites

I'm not 100% sure if those three lines did the trick or if

 

@1,display-connect-flags

 

does the trick of activating the second screen.

 

Unfortunately I found out at the end that the patched version of AppleSMBIOS blocked the detection of the second screen, so I'm not 100% sure which of the following entries are definitely needed or perhaps are unneccessary:

 

<key>ATY,FrameBufferOffset</key>

<integer>0x80000000</integer>

<key>ATY,IOSpaceOffset</key>

<integer>0x00001000</integer>

<key>ATY,RegisterSpaceOffset</key>

<integer>0x90b20000</integer>

<key>@1,display-connect-flags</key>

<integer>00000400</integer>

 

I will play arround to find the minimal entries necessary.

 

I've attaced my current info.plist

 

can i ask... the AppleSMBIOS which mifki/vitaliy released with his kernel.. is that one ok? or is that the patched one?

 

the one from the JaS disc.. which version is it? the 10.4.8 one? the 10.4.7 one? the 10.4.4 one? any ideas? :)

 

Yes, this one should be O.K.

 

MiR

Info.plist.natit_xt1900xt.zip

Link to comment
Share on other sites

I'm not 100% sure if those three lines did the trick or if

 

@1,display-connect-flags

 

does the trick of activating the second screen.

 

Unfortunately I found out at the end that the patched version of AppleSMBIOS blocked the detection of the second screen, so I'm not 100% sure which of the following entries are definitely needed or perhaps are unneccessary:

 

<key>ATY,FrameBufferOffset</key>

<integer>0x80000000</integer>

<key>ATY,IOSpaceOffset</key>

<integer>0x00001000</integer>

<key>ATY,RegisterSpaceOffset</key>

<integer>0x90b20000</integer>

<key>@1,display-connect-flags</key>

<integer>00000400</integer>

 

I will play arround to find the minimal entries necessary.

 

Hm, OK! Let us know what happens if you remove these lines! :)

 

I've attaced my current info.plist

 

Where is it? :D

Ok, I saw it! :D

Link to comment
Share on other sites

Hmmm.... I removed

 

<key>ATY,FrameBufferOffset</key>

<integer>0x80000000</integer>

<key>ATY,IOSpaceOffset</key>

<integer>0x00001000</integer>

<key>ATY,RegisterSpaceOffset</key>

<integer>0x90b20000</integer>

<key>@0,display-connect-flags</key>

<integer>00000400</integer>

<key>@1,display-connect-flags</key>

<integer>00000400</integer>

 

and Dual Screen still works.

 

Perhaps somebody could verify on a new machine if the entries are really not needed....

Link to comment
Share on other sites

i'm about to try this out with my X1800XL, 10.4.8 w/ mifki's kernel and SMBIOS kext.

 

just sorting out my drivers just now, as they are a hodgepodge of borisbadenov installer, ATIInject.kext and manual editing... :(

Link to comment
Share on other sites

Hmmm.... I removed

 

<key>ATY,FrameBufferOffset</key>

<integer>0x80000000</integer>

<key>ATY,IOSpaceOffset</key>

<integer>0x00001000</integer>

<key>ATY,RegisterSpaceOffset</key>

<integer>0x90b20000</integer>

<key>@0,display-connect-flags</key>

<integer>00000400</integer>

<key>@1,display-connect-flags</key>

<integer>00000400</integer>

 

and Dual Screen still works.

 

Perhaps somebody could verify on a new machine if the entries are really not needed....

 

 

Ahm I tried this:

Loaded Natit_Dual_v0.02 and changed your kext to match my card... Permissions and so on I dont need to talk about this!

Reboot... and:

No DVI!

Just my VGA is working... I did this: ioreg -l -w0 | grep "EDID"

and it showed me this:

| | | | "CRT2,EDID" = <00ffffffffffff001ab3940501010101290f0103682b1a782ac905a3574b9c25125054bfef807

4f81c081cf818095000101010101019a29a0d051842a30509836009a001100001c000000ff005945

7553032373232330a2020000000fd00384b1f530e000a202020202020000000fc005731392d310a2

20202020202000a3>

| | | | | "IODisplayEDID" = <00ffffffffffff001ab3940501010101290f0103682b1a782ac905a3574b9c25125054bfef807

4f81c081cf818095000101010101019a29a0d051842a30509836009a001100001c000000ff005945

7553032373232330a2020000000fd00384b1f530e000a202020202020000000fc005731392d310a2

20202020202000a3>

 

But this is not correct! My monitor is a DFP not a CRT! :(

Link to comment
Share on other sites

just tried it, replaced alopias with Wormy (cause i use an x1600)

 

got qeci, res change, and my card shows up as 512mb card (which it is)

 

but still only mirror picture

 

used 2dvi -->d-sub (2xcrt 19 inch)

 

sleep also works

 

tried semthex/mifki-demones kernel

Link to comment
Share on other sites

working for me using the op's Info.plist

 

:) unknown nvidia - classic :(

 

fyi, when i use the boris method, i can see the 'Mac OS X Starting Up...' screen, but with this solution and with ATIInject/ATIEFI I dont. With ATIInject/ATIEFI my monitor cant wake from sleep (monitor sleep, not system sleep), but with boris method it can.

 

just about to test whether wake from sleep will work here...

 

EDIT: ok, that worked. now the biggie... will system sleep work (it never has for me...)

 

EDIT2: DAMN IT! wake from system sleep still doesnt work for me. i think its related to mobo, as mifki/vitaliy has the same problem, and he has the same mobo as me.

 

EDIT3: Interesting... the machine is still responding to a ping. Thats progress... :)

Link to comment
Share on other sites

I tried with an x1600 (Wormy) and modifying the Info.plist appropriately.

 

All I got was a blue screen, no cursor.

 

Used Natit.kext from here: http://forum.insanelymac.com/index.php?s=&...st&p=227574

 

AppleSMBios.kext was from "final" 10.4.8 JaS Intel SSE3 Only install DVD.

 

Info.plist says:

			<key>entriesToAdd</key>
		<dict>
			<key>device_type</key>
			<string>ATY,WormyParent</string>
			<key>ATY,FrameBufferOffset</key>
			<integer>0x80000000</integer>
			<key>ATY,IOSpaceOffset</key>
			<integer>0x00001000</integer>
			<key>ATY,RegisterSpaceOffset</key>
			<integer>0x90b20000</integer>
			<key>@0,compatible</key>
			<string>ATY,Wormy</string>
			<key>@0,name</key>
			<string>ATY,Wormy</string>
			<key>@0,device_type</key>
			<string>display</string>
			<key>@0,display-connect-flags</key>
			<string>00000400</string>
			<key>@1,compatible</key>
			<string>ATY,Wormy</string>
			<key>@1,name</key>
			<string>ATY,Wormy</string>
			<key>@1,device_type</key>
			<string>display</string>
			<key>@1,display-connect-flags</key>
			<string>00000400</string>
		</dict>

Questions:

1) Which Natit.kext did you use?

2) Which versions of ATI kexts do you have installed?

3) Which OpenGL.framework do you have?

Link to comment
Share on other sites

I tried with an x1600 (Wormy) and modifying the Info.plist appropriately.

 

 

Info.plist says:

			<key>entriesToAdd</key>
		<dict>
			<key>device_type</key>
			<string>ATY,WormyParent</string>
			<key>ATY,FrameBufferOffset</key>
			<integer>0x80000000</integer>
			<key>ATY,IOSpaceOffset</key>
			<integer>0x00001000</integer>
			<key>ATY,RegisterSpaceOffset</key>
			<integer>0x90b20000</integer>
			<key>@0,compatible</key>
			<string>ATY,Wormy</string>
			<key>@0,name</key>
			<string>ATY,Wormy</string>
			<key>@0,device_type</key>
			<string>display</string>
			<key>@0,display-connect-flags</key>
			<string>00000400</string>
			<key>@1,compatible</key>
			<string>ATY,Wormy</string>
			<key>@1,name</key>
			<string>ATY,Wormy</string>
			<key>@1,device_type</key>
			<string>display</string>
			<key>@1,display-connect-flags</key>
			<string>00000400</string>
		</dict>

Questions:

1) Which Natit.kext did you use?

2) Which versions of ATI kexts do you have installed?

3) Which OpenGL.framework do you have?

 

I have an unpatched system, fresh from the JaS 10.4.8 DVD 2nd edition)

In my point of view lot's of errors come from too much trying without later cleaning up.... (See my problems with AppleSMBios :D )

 

Please remove the following entries as they might be special to X1900XT:

 

<key>ATY,FrameBufferOffset</key>

<integer>0x80000000</integer>

<key>ATY,IOSpaceOffset</key>

<integer>0x00001000</integer>

<key>ATY,RegisterSpaceOffset</key>

<integer>0x90b20000</integer>

 

<key>@0,display-connect-flags</key>

<string>00000400</string>

<key>@1,display-connect-flags</key>

<string>00000400</string>

 

 

MiR

 

As I understood, you have to use another AppleSMBios!! The one from JaS DVD is fixed, I think....

 

I just tried the latest version of AppleSMBios from Paulicat, this version also seems to work.

 

I will re-install my system later to see if everithing works out of the box with a completely fresh system.

 

MiR

Link to comment
Share on other sites

In my point of view lot's of errors come from too much trying without later cleaning up

This was my first ever "try"

 

Please remove the following entries as they might be special to X1900XT:

 

<key>ATY,FrameBufferOffset</key>

<integer>0x80000000</integer>

<key>ATY,IOSpaceOffset</key>

<integer>0x00001000</integer>

<key>ATY,RegisterSpaceOffset</key>

<integer>0x90b20000</integer>

 

<key>@0,display-connect-flags</key>

<string>00000400</string>

<key>@1,display-connect-flags</key>

<string>00000400</string>

Will do, meanwhile since I had previously installed the Boris-style patch for x1x00, I went back and replaced my ATI* kexts and OpenGL.framework with original 10.4.8 versions. This time I get a display, mirrored on both monitors.

 

But looking at boot messages, Natit.kext ran 6 times during boot and here is a summary of the errors:

4.80.46.0display: family specific matching fails
display: family specific matching failsdisplay: family specific matching fails

Natit: Starting.
Natit: Setting model=Unknown nVidia

Natit: Starting.
Natit: Setting model=Unknown nVidia
display: family specific matching fails

Natit: Starting.
Natit: Setting @0,device_type=displaydisplay: family specific matching fails

Natit: Starting.
Natit: Setting model=Unknown nVidia

Natit: Setting model=Unknown nVidia
display: family specific matching fails

Natit: Starting.
Natit: Setting model=Unknown nVidia

ATY,Wormy: Not usable
ATY,Wormy: Not usable

Link to comment
Share on other sites

This was my first ever "try"

Will do, meanwhile since I had previously installed the Boris-style patch for x1x00, I went back and replaced my ATI* kexts and OpenGL.framework with original 10.4.8 versions. This time I get a display, mirrored on both monitors.

 

But looking at boot messages, Natit.kext ran 6 times during boot and here is a summary of the errors:

4.80.46.0display: family specific matching fails
display: family specific matching failsdisplay: family specific matching fails

Natit: Starting.
Natit: Setting model=Unknown nVidia

Natit: Starting.
Natit: Setting model=Unknown nVidia
display: family specific matching fails

Natit: Starting.
Natit: Setting @0,device_type=displaydisplay: family specific matching fails

Natit: Starting.
Natit: Setting model=Unknown nVidia

Natit: Setting model=Unknown nVidia
display: family specific matching fails

Natit: Starting.
Natit: Setting model=Unknown nVidia

ATY,Wormy: Not usable
ATY,Wormy: Not usable

 

Perhaps you have more than one device that matches the ATI-Signature (1002) and because of this Natit gets called more often than necessary.

 

On my System Nantit is called twice (Once for the Primary Device ID of the Graphics card, the second time it is called for the Secondary ID (this is forthe 2nd Display))

 

Please edit

 

<key>IOPCIMatch</key>

<string>0x00001002&0x0000ffff</string>

 

to:

 

<key>IOPCIMatch</key>

<string>0xXXXX1002</string>

 

where XXXX is the Device ID found for the Graphics Card in 'About this Mac'

 

In my case the Device-ID is 7249 ; my Entry is now:

 

<key>IOPCIMatch</key>

<string>0x72491002</string>

 

Now you have to

 

rm /System/Library/Extensions.*

 

and reboot.

 

Now Natit only matches once and will only be called once.

 

MiR

MiR

Link to comment
Share on other sites

Here's what worked for me:

 

- Installed JaS 10.4.6 w/ Intel SSE3 patch

- Installed JaS 10.4.7 Update

- Installed Official Apple 10.4.8 Combo

- Replaced mach_kernel and AppleSMBIOS.kext with those from Mifki/Vitaliy's release

- Booted up

- Downloaded Natit.kext from here: http://forum.insanelymac.com/index.php?showtopic=32427

- Downloaded OP's Info.plist and replaced

- Repaired permissions/ownership etc, removed mkext and kextcache

- Rebooted to working system.

 

 

EDIT: I just realised i'm probably not using the dual-display Natit. I dont have a second monitor to test with, so its unimportant to me.

 

i can ssh to my reawakened hackintosh. can anyone suggest a terminal command which would force a reposting of the video?

 

btw i can VNC to the machine - it connects but shows a black window... curious... anyone any ideas how i can force it to repost video? (i dont have teh 'repost video on s3 resume' option in bios...)

Link to comment
Share on other sites

Perhaps you have more than one device that matches the ATI-Signature (1002) and because of this Natit gets called more often than necessary.

 

On my System Nantit is called twice (Once for the Primary Device ID of the Graphics card, the second time it is called for the Secondary ID (this is forthe 2nd Display))

I have only one ATI device

 

Please edit

 

<key>IOPCIMatch</key>

<string>0x00001002&0x0000ffff</string>

 

to:

 

<key>IOPCIMatch</key>

<string>0xXXXX1002</string>

 

where XXXX is the Device ID found for the Graphics Card in 'About this Mac'

The generic IOPCIMatch string of "0x00001002&0x0000ffff" worked just fine on my previous Boris-style patched system. It loaded only once and unfortunately recognized only one output of my ATI card.

 

Now Natit only matches once and will only be called once.

Won't hard coding it back to a single device id force it to only recognize one of the ATI card outputs and limit me to only one monitor - defeating the whole purpose of this exercise? If I wanted that, I would reload all of my previous kexts and frameworks from my working Boris-style patched system.

Link to comment
Share on other sites

Won't hard coding it back to a single device id force it to only recognize one of the ATI card outputs and limit me to only one monitor - defeating the whole purpose of this exercise? If I wanted that, I would reload all of my previous kexts and frameworks from my working Boris-style patched system.

 

Nope. Natit always does the same on every invocation. Reducing the number of invocations does not hurt, it makes the logging output easier to read.

 

Please remember, Natit is not a display driver, it only fill's the registry with missing entries that are needed for the real graphics driver to load.

 

The 2nd display is handeled internaly in the original driver. I once added the second Device-ID of my graphics card to an extension, the result was a wonderfull crash :D

 

MiR

Link to comment
Share on other sites

Nope. Natit always does the same on every invocation. Reducing the number of invocations does not hurt, it makes the logging output easier to read.

 

Please remember, Natit is not a display driver, it only fill's the registry with missing entries that are needed for the real graphics driver to load.

 

The 2nd display is handeled internaly in the original driver.

Interesting. 4 hours ago you said:

 

(Important, make sure that you replace the original entry for IOPCIMatch with the following:

<key>IOPCIMatch</key>

<string>0x00001002&0x0000ffff</string>

otherwise Natit will not load the Keys)

Anyway, I hard-coded IOPCIMatch to "0x71c01002" and Natit.kext loaded 4 times with the same errors as before.

 

 

The essence of my problem is that when I look at the ioreg output from single-user mode, I don't find very many variables to set/tweak and I'm wondering where you found some of the ones that you did set.

 

For instance, here is the ioreg output for my secondary port (dev id 71e0) on the ATI card:

	| |   |   +-o display@0,1  <class IOPCIDevice, registered, matched, active, busy 0, retain count 7>
| |   |   |   {
| |   |   |	 "IODeviceMemory" = (({"address"=18446744073703129088,"length"=65536}))
| |   |   |	 "device-id" = <e0710000>
| |   |   |	 "IOChildIndex" = 1
| |   |   |	 "name" = "display"
| |   |   |	 "IOName" = "display"
| |   |   |	 "vendor-id" = <02100000>
| |   |   |	 "revision-id" = <00000000>
| |   |   |	 "IOPCIResourced" = Yes
| |   |   |	 "subsystem-vendor-id" = <4b170000>
| |   |   |	 "Power Management private data" =  (edited for space considerations)
| |   |   |	 "Power Management protected data" = (edited for space considerations)
| |   |   |	 "IOPCIExpressLinkStatus" = 4353
| |   |   |	 "IOPCIExpressLinkCapabilities" = 3329
| |   |   |	 "class-code" = <00800300>
| |   |   |	 "compatible" = <"pci174b,881","pci1002,71e0","pciclass,038000">
| |   |   |	 "assigned-addresses" = <100106820000000000009eff0000000000000100>
| |   |   |	 "subsystem-id" = <81080000>
| |   |   |	 "reg" = <0001060000000000000000000000000000000000100106020000000000000000000000000000
100>
| |   |   |   }

I find nothing similar to the following <key>'s that you set nor the following <string>:

<key>device_type</key>
<string>ATY,AlopiasParent</string>  <-- would expect ATY,WormyParent for mine

<key>ATY,FrameBufferOffset</key>
<key>ATY,IOSpaceOffset</key>
<key>ATY,RegisterSpaceOffset</key>
<key>@1,device_type</key>
<key>@1,display-connect-flags</key>

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...