Jump to content

iHack13

iHack13

Member Since 21 Jul 2008
Offline Last Active Mar 07 2012 11:28 PM
*****

Topics I've Started

[TEQUILA-FIX] GraphicsEnabler, Black Screen and PCIRoot Fix for Chameleon

16 January 2010 - 11:10 PM

Hey guys. original Post can be found here http://forum.voodoop...pic,1111.0.html

What you need to do to provide smthn:

- tell me if your PciRoot is found when booting up. (Can be seen for half a second after hitting OSX Install to boot up. If you only get one line or so , your PciRoot should be ok)
- Post the few lines under Device (PCI0) like I did in the original Post. In order to do that get this app DSDTSE and click "Extract dsdt" and use the searchbox
- Try to replace the old name with _UID
- tell me if PciRoot works for you now
- tell me if GraphicsEnabler=yes bootflag works for you now (remember to remove any injectors or EFI string)

lets see if we can get something working in this thread
______________

The Problem: Chameleon may not recognize the entry for the PciRoot in your DSDT even if it exists, since Chameleon RC4 only sees _UID entries for PciRoot ( proof in Chameleon Source/i386/libsaio/device_inject )

The idea: Getting Chameleon to see your PciRoot ( 0 or 1, doesn't matter), in order to get GraphicsEnabler working.

The Profits (if it works): Your Graphics will be fully recognized, without any Injector or String. Futureproof!

Note: Please don't mix up things. This Guide does NOT have to do anything with getting the values (0/1) right for your particular Motherboard. This guide shows you that even if you do have the right value, Chameleon may not find it, because of adressing issues.

First Step: See if Chameleon finds your PciRoot

Reboot if you are in the OS. I cant promise you that this will make your life easier but try to press the Pause key on your keyboard after hitting enter to boot up your OSX Install or try following boot flag
Wait=Yes
I hope it pauses/slows the output for you... if not, you need fast eyes and maybe several bootups to vaguely read the line.

Look if it says PciRoot found or not.
  • If it already finds your PCIRoot and only gives you one line in the beginning, then sorry this guide wont help you most likely.
  • If it tells you that it couldn't find the PciRoot, then try to boot with PciRoot=1 which is the alternative, since PciRoot=0 is default in RC4. If it finds the PciRoot now, then sorry look at 1).
  • If it still doesnt find it then continue.
Alternatively you can use the IORegistryEditor mentioned a step below, to see if PciRoot is recognized. Just check if it outputs a value for PciRoot ( _UID), look below for further information. I cant guarantee you whether this method is doubtfree tho...

Second Step: Getting PCIRoot information from your DSDT

Here you can choose one of the methods to obtain the information required. Use the other method if the once which you've chosen doesn't work for you.

// Please do post the Information in this thread.

A) Tequila Method, using DSDTSE

Get the DSDTSE Tool from >>> Click to Download DSDTSE <<<

Open it up. Click "Extract DSDT". It will take you to a new window. On the right search for "Device (PCI" . It should get you to the location.
Posted Image
B) IORegistryExplorer-method


The IORegistryEditor is also implemented into DSDTSE, just click on Get under Registry info. If you want to get the Tool separately you can download >>> IORegistryEditor here (indirect link) <<<

When you fire up the Tool, search PCI , first. Click on the PCI0 which is the entry below default selection and look if there is a PCIRoot value 0 or 1 on the right, e.g. in the form of _UID. Since we want to add the PciRoot information, there shouldn't be one and we are most likely good to go and continue..
Posted Image

Third Step: Add/Replace the information in your DSDT

In case your PciRoot's name is _ADR or something different, replace it with _UID like I did. If there is no such value, simply add the line. You can take a look at my special case.

Before:
Device (PCI0)
		{
			Name (_HID, EisaId ("PNP0A08"))
			Name (_CID, EisaId ("PNP0A03"))
			Name (_ADR, Zero)
			Name (_BBN, Zero)
			OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
			Field (HBUS, DWordAcc, NoLock, Preserve)

After:
Device (PCI0)
		{
			Name (_HID, EisaId ("PNP0A08"))
			Name (_CID, EisaId ("PNP0A03"))
			Name (_UID, Zero)
			Name (_BBN, Zero)
			OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
			Field (HBUS, DWordAcc, NoLock, Preserve)

In my case it doesn't matter if the value is Zero or 0x00.

On DSDTSE click Compile DSDT and either place the dsdt.aml in your /Extra folder respectively custom folder or use the Install DSDT button.
If you're not using this tool, then compile your dsdt.aml with the DSDT Patcher in Terminal. But simply stick to the tool if you are a novice.

Fourth Step: Reboot and Check your work

Before rebooting, check for any Graphics injection ( Injector kexts NVKush or NVEnabler , or EFI Strings etc ). All has to be clear, so your machine boots up in VESA without any QE and Full Res.
Check if Chameleon finds PciRoot at startup, like you did in Step one. Also boot with the flag
GraphicsEnabler=Yes
to see if Chameleon handles Gfx fine now. If it does then edit it into your Boot.plist in /Extra so you don't have to retype it every time you're booting up

Under construction

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy