Jump to content

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


zhell
 Share

366 posts in this topic

Recommended Posts

Hi all,

first thanks for this amazing dsdt device id injection thing

now the question:

i'm on a laptop with ich9-M intel chipset [8086:2929]

currently using

AHCIPortInjector.kext

IOAHCIBlockStorageInjector.kext

 

I'm planning to inject 2929 through SAT0 device with DSDT

but my point is

i've got an external serial ata port in which i'd like the hot plug capability to work (orange icon)

is this even possible?

removing the blockstorage kext just puts all drives on "orange icons"

instead i'd like to have only the e-sata plugged drives with that icon

thank you

kind regards

 

kidA

 

addendum

 

tried to add my ich9-m device id 2929 through dsdt in the Device (SAT0) section,

all works without AHCIPortInjector.kext but now system profiler reports

Unknown AHCI Standard Controller

how do i fix that, is this a bad sign?

 

thank you all

 

 

sorry to bump this

just to add that this is the code i added to my device sat0 part

 

		Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x08)
					{
						"device-id",
						Buffer (0x04)
						{
							0x29, 0x29, 0x00, 0x00
						},

						"device_type", 
						Buffer (0x10)
						{
							"AHCI Controller"
						}, 

						"model", 
						Buffer (0x1C)
						{
							"ICH9-M SATA/AHCI Controller"
						}, 

						"name", 
						Buffer (0x1C)
						{
							"ICH9-M SATA/AHCI Controller"
						}							
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}

 

 

but the vendor product in system profiler still shows as

"Unknown AHCI Standard Controller"

Is this bad sign?

thank you all

 

kind regards

 

kidA

Link to comment
Share on other sites

addendum

 

tried to add my ich9-m device id 2929 through dsdt in the Device (SAT0) section,

all works without AHCIPortInjector.kext but now system profiler reports

Unknown AHCI Standard Controller

how do i fix that, is this a bad sign?

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?

 

            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
               }

[b]                // 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)
               }
[/b]
               Device (PRIM)
               {
                       (code continues here...)

 

Many thanks.

Link to comment
Share on other sites

Thanks for the tutorial. For me this fixed just part of the job. I have an ASUS P5K(P35 chipset with ICH9). Before patching my DSDT it would go halfway to sleep, the power LED on my case was still on, and I could hear the fans. Now the same happens, just that the power LED is blinking, like it already was in S3 sleep and the reset button has no effect. There is a similar behavior when shutting down ( the LED is off, fans rolling, reset not working ) but not when restarting. Also the power button does nothing in Mac OS (on my macbook it would bring a sleep/restart/shut down prompt). I don't think this is even related to USB.

 

EDIT: my hack: ASUS P5K , E8400, 4GB DDR2-800, 8600GT, 2 SATA WD 500GB HDDs ( one trough SATA, one in a eSATA enclosure through the JMicron on my board), 2 SATA optical drives and some random stuff: (a PCI TV tuner, an old and unused modem, an old and unused floppy)

Link to comment
Share on other sites

  • 2 weeks later...

I'm using the device ID of ICH10 for ICH9 motherboard (EP35-DS3L):

 

Device (SATA) // =Renamed from IDE1 (removed IDE2)
{
  Name (_ADR, 0x001F0002)
  Method (_DSM, 4, NotSerialized)
  {
   Store (Package (0x02)
   {
		 "device-id", Buffer (0x04){0x22, 0x3A, 0x00, 0x00}
   }, Local0)
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
   Return (Local0)
  }
}

 

Unfortunately, this code requires IOAHCIBlockStorageInjector. On the other side, ESB2 doesn't require IOAHCIBlockStorageInjector.

 

Which one is better ICH10 or ESB2 ? I would be grateful for any help! Thanks!

Link to comment
Share on other sites

  • 2 weeks later...

Cheers!

 

oldnapalm

 

I have the no-name notebook Admiral.

C2D 1.6, Sata, 2 Gb RAM.

I am using iDeneb 10.5.8

Everything is working!

 

When I try to put it in sleep, screen is turning off,

hdd probably also, but fans are moving and this is all.

Then I can only hold power button to shut it off.

I applyed DSDT patcher to new installed system,

and got AML file, but before this I did not have dsdt.aml

file in my /

 

Anyone can help with this?

Thanks.

kextstat.rtf.zip

dsdt.aml.zip

Link to comment
Share on other sites

  • 1 month later...
hi,

does this method work with snow leopard version 10.6.2 too?

Thanks!

Mal

 

Yes. Perfectly running on my laptop except for the FN-F2 {censored}.

 

Anyone here knows how to edit the FN Keys in dsdt? I want to disable my FN-F2, the switch display, because it cause hang on my system.

 

Thanks

 

Anyone please answer this? Disabling FN-F2 would be better because pressing the detect display in preference is working.

Link to comment
Share on other sites

  • 2 weeks later...

before applying this patch on dsdt my system freezes when it went to sleep

now sleep seems to work but the system awakes immediately as if there is something that cause resume from sleep.

if i delete iousbfamily.kext sleep works fine. with that kext i have the issue that i mentioned before.

also with no peripheral plugged into usb ports the problem remains.

 

any suggestions?

 

thanks

Link to comment
Share on other sites

Which method is better for EP35-DS3L (ich9) ? I need to patch Device (SATA) as ICH10 or ESB2?

I have used ESB2 without problems... But I don't know much about ICH10.

Stay with ESB2... because it is roughly the same as ICH9R, whereas ICH10 is slightly different. In my case, only ESB2 fixes the "orange icon" problem.

Link to comment
Share on other sites

before applying this patch on dsdt my system freezes when it went to sleep

now sleep seems to work but the system awakes immediately as if there is something that cause resume from sleep.

if i delete iousbfamily.kext sleep works fine. with that kext i have the issue that i mentioned before.

also with no peripheral plugged into usb ports the problem remains.

 

any suggestions?

 

thanks

Determine in the log what was causing it to wake immidiately. Then, look in your DSDT for the device which preventing it to sleep. If it have Power State Wake (_PSW) control method, you can modify it to disable that device capability to wake a sleeping system. For more information, please refer to ACPI Specification doc.

 

e.g.:-

				Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					// Store (0x03, U4EN)
					// Disable USB4 capability to wake a sleeping system
					Store (0x00, U4EN)
				}
				Else
				{
					Store (0x00, U4EN)
				}
			}

 

 

kizwan

Link to comment
Share on other sites

Determine in the log what was causing it to wake immidiately. Then, look in your DSDT for the device which preventing it to sleep. If it have Power State Wake (_PSW) control method, you can modify it to disable that device capability to wake a sleeping system. For more information, please refer to ACPI Specification doc.

 

e.g.:-

				Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					// Store (0x03, U4EN)
					// Disable USB4 capability to wake a sleeping system
					Store (0x00, U4EN)
				}
				Else
				{
					Store (0x00, U4EN)
				}
			}

 

 

kizwan

 

 

thank you very much for your support.

looking at log I got "Wake Reason = LANC EHC1"

do you know what is this

how can I disable them to avoid automatic resume from sleep?

 

thanks again

Link to comment
Share on other sites

Please PM me with dsdt.dsl file & I will take a look. Please include your system specification (CPU, graphic card, motherboard, etc).

thank you very much for your support.

looking at log I got "Wake Reason = LANC EHC1"

do you know what is this

how can I disable them to avoid automatic resume from sleep?

 

thanks again

Link to comment
Share on other sites

sorry but in PM I can't insert any attachment. I send my file here

 

thank you again for you help

 

 

WORKS!!!!! I did it!

i've just erase the lines in dsdt into "device LANC" section and now works!

thank you for all

 

just a thing: my notebook seems to go only in sleep state. when i set the sleep mode to hibernation only (i use smartsleep prefpane) the system goes to sleep yet.

there is something wrong? or i don't understand the mac hibernation mode ?

i thought that mac hibernation shutdown completely system as in windows vista/7

is it right or not?

Link to comment
Share on other sites

Removing it from DSDT should only be the last resort.

 

As for sleep mode in Mac OS X:-

0 - Old style sleep mode, with RAM powered on while sleeping, safe sleep disabled, and super-fast wake.

1 - Hibernation mode, with RAM contents written to disk, system totally shut down while “sleeping,” and slower wake up, due to

reading the contents of RAM off the hard drive.

3 - The default mode on machines introduced since about fall 2005. RAM is powered on while sleeping, but RAM contents are also

written to disk before sleeping. In the event of total power loss, the system enters hibernation mode automatically.

5 - This is the same as mode 1, but it’s for those using secure virtual memory (in System Preferences -> Security).

7 - This is the same as mode 3, but it’s for those using secure virtual memory.

 

For more infos:

http://www.macworld.com/article/53471/2006/10/sleepmode.html

 

 

kizwan

WORKS!!!!! I did it!

i've just erase the lines in dsdt into "device LANC" section and now works!

thank you for all

 

just a thing: my notebook seems to go only in sleep state. when i set the sleep mode to hibernation only (i use smartsleep prefpane) the system goes to sleep yet.

there is something wrong? or i don't understand the mac hibernation mode ?

i thought that mac hibernation shutdown completely system as in windows vista/7

is it right or not?

Link to comment
Share on other sites

Removing it from DSDT should only be the last resort.

 

As for sleep mode in Mac OS X:-

0 - Old style sleep mode, with RAM powered on while sleeping, safe sleep disabled, and super-fast wake.

1 - Hibernation mode, with RAM contents written to disk, system totally shut down while “sleeping,” and slower wake up, due to

reading the contents of RAM off the hard drive.

3 - The default mode on machines introduced since about fall 2005. RAM is powered on while sleeping, but RAM contents are also

written to disk before sleeping. In the event of total power loss, the system enters hibernation mode automatically.

5 - This is the same as mode 1, but it’s for those using secure virtual memory (in System Preferences -> Security).

7 - This is the same as mode 3, but it’s for those using secure virtual memory.

 

For more infos:

http://www.macworld.com/article/53471/2006/10/sleepmode.html

 

 

kizwan

 

ok. when i set to hibernate only, system goes to sleep and create sleepimage, but don't shutdown totally (i don't understand why). after reboot appears (before the logo) a message that says "hibernate image is too old of xxxxx sec. forcewake to override". if I add forcewake flag in com.apple.boot.plist this message disappear but appear a new message "incorrect image signature". i read somewhere that it could depend by chameleon that can't read in 32bit mode files greater than 4gb.

someone says that the solution is pc efi9 with chameleon 1, but i can't return back to cham 1 now that system is very stable.

 

thanks again for all

Link to comment
Share on other sites

  • 4 weeks later...

Hi zhell,

I am wondering if there are more than six UHCI device ids? My situation is I have 7, see lspci listing.

Even if I comment USBR 0x001D0003 it shows up in the mac as an expansion slot and therefore no sleep.

If I use a duplicate id I get initialization error lose of one of my USB ports but get sleep back.

So I was wondering if either there are other device ids besides theones that you posted that I could use to declare 1d3 with or you may have another sugestion that I can get my port back and have sleep work. My mob is Intel M45

I do appreciate and looking forward for your comments and advise.

Artimess

00:00.0 Host bridge [0600]: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub [8086:2a40] (rev 07)
00:01.0 PCI bridge [0604]: Intel Corporation Mobile 4 Series Chipset PCI Express Graphics Port [8086:2a41] (rev 07)
00:1a.0 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 [8086:2937] (rev 03)
00:1a.1 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 [8086:2938] (rev 03)
00:1a.7 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 [8086:293c] (rev 03)
00:1b.0 Audio device [0403]: Intel Corporation 82801I (ICH9 Family) HD Audio Controller [8086:293e] (rev 03)
00:1c.0 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 [8086:2940] (rev 03)
00:1c.1 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 [8086:2942] (rev 03)
00:1c.4 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 [8086:2948] (rev 03)
00:1d.0 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 [8086:2934] (rev 03)
00:1d.1 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 [8086:2935] (rev 03)
00:1d.2 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 [8086:2936] (rev 03)
[color="#ff0000"]00:1d.3 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 [8086:2939] (rev [/color]03)
00:1d.7 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 [8086:293a] (rev 03)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev 93)
00:1f.0 ISA bridge [0601]: Intel Corporation ICH9M LPC Interface Controller [8086:2919] (rev 03)
00:1f.2 SATA controller [0106]: Intel Corporation ICH9M/M-E SATA AHCI Controller [8086:2929] (rev 03)
00:1f.3 SMBus [0c05]: Intel Corporation 82801I (ICH9 Family) SMBus Controller [8086:2930] (rev 03)
01:00.0 VGA compatible controller [0300]: nVidia Corporation Unknown device [10de:0a34] (rev a2)
01:00.1 Audio device [0403]: nVidia Corporation Unknown device [10de:0be2] (rev a1)
02:00.0 Ethernet controller [0200]: Broadcom Corporation NetLink BCM5784M Gigabit Ethernet PCIe [14e4:1698] (rev 10)
03:00.0 Network controller [0280]: Broadcom Corporation BCM4328 802.11a/b/g/n [14e4:4328] (rev 03)

 

Problem Solved!

The trick was to give the same device id of UHC6 to USBR. It downed to me when reading ICH9 manual noticing that it says UHC6 and USBR for me or any name having (0x001D0003) have the same device ID, so I used the same device id of UHC6 for USBR and it worked without any problem and I have now all my USB ports functioning correctly.

Artimess

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.)

Link to comment
Share on other sites

 Share

×
×
  • Create New...