Jump to content

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


  • Please log in to reply
365 replies to this topic

#321
FKA

FKA

    are we there yet?

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,626 posts
  • Gender:Male
Any chance of you NOt quoting the whole of the first post again artimess ??

#322
artimess

artimess

    InsanelyMac Protégé

  • Members
  • PipPip
  • 97 posts

Any chance of you NOt quoting the whole of the first post again artimess ??


Sorry, wouldn't do it again. Any chance you may have answer for my problem?
Artimess

#323
Yippee Ki Yay

Yippee Ki Yay

    InsanelyMac Protégé

  • Members
  • Pip
  • 15 posts
  • Gender:Male
I have a Dell 755 (ICH9) that is working great with 10.6.3. My only issue is that I could never get sleep to work. It looks like it goes into sleep mode ok, but won't wake up.

I tried the device-ID USB fix detailed at the beginning of this thread, but it had no effect. It looks like the changes to the DSDT are not doing anything. The device IDs reported are the same with or without the DSDT. My DSDT.aml and lspci.txt files are located here: http://www.mediafire.com/?naildek0ymi Any help would be greatly appreciated.

#324
stooovie

stooovie

    InsanelyMac Protégé

  • Members
  • Pip
  • 41 posts
For all of you with nonfunctional USB and FireWire:

try to delete AppleHPET.kext from S/L/E (backup first!)

Worked for me on 10.6.2 and on 10.6.3 as well.

#325
Yippee Ki Yay

Yippee Ki Yay

    InsanelyMac Protégé

  • Members
  • Pip
  • 15 posts
  • Gender:Male
I don't have a problem with USB, just wake from sleep. Will removing AppleHPET fix this?

My understanding is that wake from sleep is a problem with the ICH9 and that's why this thread was created. I just want to know why I don't see the ICH10 in the profiler when I know the DSDT has been loaded. (Confirmed by extracting after adding to /Extra.)

#326
Beerkex'd

Beerkex'd

    Content Provider

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 3,000 posts
  • Gender:Male
  • Location:Belo Horizonte - Brazil

I just want to know why I don't see the ICH10 in the profiler when I know the DSDT has been loaded.


Changing the device IDs of your USB controllers doesn't change ICH9 to ICH10.

#327
thomlx

thomlx

    InsanelyMac Protégé

  • Members
  • Pip
  • 8 posts
Hi,

Hey kidamnesiac, you are lucky! I still get nothing (a blank line) in System Profiler with the two SATA devices I have, despite adding a Method in the device (IDE1) with address 0x001F0002 (that's how my DSDT reports the device).

My board has controller id 0x27C0 which is ICH7. This id is present in AppleIntelPIIXATA.kext too (Info.plist) but it's still not detected.

So please tell us, what code you've included and where?

                // Added method for AppleIntelPIIXATA.kext detection
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0xC0, 0x27, 0x00, 0x00 // Needed device ID is [27C0]
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
Device (PRIM)
{
(code continues here...) _linenums:0'>Device (SATA) // Intel 82801GB/GR/GH (ICH7 Family) SATA IDE Controller { Name (_ADR, 0x001F0002) OperationRegion (PCI, PCI_Config, 0x40, 0x20) Field (PCI, DWordAcc, NoLock, Preserve) { blah-blah }<strong class='bbc'> // Added method for AppleIntelPIIXATA.kext detection Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "device-id", Buffer (0x04) { 0xC0, 0x27, 0x00, 0x00 // Needed device ID is [27C0] } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) }</strong> Device (PRIM) { (code continues here...)

Many thanks.


I have the same problem and am still searching for a solution on this. MacKonsti - did you made any progress here?

thomlx

#328
MacKonsti

MacKonsti

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 233 posts
  • Gender:Male
  • Location:Muppet Show

Hi,
I have the same problem and am still searching for a solution on this. MacKonsti - did you made any progress here?
thomlx

Hello thomlx, still the same. I tried the IOAHCIsomething injector in /Extra/Extensions, fixed its Info.plist file inside to reflect my ICH7 controller, nothing.

I have managed to fix -more or less- everything else on my mobo, not this one!

Even injected modes/names in DSDT (like e.g. graphics card) but it's not read, anywhere. Changed from MacPro3,1 to MacPro4,1.plist and my system hung (KP) so back to MacPro3,1. I thought it could be the computer description that would help...

I can't figure out where the heck System Profiler reads the SATA controller name/model!
Anyone who care to give a hint?!?

#329
thomlx

thomlx

    InsanelyMac Protégé

  • Members
  • Pip
  • 8 posts
Hi,

I bet that it has something to do with the model identifier. It just comes to my mind that the Mac Mini based on the Intel Chipset (Model Identifier Macmini2,1 -> see also http://www.everymac....2.0-specs.html) and also the old white MacBook (with CoreDuo) has the same ICH built in like in our boards while the MacPro Models have ICH10 (to my knowledge). Maybe it would be worth a try to set Macmini2,1 in the boot.plist - Unfortunately I am at work currently and can not check right now if this might help...

BTW: My graphics card is displayed correctly via System Profiler - it is only the ICH7 SATA which is missing.

thomlx

#330
Yippee Ki Yay

Yippee Ki Yay

    InsanelyMac Protégé

  • Members
  • Pip
  • 15 posts
  • Gender:Male

Changing the device IDs of your USB controllers doesn't change ICH9 to ICH10.

If the OS still thinks it's ICH9 then how does this work? I thought the point of changing the device IDs was to trick the OS into thinking it was using an ICH10.

#331
s.goten

s.goten

    InsanelyMac Protégé

  • Members
  • PipPip
  • 81 posts
Hi,
my sleep works fine (thanks for this guide). Instead the safe sleep doesn't work.
my snow goes to normal sleep even if I set hibernate mode to 1 (only hibernate), and the strange thing is that the hard disk should load a little time to write the ram status into sleepimage file, but it doesn't happens to me. so I have a sleepimage file that is probably fake and the system fails to wake up (after reboot I get "incorrect image signature").
anyone can help me? i don't understand why the system does not write the sleepimage file before going to sleep.

thanks

#332
pentiumpc

pentiumpc

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts

For all of you with nonfunctional USB and FireWire:

try to delete AppleHPET.kext from S/L/E (backup first!)

Worked for me on 10.6.2 and on 10.6.3 as well.


you can keep AppleHPET.kext if you fix your USB ID and delete device "FWHD" from your DSDT.aml.

#333
Jonas_S

Jonas_S

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts
I'm having troubling applying this same concept to patching my ICH8-based laptop. The relevant output from lspci is:

00:1a.0 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 [8086:2834] (rev 03)
00:1a.1 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 [8086:2835] (rev 03)
00:1a.7 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 [8086:283a] (rev 03)
00:1d.0 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 [8086:2830] (rev 03)
00:1d.1 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 [8086:2831] (rev 03)
00:1d.2 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 [8086:2832] (rev 03)
00:1d.7 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 [8086:2836] (rev 03)

Using the same convention as the first post, this is cross referenced as follows:

USB 1: 1D  2830
USB 2: 1D, 1: 2831
USB 3: 1D, 2: 2832
USB 4: 1A: 2834
USB 5: 1A,1: 2835
EHCI 1: 1D, 7: 2836
EHCI 2: 1A, 7: 283a

I changed my DSDT code to the following:

Device (USB1)            {                Name (_ADR, 0x001D0000)                OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)                Field (U1CS, DWordAcc, NoLock, Preserve)                {                    U1EN,   2                }                Name (_PRW, Package (0x02)                {                    0x03,                     0x03                })                Method (_PSW, 1, NotSerialized)                {                    If (Arg0)                    {                        Store (0x03, U1EN)                    }                    Else                    {                        Store (Zero, U1EN)                    }                }                Method (_S3D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_S4D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_DSM, 4, NotSerialized)                {                    Store (Package (0x02)                        {                            "device-id",                             Buffer (0x04)                            {                                0x34, 0x3A, 0x00, 0x00                            }                        }, Local0)                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))                    Return (Local0)                }            }            Device (USB2)            {                Name (_ADR, 0x001D0001)                OperationRegion (U2CS, PCI_Config, 0xC4, 0x04)                Field (U2CS, DWordAcc, NoLock, Preserve)                {                    U2EN,   2                }                Method (_S3D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_S4D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_DSM, 4, NotSerialized)                {                    Store (Package (0x02)                        {                            "device-id",                             Buffer (0x04)                            {                                0x35, 0x3A, 0x00, 0x00                            }                        }, Local0)                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))                    Return (Local0)                }            }            Device (USB3)            {                Name (_ADR, 0x001D0002)                OperationRegion (U3CS, PCI_Config, 0xC4, 0x04)                Field (U3CS, DWordAcc, NoLock, Preserve)                {                    U3EN,   2                }                Method (_S3D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_S4D, 0, NotSerialized)                {                    Return (0x02)                }                 Method (_DSM, 4, NotSerialized)                {                    Store (Package (0x02)                        {                            "device-id",                             Buffer (0x04)                            {                                0x36, 0x3A, 0x00, 0x00                            }                        }, Local0)                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))                    Return (Local0)                }            }            Device (USB4)            {                Name (_ADR, 0x001A0000)                OperationRegion (U4CS, PCI_Config, 0xC4, 0x04)                Field (U4CS, DWordAcc, NoLock, Preserve)                {                    U4EN,   2                }                Method (_S3D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_S4D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_DSM, 4, NotSerialized)                {                    Store (Package (0x02)                        {                            "device-id",                             Buffer (0x04)                            {                                0x37, 0x3A, 0x00, 0x00                            }                        }, Local0)                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))                    Return (Local0)                }            }            Device (USB5)            {                Name (_ADR, 0x001A0001)                OperationRegion (U5CS, PCI_Config, 0xC4, 0x04)                Field (U5CS, DWordAcc, NoLock, Preserve)                {                    U5EN,   2                }                Name (_PRW, Package (0x02)                {                    0x05,                     0x03                })                Method (_PSW, 1, NotSerialized)                {                    If (Arg0)                    {                        Store (0x03, U5EN)                    }                    Else                    {                        Store (Zero, U5EN)                    }                }                Method (_S3D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_S4D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_DSM, 4, NotSerialized)                {                    Store (Package (0x02)                        {                            "device-id",                             Buffer (0x04)                            {                                0x38, 0x3A, 0x00, 0x00                            }                        }, Local0)                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))                    Return (Local0)                }            }            Device (EHC1)            {                Name (_ADR, 0x001D0007)                OperationRegion (U7CS, PCI_Config, 0x54, 0x04)                Field (U7CS, DWordAcc, NoLock, Preserve)                {                        ,   15,                     PMES,   1                }                Device (HUB7)                {                    Name (_ADR, Zero)                    Device (PRT1)                    {                        Name (_ADR, One)                    }                    Device (PRT2)                    {                        Name (_ADR, 0x02)                    }                    Device (PRT3)                    {                        Name (_ADR, 0x03)                    }                    Device (PRT4)                    {                        Name (_ADR, 0x04)                    }                    Device (PRT5)                    {                        Name (_ADR, 0x05)                    }                    Device (PRT6)                    {                        Name (_ADR, 0x06)                    }                }                Name (_PRW, Package (0x02)                {                    0x0D,                     0x03                })                Method (_S3D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_S4D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_DSM, 4, NotSerialized)                {                    Store (Package (0x02)                        {                            "device-id",                             Buffer (0x04)                            {                                0x39, 0x3A, 0x00, 0x00                            }                        }, Local0)                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))                    Return (Local0)                }            }            Device (EHC2)            {                Name (_ADR, 0x001A0007)                OperationRegion (UFCS, PCI_Config, 0x54, 0x04)                Field (UFCS, DWordAcc, NoLock, Preserve)                {                        ,   15,                     PMES,   1                }                Device (HUB7)                {                    Name (_ADR, Zero)                    Device (PRT1)                    {                        Name (_ADR, One)                    }                    Device (PRT2)                    {                        Name (_ADR, 0x02)                    }                    Device (PRT3)                    {                        Name (_ADR, 0x03)                    }                    Device (PRT4)                    {                        Name (_ADR, 0x04)                    }                }                Name (_PRW, Package (0x02)                {                    0x0D,                     0x03                })                Method (_S3D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_S4D, 0, NotSerialized)                {                    Return (0x02)                }                Method (_DSM, 4, NotSerialized)                {                    Store (Package (0x02)                        {                            "device-id",                             Buffer (0x04)                            {                                0x39, 0x3A, 0x00, 0x00                            }                        }, Local0)                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))                    Return (Local0)                }            }

I have the DTGP Method defined earlier in my DSDT. But, there is no effect on sleep! If I let the laptop go into "sleep" on its own, it only has "display sleep" and will waken upon keyboard or mouse. If I manually sleep through the Apple menu, it goes into some form of pseudosleep, but doesn't wake up, having to be powered off and then on. I'm not sure if its real sleep that it goes into, because this is a laptop that, at least on Windows, has a logo that is lit when on, and off when sleeping or powered down. That logo remains lit even with manual sleep. Can anyone give me any ideas?

I saw this other post about applying a similar fix for ICH8, but it wouldn't compile for me.

#334
MacKonsti

MacKonsti

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 233 posts
  • Gender:Male
  • Location:Muppet Show
Jonas_S mate, for every Device (USBxx) you should insert (via DTGP) the corresponding device-id. Namely, for ICH8 devices that you posted:
USB1 - UHCI Controller #1 = "device-id"  0x30, 0x28, 0x00, 0x00
USB2 - UHCI Controller #2 = "device-id"  0x31, 0x28, 0x00, 0x00
USB3 - UHCI Controller #3 = "device-id"  0x32, 0x28, 0x00, 0x00
USB4 - UHCI Controller #4 = "device-id"  0x34, 0x28, 0x00, 0x00
USB5 - UHCI Controller #5 = "device-id"  0x35, 0x28, 0x00, 0x00

EHC1 - EHCI Controller #1 = "device-id"  0x36, 0x28, 0x00, 0x00
EHC2 - EHCI Controller #2 = "device-id"  0x3A, 0x28, 0x00, 0x00
...and not the IDs you've inserted in your code. They are wrong...
You're also missing another piece of code for each EHCI controller 1 & 2 (as I did in my DSDT). This is the code inserted in one of the EHCI controllers:
Method (_DSM, 4, NotSerialized)  // Added method for native ACPI support
	{
		Store (Package (0x06) {
			"AAPL,clock-id",
				Buffer (0x01) {One},
			"device_type",
				Buffer (0x05) {"EHCI"},
			"device-id",
				Buffer (0x04) {0x36, 0x28, 0x00, 0x00}  // Device ID for ICH8 is [2836]
		}, Local0)
		DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
		Return (Local0)
	}


#335
Jonas_S

Jonas_S

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts

You're also missing another piece of code for each EHCI controller 1 & 2 (as I did in my DSDT). This is the code inserted in one of the EHCI controllers:

Method (_DSM, 4, NotSerialized)  // Added method for native ACPI support
	{
		Store (Package (0x06) {
			"AAPL,clock-id",
				Buffer (0x01) {One},
			"device_type",
				Buffer (0x05) {"EHCI"},
			"device-id",
				Buffer (0x04) {0x36, 0x28, 0x00, 0x00}  // Device ID for ICH8 is [2836]
		}, Local0)
		DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
		Return (Local0)
	}


MacKonsti, thanks for the reply man. Adding that last bit of code causes a bunch of compile errors:
649:   If (\_SB.PCI0.EHC2.PMES)Error    4064 - Object does not exist ^  (\_SB.PCI0.EHC2.PMES)651:  Store (0x01, \_SB.PCI0.EHC2.PMES)Error    4064 - Object does not exist ^  (\_SB.PCI0.EHC2.PMES)652: Notify (\_SB.PCI0.EHC2, 0x02)Error    4064 - Object does not exist ^  (\_SB.PCI0.EHC2)6365: Device (EHC2)Error    4096 - syntax error, unexpected PARSEOP_DEVICE, expecting '{' ^ 7497: Notify (\_SB.PCI0.EHC2, 0x00)Error    4064 - Object does not exist ^  (\_SB.PCI0.EHC2)

Any ideas? I've attached my dsdt without the additional EHCI code if you can take a look....

Thanks!

Attached Files

  • Attached File  dsdt.zip   27.29KB   5 downloads


#336
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts
Hi Jonas_S,

Your dsdt wouldn't compile. You should fix the errors first before proceed to add any additional code in your dsdt.

Sorry, my mistake. Your dsdt compiled successfully with iasl for ACPI rev 4.

#337
Jonas_S

Jonas_S

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts

Hi Jonas_S,

Your dsdt wouldn't compile. You should fix the errors first before proceed to add any additional code in your dsdt.

Sorry, my mistake. Your dsdt compiled successfully with iasl for ACPI rev 4.


Thanks for checking... It does indeed compile correctly without the additional EHCI code. I've attached both DSDTs: one without the EHCI code that does compile correctly, and the other with the EHCI code that gives all the errors. I hope someone better at this than me can help sort it out!

Thanks again!

Attached Files



#338
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

Thanks for checking... It does indeed compile correctly without the additional EHCI code. I've attached both DSDTs: one without the EHCI code that does compile correctly, and the other with the EHCI code that gives all the errors. I hope someone better at this than me can help sort it out!

Thanks again!

Your problem is, there is already "Method (_DSM...." exist in EHC1 & EHC2 devices. iasl can't compile it because there is duplicate entry of "Method (_DSM..." in EHC1 & EHC2 devices.. Make sure there is only one "Method (_DSM..." exist.

#339
Jonas_S

Jonas_S

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts

Your problem is, there is already "Method (_DSM...." exist in EHC1 & EHC2 devices. iasl can't compile it because there is duplicate entry of "Method (_DSM..." in EHC1 & EHC2 devices.. Make sure there is only one "Method (_DSM..." exist.

Dammit... did that, still have compilation errors. See revised code attached.

Attached Files



#340
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

Dammit... did that, still have compilation errors. See revised code attached.

Please cleanup your dsdt first. Which tool did you use to extract your dsdt? Did you manually add the entry for "Device (EHC1)" & "Device (EHC2)" in your dsdt? It looks like copied from somewhere else. I can't troubleshoot it because the content is not properly "formatted".





2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users

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