Jump to content

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


  • Please log in to reply
365 replies to this topic

#21
BlackCH

BlackCH

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,615 posts
  • Gender:Male
  • Location:BCN
With the modded plist (inserted 8056 id):
Attached File  Screenshot_1.jpg   287.7KB   1368 downloads

With the DSDT:
Attached File  Screenshot_2.jpg   262.6KB   1152 downloads

As you can see in the last shot there is no kext attached to the device. This time I also removed the 8056 ID from the plist and the device wasnt seen at all on the Network prefpane.

#22
Master Chief

Master Chief

    Just Chief

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,176 posts
  • Gender:Male
I seem to be using the same network adapter (built-in) but without the "AAPL,slot-name", "acpi-device" and "acpi-path" properties showing up in the IORegistryExplorer, and thus now I wonder what you did to get these?!? Are these part of your modified Info.plist?

#23
CPT_MAC

CPT_MAC

    InsanelyMac Protégé

  • Members
  • PipPip
  • 71 posts
Hi,
same problem no automatic sleep. But since I used slice's kext systems does wake up by USB keyboard. Good improvement!

I am not an expert, but during boot in -v mode I can see a lot of, missing... not found...can't read....and so on

In my case, the CPU Intel 7200 is not recogniced correct the ram speed not correct as well.

Modelname: Mac Serialnumber: SOMESRLNMBR

Something like Intel cpupowermanagment...... not found. If it helps, I can take pictures during boot and post.

One more thing, my timemachine was not working. After installing IOnetworking fix, time machine works for backup, but when I open the backup by the timemachine icon in dock, one screen goes black and on the main screen I have two open windows in finder showing the desktop.

Also my logitch quickcam 4000pro does not work. It worked before on other hackintosh. Anyhow for testing I disconnected all USB devices except the wireless USB Keyboard.

just some thoughts

Attached Files



#24
BlackCH

BlackCH

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,615 posts
  • Gender:Male
  • Location:BCN

I seem to be using the same network adapter (built-in) but without the "AAPL,slot-name", "acpi-device" and "acpi-path" properties showing up in the IORegistryExplorer, and thus now I wonder what you did to get these?!? Are these part of your modified Info.plist?


Those parameters are injected via custom DSDT table. Also all devices names has been modified to match a macpro DSDT.
Furthermore I have injected the necessary data for my 7600GT to work OOTB without NVkush, NVInject, or any other extra kext.
DSDT has a lot of posibilities

Nevertheless device ID injection for this network adapter (or any) doesnt seem to work.

#25
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

Thanks for your interest.
Are you sure the problem of your board is related to USB? ICH7 is supported by Apple's drivers. It could be that your chip has different device-ids, though. To check this, just verify that the "Errata" value is 0x0 in IORegistryExplorer, which indicates that the chip was not recognized.
The device-ids that Apple uses for ICH7 are 27C8-27CC. For ICH8, the device-ids are 2830-2835.

You're right, my ICH7 was supported; device-ids 27C8-27CB (UHCI - Errata 0xe800) & 27CC (EHCI - Errata 0x5800). It only able to hibernate (mode 5) not sleep because USB will cause it to wake immediately.

There is one USB device not listed or recognized in OS X. Attached to it is built-in bluetooth device & I unable to turn it on since the button handle it not functioning in OS X.

kizwan

#26
rx782p

rx782p

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts
Unfortunately the issue of my USB was not able to be settle by this method.
but it was useful about an SATA device.

8086:3a02 82801JD/DO (ICH10 Family) SATA AHCI Controller (My borad)
8086:3a22 82801JI (ICH10 Family) SATA AHCI Controller (Machintosh)

Device (SAT0)
			{
				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)
				}
			}
No Modified DSDT
Attached File  Picture_1.png   175.08KB   734 downloads

Modified DSDT(Device ID)
Attached File  Picture_2.png   183.63KB   754 downloads
Attached File  Picture_3.png   90.2KB   575 downloads

Yes! I am not necessary with LegacyAppleAHCIPort.kext after adding device ID to DSDT.

Thanks zhell, it's a nice trick.
Sorry for my poor English.

Attached Files



#27
zhell

zhell

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 125 posts
  • Gender:Male

Unfortunately the issue of my USB was not able to be settle by this method.
but it was useful about an SATA device.

Great to hear that you put it to good use! And thanks for sharing your method.
I have tried to "sell" my ICH9-R as an ICH10 with 10.5.6, but it did not work, so I still needed the legacy AHCI kext. I will give it another try with 10.5.7.

What is the issue with your USB? Is it sleep-related, or something else?

#28
Master Chief

Master Chief

    Just Chief

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,176 posts
  • Gender:Male

Those parameters are injected via custom DSDT table. Also all devices names has been modified to match a macpro DSDT.

Right. I should have know that, being a MacPro user myself (see sig).

Furthermore I have injected the necessary data for my 7600GT to work OOTB without NVkush, NVInject, or any other extra kext. DSDT has a lot of posibilities

Cool. I however used EFI Studio to inject my 8600GT data – it was just a click on a button. I do wonder how / what you've done to get that working – it might be available via search, but I haven't checked it yet.

BTW: We might need DSDT patching to get Snow Leopard (10.6.0) going, and thus I re-generated my dsdt.aml yesterday evening, after reading this. I'll start researching DSDT in combination with OS X later today – I already use it for my good old notebook running Ubuntu. Thanks :)

I have tried to "sell" my ICH9-R as an ICH10 with 10.5.6, but it did not work, so I still needed the legacy AHCI kext. I will give it another try with 10.5.7.

I might be wrong (haven't checked) but wasn't ICH10 support added in 10.5.7? Nah, I just checked (diff) and it was there already in IOUSBFamily-327.4.0

#29
zhell

zhell

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 125 posts
  • Gender:Male

Right. I should have know that, being a MacPro user myself (see sig).

Cool. I however used EFI Studio to inject my 8600GT data – it was just a click on a button. I do wonder how /what you've done to get that working – it might be available via search, but I haven't checked it yet.

BTW: We might need DSDT patching to get Snow Leopard (10.6.0) going, and thus I re-generated my dsdt.aml yesterday evening, after reading this. I'll start researching DSDT in combination with OS X later today – I already use it for my good old notebook running Ubuntu. Thanks :)


I might be wrong (haven't checked) but wasn't ICH10 support added in 10.5.7?

Slightly off-topic, but here's the entry I use for my 8600 GT/512MB.
Device (GFX0){    Name (_ADR, Zero)    Method (_DSM, 4, NotSerialized)    {        Store (Package (0x18)            {                "@0,compatible",                 Buffer (0x0B)                {                    "NVDA,NVMac"                },                 "@0,device_type",                 Buffer (0x08)                {                    "display"                },                 "@0,name",                 Buffer (0x0F)                {                    "NVDA,Display-A"                },                 "@1,compatible",                 Buffer (0x0B)                {                    "NVDA,NVMac"                },                 "@1,device_type",                 Buffer (0x08)                {                    "display"                },                 "@1,name",                 Buffer (0x0F)                {                    "NVDA,Display-B"                },                 "NVCAP",                 Buffer (0x18)                {                    /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,                     /* 0008 */    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,                     /* 0010 */    0x00, 0x00, 0x00, 0x00                },                 "NVPM",                 Buffer (0x1C)                {                    /* 0000 */    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,                     /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,                     /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,                     /* 0018 */    0x00, 0x00, 0x00, 0x00                },                 "VRAM,totalsize",                 Buffer (0x04)                {                    0x00, 0x00, 0x00, 0x20                },                 "device_type",                 Buffer (0x0C)                {                    "NVDA,Parent"                },                 "model",                 Buffer (0x17)                {                    "nVidia GeForce 8600 GT"                },                 "rom-revision",                 Buffer (0x25)                {                    "nVidia GeForce 8600 GT OpenGL Engine"                }            }, Local0)        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))        Return (Local0)    }}


#30
kizwan

kizwan

    InsanelyMac Legend

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

Sorry, another slightly off-topic. I have to put dsdt code for GeForce Go 7300 in VGA procedure/function instead GFX0 because it is what stated in IORegistryExplorer when I use injector (NVinject.kext). Where did you get the value for "NVPM"? Was it for power management? If it is possible I want to eliminate problem where display failed to wake up after display goes to sleep.

kizwan

#31
zhell

zhell

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 125 posts
  • Gender:Male

Sorry, another slightly off-topic. I have to put dsdt code for GeForce Go 7300 in VGA procedure/function instead GFX0 because it is what stated in IORegistryExplorer when I use injector (NVinject.kext). Where did you get the value for "NVPM"? Was it for power management? If it is possible I want to eliminate problem where display failed to wake up after display goes to sleep.

I'm sorry but I'm unable to answer to this question as I have just copy-pasted the entry for my card from someone else's DSDT. I think you should be able to find some help or maybe even the DSDT entry for your card. What needs to be inserted is more or less what EFIStudio produces, just in the language of DSDT.

Here's a DSDT containing an entry for the 7300 including NVPM., although the NVPM part looks funny

#32
Master Chief

Master Chief

    Just Chief

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,176 posts
  • Gender:Male

Slightly off-topic, but here's the entry I use for my 8600 GT/512MB.

<snip/>

Thank you very much – the data looks very similar, if not the same to my EFI string data. Which is perfect for me.

And the vanilla DSDT appears to work: AppleIntelCPUPowerManagement: initialization complete (disabler.kext has been removed).

Well, almost – the following lines showed up in /var/log/system.log:
ACPI_SMC_PlatformPlugin::pushCPU_CSTData - _CST evaluation failed
ACPI_SMC_PlatformPlugin::registerLPCDriver - WARNING - LPC device initialization failed: C-state power management not initialized
I do have a Intel SpeedStep enabled CPU so I guess I need to do some patching now – I have however no idea what/how at the moment. Wasn't this something in Scope(_PR)?

#33
kidalive

kidalive

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 274 posts
  • Gender:Male
Hi, Zhell. Here is the my problem with sleep. I got a ICH8H MB which is recognized without any patch. Every time when I put my computer yo sleep it does sleep for a while but soon waked up. I checked the system log found this.
May 28 19:33:51 austin kernel[0]: image 447063040, uncompressed 965120000 (235625), compressed 442956576 (45%), sum1 affdc5cd, sum2 ad0a6fd0
May 28 19:33:51 austin kernel[0]: hibernate_write_image done(0)
May 28 19:33:51 austin kernel[0]: sleep
May 28 19:33:51 austin kernel[0]: Wake reason = HDEF EHC1 EHC2
May 28 19:33:51 austin kernel[0]: System Wake
May 28 19:33:51 austin kernel[0]: USB (EHCI):Port 3 on bus 0xfd connected or disconnected: portSC(0x301803)
May 28 19:33:53 austin kernel[0]: smb_iod_re

And I noticed the bus 0xfd is my wireless card which is Realtek 8187l.

I don`t quite understand the DSDT modification and I got hooked up with the generated DSDT.aml stuff. So I upload my ORIGIN DSDT dumped from IOREG and I hope you can help me out.
And I uploaded my WORKING LegacyHda KEXT can u help me inject it into the DSDT? Thanks in advance.

Attached Files



#34
atka

atka

    InsanelyMac Protégé

  • Members
  • PipPip
  • 86 posts
First which sleep problem does this fix? Mine just hangs when it goes to sleep and sits there is this the one? Secondly can the same be done for EHCI I looked through the plist of EHCI and can't seem to detirmine a valid device id.

#35
zhell

zhell

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 125 posts
  • Gender:Male

First which sleep problem does this fix? Mine just hangs when it goes to sleep and sits there is this the one? Secondly can the same be done for EHCI I looked through the plist of EHCI and can't seem to detirmine a valid device id.

As stated in the very first post, this fixes "the well-known behavior of the computer going to sleep only half-way and then requiring a hard reset to get back to life".

EHCI devices could be treated the same, but so far I have not come across an ICH9 board where this was required.

#36
Master Chief

Master Chief

    Just Chief

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,176 posts
  • Gender:Male
zhell, you want us to add this:
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)}
to each USB device, but why not add/call a new method with these specific bits of the patch:
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x35, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
Which in my case is replicated six times (with another 6 ports waiting to be patched).

#37
zhell

zhell

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 125 posts
  • Gender:Male

zhell, you want us to add this:
...
to each USB device, but why not add/call a new method with these specific bits of the patch:
...
Which in my case is replicated six times (with another 6 ports waiting to be patched).

The device-id is different for each of the six (3a34-3a39).
Also, you should only have six UHCI device entries (each offers two ports), or do you have 24 USB ports?

#38
rx782p

rx782p

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts
@zhell
My problem is EHCI Host Controller, does not work.
UHCI seem fixed by your method.

@Master Chief
I cheaked EFI strings once again.
I am using Vanilla IOUSBFamiry.kext and delete DSDT.
and the result was the same.

Attached File  Picture_1.png   125.96KB   180 downloads
Attached File  Picture_2.png   147.34KB   121 downloads
Attached File  Picture_3.png   103.97KB   100 downloads

#39
BlackCH

BlackCH

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,615 posts
  • Gender:Male
  • Location:BCN

Sorry, another slightly off-topic. I have to put dsdt code for GeForce Go 7300 in VGA procedure/function instead GFX0 because it is what stated in IORegistryExplorer when I use injector (NVinject.kext).


You can change the name of the function if you like; you need to scan the DSDT table in case that you need to raplece the name more than once.

#40
zhell

zhell

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 125 posts
  • Gender:Male

@zhell
My problem is EHCI Host Controller, does not work.
UHCI seem fixed by your method.

Try this for EHCI 1 and EHCI 2:
Device (EHC1){    Name (_ADR, 0x001D0007)    ...    Method (_DSM, 4, NotSerialized)    {        Store (Package (0x02)        {            "device-id",             Buffer (0x04)            {                0x3a, 0x3a, 0x00, 0x00            }        }, Local0)        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))        Return (Local0)    }}Device (EHC2){    Name (_ADR, 0x001A0007)    ...    Method (_DSM, 4, NotSerialized)    {        Store (Package (0x02)        {            "device-id",             Buffer (0x04)            {                0x3c, 0x3a, 0x00, 0x00            }        }, Local0)        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))        Return (Local0)    }}






0 user(s) are reading this topic

0 members, 0 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