Jump to content

Getting closer - An ATI graphics guide


captainsquash
 Share

353 posts in this topic

Recommended Posts

Ok... did a fresh reload of my laptop.... mobile radeon 7550 with 10.4.7.

I do not have QE.

 

I found one error right away in your script. This is no big deal at all for anyone willing to make a small change. The script did NOT autodetect the graphics chipset. Heres the result of the install:

<string>0x" = mode&0xffffffff</string>

 

A simple change of this got me my 1400x1050@75mhz.

 

Still no QE/CI (doubt ci ever in a 7550) but I am hopeful I can get QE.

 

Radeon Mobility 7500:

 

Chipset Model: Radeon Mobility 7500

Type: Display

Bus: AGP

Slot: PCMCIA socket 1

VRAM (Total): 32 MB

Vendor: ATI (0x1002)

Device ID: 0x4c57

Revision ID: 0x0000

Displays:

Color LCD:

Resolution: 1400 x 1050 @ 75 Hz

Depth: 32-bit Color

Core Image: Not Supported

Main Display: Yes

Mirror: Off

Online: Yes

Quartz Extreme: Not Supported

 

I'll be happy to give any more info if you need any, just let me know.

Link to comment
Share on other sites

Yes - many people have been reporting that error. BobOki - Out of curiosity... are you using 10.4.7 JaS?

 

Edit: Again, this works for me, but I'd like to get it working for everyone else. To remedy this - anyone who wouldn't mind - send an email to ioregtest (at) daebec.com containing the following things...

 

* your ioreg -l output

* Kernel version, OS X version (and any particular build identifier (ex. 10.4.7 JaS, 10.4.6 Goatsecx))

* Device and Vendor ID of graphics card (if known)

 

I'd have people PM me the output, but its so large it typically gets truncated.

 

Another Edit: BobOki - perhaps you might want to read this thread.

Link to comment
Share on other sites

Thanks BobOki (and aris) - With that email you sent me we may have licked it.... Here's the deal..

 

Firstly, your ioreg output lists your device ID under VGA@0 whereas mine lists it under display@0. The autodetection script would've certainly failed if it can't find display@0.

 

Also, your compatible string is slightly different than mine

 

yours: "compatible" = <"pci107b,450",...

mine: "compatible" = <"pci1558,5600",....

 

that one character would've caused an off by one device id and vendor ID, ouch.

 

So, I'm working on an alternate detection script now, I'll post one here when its finished. :)

Link to comment
Share on other sites

Captainsquash I reintalled osx 10.4.6 using the goatsecx dvd and all three extensions installed properly. however I have still no acceleration. Do you know if there is a way to disable the verbose mode booting and shutting down? It boots up with the darwin menu by default and although i do not type -v it starts in verbose mode. This was not happening when i installed osx from the 10.4.7 jas dvd.Thanks.

the video portion of the ioreg follows:

+-o AGP@1 <class IOPCIDevice, registered, matched, active, busy 0, r$

| | | | {

| | | | "device-id" = <"A3">

| | | | "fast-back-to-back" = <>

| | | | "acpi-pci-routing-table" = <2800000000000000ffff000000000000000$

| | | | "name" = "pci-bridge"

| | | | "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/AGP@10000"

| | | | "IOName" = "pci-bridge"

| | | | "vendor-id" = <86800000>

| | | | "revision-id" = <03000000>

| | | | "Power Management private data" = "{ this object = 03038180, in$

| | | | "devsel-speed" = <01000000>

| | | | "Power Management protected data" = "{ theNumberOfPowerStates =$

| | | | "acpi-reg" = <00080000>

| | | | "AGP_Target" = <>

| | | | "class-code" = <00040600>

| | | | "compatible" = <"pci8086,3341","pciclass,060400">

| | | | "IODTPersist" = <163992244e399224>

| | | | "reg" = <00080000>

| | | | "child-slot-names" = {"0"="built-in="}

| | | | }

| | | |

| | | +-o AGPGart <class AGPGart, !registered, !matched, active, busy 0,$

| | | | {

| | | | "Power Management protected data" = "{ theNumberOfPowerStates$

| | | | "IOAGPFlags" = 1

| | | | "Bridge Memory Ranges" = (18446744073642442752,18446744073659$

| | | | "CFBundleIdentifier" = "com.joblo10.driver.AGPGart"

| | | | "IOClass" = "AGPGart"

| | | | "IONameMatched" = "pciclass,060400"

| | | | "IOProbeScore" = 900

| | | | "Power Management private data" = "{ this object = 0311d200, $

| | | | "IOMatchCategory" = "IODefaultMatchCategory"

| | | | "IONameMatch" = ("pciclass,060400")

| | | | "Bridge IO Ranges" = (49408,53247)

| | | | "IOProviderClass" = "IOPCIDevice"

| | | | }

| | | |

| | | +-o VID@0 <class IOAGPDevice, registered, matched, active, busy $

| | | | {

| | | | "built-in" = <00>

| | | | "IODeviceMemory" = (({"address"=18446744073306898432,"lengt$

| | | | "AAPL,iokit-ignore-ndrv" = Yes

| | | | "fast-back-to-back" = <>

| | | | "device-id" = <"fL">

| | | | "IOChildIndex" = 1

| | | | "name" = <"OMNI,JUPITER">

| | | | "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/AGP@10000/VID@0"

| | | | "IOName" = "display"

| | | | "vendor-id" = <02100000>

| | | | "revision-id" = <01000000>

| | | | "device_type" = <"OMNI,JUPITER">

| | | | "subsystem-vendor-id" = <28100000>

| | | | "IOInterruptControllers" = ("8259-pic")

| | | | "Power Management private data" = "{ this object = 03135c80$

| | | | "Power Management protected data" = "{ theNumberOfPowerStat$

| | | | "acpi-reg" = <00000000>

| | | | "AGP_Master" = <>

| | | | "model" = <"Radeon Mobility 9000 Lf">

| | | | "class-code" = <00000300>

| | | | "compatible" = <"pci1028,11d","pci1002,4c66","pciclass,0300$

| | | | "IOAGPFlags" = 1

| | | | "subsystem-id" = <1d010000>

| | | | "assigned-addresses" = <1000014200000000000000e800000000000$

| | | | "reg" = <00000100>

| | | | "IOInterruptSpecifiers" = (<0b00000007000000>)

| | | | }

| | | |

| | | +-o OMNI,CALLISTO <class CallistoHAL, registered, matched, act$

| | | | | {

| | | | | "device_type" = <"display">

| | | | | "CFBundleIdentifier" = "com.free.driver.CallistoHAL"

| | | | | "IOClass" = "CallistoHAL"

| | | | | "IOFBDependentID" = 49179520

| | | | | "IOFBDependentIndex" = 0

| | | | | "IOProbeScore" = 60000

| | | | | "IOMatchCategory" = "IOService"

| | | | | "IOPCIMatch" = "0x4c661002&0xffffffff"

| | | | | "name" = <"OMNI,CALLISTO">

| | | | | "IOProviderClass" = "IOPCIDevice"

| | | | | }

| | | | |

| | | | +-o CallistoFB <class CallistoFB, registered, matched, activ$

| | | | | {

| | | | | "IOMatchCategory" = "IOFramebuffer"

| | | | | "CFBundleIdentifier" = "com.free.driver.Callisto"

| | | | | "IOFBDependentID" = 49179520

| | | | | "IOFBScalerInfo" = <00000000000000000000000000000000020$

| | | | | "IOFBTransform" = 0

| | | | | "IOFBCursorInfo" = ()

| | | | | "IONameMatched" = "OMNI,CALLISTO"

| | | | | "IOFBMemorySize" = 33554432

| | | | | "IOFBWaitCursorFrames" = 15

| | | | | "IODisplayParameters" = "IOFramebufferParameterHandler $

| | | | | "IOGeneralInterest" = "IOCommand is not serializable"

| | | | | "IOProbeScore" = 60000

| | | | | "DFP,EDID" = <00ffffffffffff005a631169010101012a0d01038$

| | | | | "IOFramebufferOpenGLIndex" = 0

| | | | | "IOClass" = "CallistoFB"

| | | | | "IOProviderClass" = "CallistoHAL"

| | | | | "Power Management private data" = "{ this object = 035a$

| | | | | "IOFBCurrentPixelCount" = 2034160

| | | | | "Power Management protected data" = "{ theNumberOfPower$

| | | | | "IOFBDependentIndex" = 0

| | | | | "IOFBConfig" = {"IOFBModes"=({"DF"=515,"ID"=1,"DM"=<800$

| | | | | "IOFBGammaCount" = 256

| | | | | "IOFBCurrentPixelClock" = 122000000

| | | | | "AAPL,EDID" = <00ffffffffffff0006101d9225fefd02150f0103$

| | | | | "IOFBWaitCursorPeriod" = 33333333

| | | | | "IOFBGammaWidth" = 8

| | | | | "IONameMatch" = "OMNI,CALLISTO"

| | | | | }

| | | | |

| | | | +-o display0 <class IODisplayConnect, registered, matched,$

| | | | | | {

| | | | | | }

| | | | | |

| | | | | +-o AppleDisplay <class AppleDisplay, registered, matche$

| | | | | {

| | | | | "Power Management protected data" = "{ theNumberOfP$

| | | | | "IODisplayConnectFlags" = <01000100>

| | | | | "IODisplayPrefsKey" = "IOService:/AppleACPIPlatform$

| | | | | "CFBundleIdentifier" = "com.apple.iokit.IOGraphicsF$

| | | | | "IOClass" = "AppleDisplay"

| | | | | "AppleDisplayType" = 20

| | | | | "AppleSense" = 160

| | | | | "IOProbeScore" = 2000

| | | | | "DisplayProductID" = 1310720

| | | | | "IOMatchCategory" = "IODefaultMatchCategory"

| | | | | "Power Management private data" = "{ this object = $

| | | | | "IOProviderClass" = "IODisplayConnect"

| | | | | "DisplayVendorID" = 1970170734

| | | | | }

| | | | |

| | | | +-o IOFramebufferUserClient <class IOFramebufferUserClient$

| | | | {

| | | | }

| | | |

| | | +-o radeonTool <class radeonTool, !registered, !matched, activ$

| | | {

| | | "IOProbeScore" = 0

| | | "Power Management protected data" = "{ theNumberOfPowerSt$

| | | "IOClass" = "radeonTool"

| | | "IOPCIMatch" = "0x51441002 0x51591002 0x4C591002 0x4C5A10$

| | | "Power Management private data" = "{ this object = 02ee10$

| | | "IOProviderClass" = "IOPCIDevice"

| | | "CFBundleIdentifier" = "radeonTool"

| | | "IOMatchCategory" = "radeonTool"

| | | }

Link to comment
Share on other sites

You have to remove the kernel option -v in com.apple.Boot.plist. If I remember right, this is located in /Library/Preferences/SystemConfiguration.

Thanks i removed it and i'll try it in an instant. I knew it must be somewhere in some boot script.

Link to comment
Share on other sites

Guest goodtime
You've interpreted this wrong "!registered" means it's not registered and "!matched" means it's not a match.

 

FYI, regardless of what !registered and !matched says, when ATI2002DContext and ATIR200Surface show up in your ioreg output, you do have 2D Acceleration and it does make a difference playing back quicktime movies.

 

This is the best that you are going to get without a 8.8.1 kernel and a better driver hack like Titan for ATI.

 

When "ATI2002DContext and ATIR200Surface" does NOT show up at all in your -ioreg -l, then you don't have any acceleration. You can find this out by removing the Framebuffer edit from CallistoFB.

 

Without a 8.8.1 kernel, the ATI drivers aren't going to work 100%.

 

I didn't say the 2D Accel was perfect. Like I said this is the best you are going to get for the time being.

 

gt

Link to comment
Share on other sites

I would have to disagree with you. The problem with most people is they give up before they begin. Captin is really working hard and has made a good deal of progress. Giving up and just saying it won't work because you don't have a working solution is NOT the answer.

I tend to agree that a titan solution is a great idea, and I posed the same idea awhile back, but got kinda laughed at. There REALLY is no reason that we cannot do the same thing for ALL hardware in the system. Each driver is nothing more than a pseudo-driver which provides info the the "real driver". I see no real reason why we cannot fake drivers that really do nothing more than parse the wanted data to the real driver. Almost a emulation for specific drivers..... almost.

 

I think if we could really get some BSD developers on the scene we really could put our heads together to make ANYTHING. I would like to believe that writing drivers for BSD is easy... so just how hard would it be to write a driver that talks to the hardware,and passes the info back to os x to tell it what it wants? Of course native drivers would be faster, yeah, but I cannot imagine a HUGE difference if done correctly. vmware KINDA does the same thing. It takes a pseudo-environment and loads all the os and programs on top of it. Well we already have a working enviroment, so we just need to make a boot loader or SOMETHING that will just simulate the exact hardware that os x wants... (kinda like emulating sse3..)'

Anyways, enough drunk babel.... just come to me if you need ideas... I can hooks it ups!

Link to comment
Share on other sites

I tend to agree that a titan solution is a great idea, and I posed the same idea awhile back, but got kinda laughed at. There REALLY is no reason that we cannot do the same thing for ALL hardware in the system. Each driver is nothing more than a pseudo-driver which provides info the the "real driver". I see no real reason why we cannot fake drivers that really do nothing more than parse the wanted data to the real driver. Almost a emulation for specific drivers..... almost.

Real Macs have EFI. Titan and Natit are performing some of the function of the (missing) EFI by tying the hardware, the IOKIT and the drivers together.

 

As Bofors said in the EFI forum on this board:

 

EFI is the broad interface between OS X and the physical hardware, not just a "booting medium". If it was, there would no reason for Apple to release an EFI development kit, would there? Nobody else would need to deal with EFI because booting is Apple's exclusive domain, right?
Link to comment
Share on other sites

So its acting like the HAL of the windows nt systems?

I was wondering why such sharp guys in the os x community had not thought to push drivers, guess I know why.

*goes to read the EFI thread, and think up more ideas*

 

Again, Captin', any progress on your kit?

Link to comment
Share on other sites

Okay - Sorry I haven't had time to work on Katana (or even sleep for that matter), but now I have a little more time on my hands to work on Katana :P

 

Here's whats changed so far in 0.3

* Ability to decide what packages you want to install (ex. Callisto 003 or a slightly modified Callisto 005, 10.4.1 OpenGL framework, etc.)

 

* Improved autodetection (should work in 10.4.8 and is still compatible with 10.4.6), slightly more efficient too

 

* Includes new Callisto 005 and the 10.4.1 OpenGL framework if you're feeling keen to experiment (also includes new AGPGart)

 

* Installer backs up existing Callisto and AGPGart kexts as well as ATI kexts (also backs up current OpenGL Framework if 10.4.1 OpenGL framework is installed)

 

* Added a bit of cushy eye candy

 

What I'd like to implement / working on now

* Ability to toggle autodetection in installer

* Natit install option

* No longer have to drag uninstaller into terminal - double clicking uninstaller to execute (maybe add a cushy GUI uninstaller soon?)

 

So basically this build doesn't do anything earth shattering yet - just includes more packages, newer versions, easier to use & customize and makes things that didn't work for everyone (ex. autodetection) function for more users than before.

 

For future versions of Katana - if this build is a success, it will have accomplished everything it was designed to do initially - so I'll be lame and call it Katana 1.0 just for formality's sake :D - I'll then just keep releasing refreshes of version 1 with the latest (and stable) packages.

 

And no new news with the QE effort on 9x to report on yet.

 

Edit: My laptop just died suddenly, it won't even turn on. :/

I was able to grab my Katana stuff off the dead laptop via a incredibly handy laptop-IDE converter, but I'm afraid work on Katana will have to be temporarily halted until I get a OS X compatible computer.

Link to comment
Share on other sites

Sounds great!

On your lappy, check a couple things.

#1. Make sure your power supply is working and your laptop is getting power via it. The cables like to break and I have two lappies that have "died" due to this. Easy fix obviously.

#2. Is the battery holding a charge?

#3. When you say won't turn on, do you mean no power to the laptop, or just the screen will not turn on? If so you might try plugging in a monitor to the back of the lappy (most have a vga port).

Link to comment
Share on other sites

Edit: My laptop just died suddenly, it won't even turn on. :/

I was able to grab my Katana stuff off the dead laptop via a incredibly handy laptop-IDE converter, but I'm afraid work on Katana will have to be temporarily halted until I get a OS X compatible computer.

 

That sucks, I was gonna tell you joblo10 has put up source of XRadeonFB if you wanted to see what you could do with it, but it looks like you've got while. Good Luck :D

Link to comment
Share on other sites

BobOki - Thanks for the tips - tried those already though.

My battery died, long, long ago and relies heavily on the charger. I had a spare charger (checked it with voltmeter and ammeter too), but to no avail.

 

The charging LED would go on - but trying to turn it on via the switch would do nothing.

 

When I shook the laptop I heard something rattling (sure enough it was some part of the power button), got some crazy glue, put it back in place and voila - works great now. I got really lucky as laptop repairs are notoriously difficult or impossible, so I'll get back to work :)

 

joe75 - Thanks for the heads up. I downloaded the source to XRadeonFB and AGPGart and I must say joblo has put a lot of work into these projects. His code documentation is a bit sparse in places, but hopefully I'll be able to see his logic. Anyways, at a first glance it looks like it has potential and I'll do what I can with it.

Link to comment
Share on other sites

So far work on Katana 0.3 is progressing a bit slowly - I got kinda sidetracked into working on this..

 

katanadockw7.png

 

Not only will it act as a Katana uninstaller, you can choose what elements of Katana you want to remove. You can also revert to previous builds of Katana or your original settings.

 

If I finish this first I'll throw it in 0.3, if not, I'll throw it in a later build.

 

Note: The above image is a mock-up but will resemble (more or less) the functionality of the end product. (Haven't worked on GUI parts yet)

Link to comment
Share on other sites

kn3pp - Nope, sorry, for most people this will not enable QE/CI. I'm currently teaching myself IOKit and trying to continue the work of joblo on a Radeon framebuffer. I can't make any promises, but (again) I'll release something here should my ideas work.

 

:whistle:

 

Also - if you find the postinstall portion of Katana .2c to be confusing, .3 will (one of these days, any time now :compress:) will be released and will do all the work (hopefully) for you.

Link to comment
Share on other sites

Okay I'm almost ready to release it, I just need one of you running 10.4.7 JaS to test the new autodetection script. It's pretty simple, but lemme know how it works for you.

 

If it works, I'll throw 0.3 up right away.

 

echo Autodetecting graphics card...

iodump=$(ioreg -l)
devID="not found"
venID="not found"
sherlock=`ioreg -l | grep VGA@0`

if [ "$sherlock" ]; then
# 10.4.7 JaS
echo 10.4.7 JaS-like install detected, proceeding

iodump=${iodump#*VGA@0}
iodump=${iodump#*compatible}		

# Going 10 back for good measure
devIDpos=14
venIDpos=19

while [ "$venID" != "1002" ]
do
	venID=${iodump:$devIDpos:4}
	devID=${iodump:$venIDpos:4}
	#echo Current fetch: DeviceID: $devID Vendor ID: $venID
	devIDpos=$[$devIDpos+1]
	venIDpos=$[$venIDpos+1]
done
else
sherlock=`ioreg -l | grep display@0`
if [ "$sherlock" ]; then
	# 10.4.6 Goatsecx
	echo 10.4.6 Goatsecx-like install detected, proceeding

	iodump=${iodump#*display@0}
	iodump=${iodump#*compatible}		

	# Going 10 back for good measure
	devIDpos=14
	venIDpos=19

	while [ "$venID" != "1002" ]
	do
		venID=${iodump:$devIDpos:4}
		devID=${iodump:$venIDpos:4}
		#echo Current fetch: DeviceID: $devID Vendor ID: $venID
		devIDpos=$[$devIDpos+1]
		venIDpos=$[$venIDpos+1]
	done

else
	echo Katana autodetection is not compatible with this system.
	exit 1
fi
fi

echo
echo Autodetection successful.
echo Retrieved DeviceID: $devID
echo Retrieved VendorID: $venID

Link to comment
Share on other sites

hmm .. i will reinstall the bugger to JaS 10.4.6 .. but i have only found the 10.4.8 update as of now ...

 

btw ... the resolution issue was ofcourse fixed by your nifty lil app...

 

but ill be happy to test katana in 10.4.8

Link to comment
Share on other sites

 Share

×
×
  • Create New...