Jump to content

DSDT: trick retail drivers by changing "device-id" (e.g USB)


zhell
 Share

366 posts in this topic

Recommended Posts

I will try that and report.

I have iMac5,1 as Modell in the smbios (chameleon) - doesnt matter i hope, because i want not change to any MacPro Modell (because of my CPU type C2D and not want AppleInteCPU / AppleSMC CPU problems).

For my knowledge only MacPro Modells have that ESB SATA device, thats because i ask back.

Thanks for the help

EDIT:

I am back , changed DSDT SATA injection from 23,29 to 81,26;)

 

Results :

Now the SATA device is listed as ESB2 AHCI , before it was ICH9 AHCI in IOREG and Systemprofiler.

Also (as 23,29 ICH9 injected) it dont need the AHCIPortJinector.kext to boot.

But i believe it doesnt matter if 23,29 (ICH 9) or (81,26 ESB2) if ONE of them is injected by DSDT.

I cant see any speed or other changes, but only tried it on my 10.5.8 partition.

Link to comment
Share on other sites

Look at my posting.

Ist doesnt really matter WHICH device-id you inject in the dsdt.

I got the abolut same (good) results with dsdt ICH9(my real id) and ESB2 (macPro id).

I will get back to ICH 9 because that also worked like it should.

Link to comment
Share on other sites

Does someone have a lspci output (with device-ids) of a MacPro 3,1? I would like to adapt my ICH10 Sata Device ID to the MacPro one. (Didn't find one via Google)

 

 

You want an ioreg file? You can pull the IDs off that.

 

Mac_Pro_3.1.ioreg.zip

 

Look at my posting.

Ist doesnt really matter WHICH device-id you inject in the dsdt.

I got the abolut same (good) results with dsdt ICH9(my real id) and ESB2 (macPro id).

I will get back to ICH 9 because that also worked like it should.

 

 

So are you saying you think using ESB2 id's are OK?

Link to comment
Share on other sites

Look at my posting.

Ist doesnt really matter WHICH device-id you inject in the dsdt.

I got the abolut same (good) results with dsdt ICH9(my real id) and ESB2 (macPro id).

I will get back to ICH 9 because that also worked like it should.

 

I don't know if you've tried with ICH9 mitch but with my ICH9-R if I inject ICH9 or ICH10 id I still need IOAHCIBlockStorageInjector.kext

 

If I inject ESB2 I don't need either IOAHCIBlockStorageInjector.kext or AHCIPortinjector.kext

 

post-275122-1252280819_thumb.png

 

D.

 

ESB2 is the southbridge in MacPro circ' 2006.

##edit## post#5 http://www.insanelymac.com/forum/index.php?showtopic=23896

 

It seems some people hvae had sucsess with ESB2 in RAID mode on the MacPro. here

I wonder how this would work with ICH-9 in RAID mode on a Hack?

 

I'll give it a go later on.

 

D.

 

Just tried to boot my none raid back-up drive with boot132 and IHC9 in RAID mode.

 

Didn't work! "waiting for root device"

 

worth a pop though :thumbsdown_anim:

Link to comment
Share on other sites

"I don't know if you've tried with ICH9 mitch but with my ICH9-R if I inject ICH9 or ICH10 id I still need IOAHCIBlockStorageInjector.kext

If I inject ESB2 I don't need either IOAHCIBlockStorageInjector.kext or AHCIPortinjector.kext

"

Ok, i only testet without AHCIPortinjector.kext , - ICH 9 dev id or ESB2 dev-id - both worked in DSDT.

I havent not tested to remove also the orange HD icon fix = IOAHCIBlockStorageInjector.kext with ICH 9 dev id or ESB2 dev-id in DSDT.

Theoretical if the Port injection works with both id´s also the Block storage injection should be not needed anymore with one of the dev-ids.

Link to comment
Share on other sites

"I don't know if you've tried with ICH9 mitch but with my ICH9-R if I inject ICH9 or ICH10 id I still need IOAHCIBlockStorageInjector.kext

If I inject ESB2 I don't need either IOAHCIBlockStorageInjector.kext or AHCIPortinjector.kext

"

Ok, i only testet without AHCIPortinjector.kext , - ICH 9 dev id or ESB2 dev-id - both worked in DSDT.

I havent not tested to remove also the orange HD icon fix = IOAHCIBlockStorageInjector.kext with ICH 9 dev id or ESB2 dev-id in DSDT.

Theoretical if the Port injection works with both id´s also the Block storage injection should be not needed anymore with one of the dev-ids.

Theoretically, yes but in practice (for ICH9-R) removing IOAHCIBlockStorageInjector.kext with id set to ICH9 or ICH10 gives orange icons.

 

Only with id set to ESB2 are the icons gray without IOAHCIBlockStorageInjector.kext .

 

ICH10

post-275122-1252331748_thumb.png

 

ESB2

post-275122-1252331776_thumb.png

 

D.

 

Additional:

You can see the IOAHCIBlockstorage and IOAHCIDevice are seen as external with ICH9 or ICH10 and internal with ESB2

 

ICH10

post-275122-1252332685_thumb.png

post-275122-1252332708_thumb.png

 

ESB2

post-275122-1252332731_thumb.png

post-275122-1252332753_thumb.png

 

So as both ICH10 and ESB2 have native support in OS X why is this?

 

D.

Link to comment
Share on other sites

Please note this does NOT work - For reference ONLY

 

Ok I've tried applying the Method (_DSM ...) to the route SATA device as well as to each port (bay)

and setting id to ICH9.

 

Thus:

 

Device (SATA)
   {
       Name (_ADR, 0x001F0002)
	Name (_SUN, One)
}
           [b][color="#ff0000"]Method (_DSM, 4, NotSerialized)
           {
               Store (Package (0x03)
                   {

                                   "Physical Interconnect Location",
                                  "Internal",
                                  Buffer (0x01)
                               {
                                   0x01
                                  }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)[/color][/b]
       Device (PRT0)
       {
           Name (_ADR, Zero)
		Method (_GTF, 0, NotSerialized)
           {
           	Name (PIB0, Buffer (0x07)
               {
                   0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
               })
               Return (PIB0)
           }
           Method (_DSM, 4, NotSerialized)
           {
               Store (Package (0x06)
                   {

                                 "Physical Interconnect",
                                  "SATA",
                                   "Physical Interconnect Location",
                                  "Internal",
                "io-device-location", 
                       Buffer (0x06)
                       {
                           "Bay 1"
                       }
                   }, Local0)
               DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
               Return (Local0)
           }

 

This doesn't work but could it be the right way to go???

 

**EDIT** it does compile and show device as ICH9 but drives still listed as external

 

D.

Link to comment
Share on other sites

Please note this does NOT work - For reference ONLY

 

Ok I've tried applying the Method (_DSM ...) to the route SATA device as well as to each port (bay)

and setting id to ICH9.

 

Thus:

 

Device (SATA)
   {
       Name (_ADR, 0x001F0002)
	Name (_SUN, One)
}
           [b][color="#ff0000"]Method (_DSM, 4, NotSerialized)
           {
               Store (Package (0x03)
                   {

                                   "Physical Interconnect Location",
                                  "Internal",
                                  Buffer (0x01)
                               {
                                   0x01
                                  }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)[/color][/b]
       Device (PRT0)
       {
           Name (_ADR, Zero)
		Method (_GTF, 0, NotSerialized)
           {
           	Name (PIB0, Buffer (0x07)
               {
                   0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
               })
               Return (PIB0)
           }
           Method (_DSM, 4, NotSerialized)
           {
               Store (Package (0x06)
                   {

                                 "Physical Interconnect",
                                  "SATA",
                                   "Physical Interconnect Location",
                                  "Internal",
                "io-device-location", 
                       Buffer (0x06)
                       {
                           "Bay 1"
                       }
                   }, Local0)
               DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
               Return (Local0)
           }

 

This doesn't work but could it be the right way to go???

 

**EDIT** it does compile and show device as ICH9 but drives still listed as external

 

D.

 

 

I've tried this and every other combination you can think of. I've been poking around and noticed the _removable or _ejectable attributes in Apple's open source for IOStorageFamily>IOBlockStorageDriver.cpp, check out line 1649 on. This is where it actually defines what icon to use. I've played around with trying to inject properties for those two attributes with no luck. The answer has to be in there somewhere!

 

	attributes |= _ejectable ? kIOMediaAttributeEjectableMask : 0; // <--Does this attribute trigger Internal/External??
attributes |= _removable ? kIOMediaAttributeRemovableMask : 0; // <--Does this attribute trigger Internal/External??

result = m->init(   base,			/* base byte offset */
					byteSize,		/* byte size */
					blockSize,		/* preferred block size */
					attributes,		/* attributes */
					true,			/* TRUE if whole physical media */
					!_writeProtected,	/* TRUE if writable */
			"");			/* content hint */

if (result) {
	char *picture = "External.icns";

	if (_removable) {
		picture = "Removable.icns";
	} else {
		OSDictionary *dictionary = OSDynamicCast(OSDictionary, getProvider()->getProperty(kIOPropertyProtocolCharacteristicsKey));

		if (dictionary) {
			OSString *string = OSDynamicCast(OSString, dictionary->getObject(kIOPropertyPhysicalInterconnectLocationKey));

			if (string) {
				if (string->isEqualTo(kIOPropertyExternalKey)) {
					picture = "External.icns";
				} else {
					picture = "Internal.icns";
				}
			}
		}
	}

 

IOBlockStorageDriver.cpp.zip

 

http://www.opensource.apple.com/

Link to comment
Share on other sites

I've used the dsdt patch to get rid of the legacyAHCI kext, but I've run into a strange problem. When I put the computer to sleep and resume, I am unable to interact with the machine. I can move the mouse, but the cursor is just a beachball. This is a permanent state, but the machine will go back to sleep eventually (on the osx timer).

 

I'm using 10.6 with a ich9 board and the dsdt patches for usb device id, ehci and device id, and esb2. I had this error before the sata patch but after the usb patches, but it was not as frequent. Any ideas?

 

I've tried leaving console open during sleep to see if I can see any logs, but the screen never refreshes, and the logs don't show the device waking from sleep.

Link to comment
Share on other sites

I have a Gigabyte GA-P35-DS3 Rev. 1.0 with a patched DSDT.aml. All USB ports are reported as internal, but i think i have to switch on the bios flag for wake up by mouse.

Will test it as soon as i'm back home again from work.

 

edit: nope, didn't work with my USB mouse and keyboard.

 

Did you get this to work?

 

I have a GA-P35C-DS3R, can you post your dsdt.dsl so I can try to copy & follow it as a guide? This is way over my head ;)

 

Anyone else have a mobo close enough to mine that I can copy from?

 

I can't figure out where to insert the DTGP Method just after the _WAK Method ... Where should this start and end? I can't figure out where the _WAK method ends. :D

Link to comment
Share on other sites

I've used the dsdt patch to get rid of the legacyAHCI kext, but I've run into a strange problem. When I put the computer to sleep and resume, I am unable to interact with the machine. I can move the mouse, but the cursor is just a beachball. This is a permanent state, but the machine will go back to sleep eventually (on the osx timer).

 

I'm using 10.6 with a ich9 board and the dsdt patches for usb device id, ehci and device id, and esb2. I had this error before the sata patch but after the usb patches, but it was not as frequent. Any ideas?

 

I've tried leaving console open during sleep to see if I can see any logs, but the screen never refreshes, and the logs don't show the device waking from sleep.

 

I've experianced a KP since adding ESB2 id.

Repaired permissions and all appears OK since - However I think mitch_de is right in using the motherboards native SATA driver id and IOBlockStorageinjector.kext.

 

D.

Link to comment
Share on other sites

I've experianced a KP since adding ESB2 id.

Repaired permissions and all appears OK since - However I think mitch_de is right in using the motherboards native SATA driver id and IOBlockStorageinjector.kext.

 

D.

 

Yeah I'm back to using ICH10.

Link to comment
Share on other sites

Hi,

I want to try the SATA injection, but I don't hav a device named SAT1 or so. What is the right device for me? An whats better ICH10 or ESB injection? And do I have to turn Sata Native Mode on or off?

 

 

Device (IDE1)

Link to comment
Share on other sites

Hi,

I want to try the SATA injection, but I don't hav a device named SAT1 or so. What is the right device for me? An whats better ICH10 or ESB injection? And do I have to turn Sata Native Mode on or off?

 

If you're ICH9 (i think you are) then replace the IDE part of DSDT with the SATA part thats been posted here.

 

And your best adding id for ICH9 and keeping the IOBloackStorage kext.

 

Keep SATA in native mode.

 

D.

Link to comment
Share on other sites

I use a SATA Hdd and in BIOS I deactivated AHCI. To boot in IDE mode I use IOATAFamily.kext. I use IDE mode, because my AHCI BIOS is very slow to boot up. Is there any advantage in running AHCI mode instead of IDE?

 

http://expertester.wordpress.com/2008/07/2...mark-advantage/

 

At the end of the day your just adding the device id to SATA/ IDE part of DSDT. The change in DSDT fron IDE1/2 to SATA is cosmetic.

 

D

Link to comment
Share on other sites

Should I inject IDE2 too? Or only IDE1?

 

Have to admitt I'm not sure - It looks like you'll have to apply the Method(_DSm ... ) to both IDE1 and 2 as they're not from a common route SATA.

Give it a go and see.

 

D.

Link to comment
Share on other sites

 Share

×
×
  • Create New...