Jump to content

USB 2.0 for Leopard 10.5.7


Slice
 Share

390 posts in this topic

Recommended Posts

Yeah, so I noticed – I already removed the examples and the USBprober.

 

I did a diff -uw and I noticed that you changed all to "*.h". Why is that?

USB headers in IOKIT and in project are differ. Why? I don't know.

I'm aware of ICH9 already being patched, but I want to use some thing like:

Have you (someone else?) already tried that?

No, I am not with EFI-strings. Nonsense for my mind.

If you want to recompile IOUSB lets go!

 

Hi Slice, thank you for your all work.

My board has Intel Q45 northbridge and ICH10DO southrbridge.

I got this USB message when using 10.5.7 valnilla IOUSBFamiry.kext

 

ICH10D0's Device ID is slightly different from ICH10's.

 

Intel 82801JDO (ICH10DO)

00:1a.0 USB Controller: Intel Corporation ICH10 USB UHCI Controller #4 [8086:3a67] [PCI Revision ID: 0x0002] [bus Number: 0x1a]

00:1a.1 USB Controller: Intel Corporation ICH10 USB UHCI Controller #5 [8086:3a68] [PCI Revision ID: 0x0002] [bus Number: 0x3a]

00:1a.2 USB Controller: Intel Corporation ICH10 USB UHCI Controller #6 [8086:3a69] [PCI Revision ID: 0x0002] [bus Number: 0x5a]

00:1a.7 USB Controller: Intel Corporation ICH10 USB2 EHCI Controller #2 [8086:3a6c] [PCI Revision ID: 0x0002] [bus Number: 0xfa]

00:1d.0 USB Controller: Intel Corporation ICH10 USB UHCI Controller #1 [8086:3a64] [PCI Revision ID: 0x0002] [bus Number: 0x1d]

00:1d.1 USB Controller: Intel Corporation ICH10 USB UHCI Controller #2 [8086:3a65] [PCI Revision ID: 0x0002] [bus Number: 0x3d]

00:1d.2 USB Controller: Intel Corporation ICH10 USB UHCI Controller #3 [8086:3a66] [PCI Revision ID: 0x0002] [bus Number: 0x5d]

00:1d.7 USB Controller: Intel Corporation ICH10 USB2 EHCI Controller #1 [8086:3a6a] [PCI Revision ID: 0x0002] [bus Number: 0xfd]

 

Could you add ICH10D0's Device ID to your kext, by the next update release?

Yes, I need to add your new set of DeviceID to the project.

EDITED: Already done in topic.

 

i lost one usb controller "USB UHCI Controller #3 [8086:27ca] on ICH7" anyone know how to fix it? I try laste IIUSBFamily.kext but it doesn't work

USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 [8086:27c8] (rev 02)*work*

USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 [8086:27c9] (rev 02)*work*

USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 [8086:27ca] (rev 02)*not work*

USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 [8086:27cb] (rev 02)*work*

USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller [8086:27cc] (rev 02) *work*

Your DeviceID is supported so I don't know what is the problem. Hardware break?

Link to comment
Share on other sites

not hardware break. It's work on 10.5.2-10.5.5 So I upgrade to 10.5.7 and one usb controller isn't work. but if I plug usb mighty mouse immediately when apple logo show.It's work. (if plug and turn on notebook,it's not work)

Link to comment
Share on other sites

USB headers in IOKIT and in project are differ. Why? I don't know.

No, I am not with EFI-strings. Nonsense for my mind.

I just think that adding something like this to /Library/Preferences/SystemConfiguration/com.apple.Boot.plist is much easier to understand for average (non-developer minded) people:

<key>device-properties</key>
   <string>7401000001000000060000003c0000000100000002010c00d041030a0000000001010600021d
  fff0400180000006400650076006900630065002d0069006400000006000000363a3c000000
1000
  0002010c00d041030a0000000001010600021a7fff040018000000640065007600690063006
002d
  069006400000006000000393a3c0000000100000002010c00d041030a000000000101060000
a7ff
  0400180000006400650076006900630065002d0069006400000006000000373a3c000000010
0000
  2010c00d041030a0000000001010600011a7fff040018000000640065007600690063006500
d006
  006400000006000000383a3c0000000100000002010c00d041030a0000000001010600001d7
ff04
  0180000006400650076006900630065002d0069006400000006000000343a3c000000010000
0020
  0c00d041030a0000000001010600011d7fff0400180000006400650076006900630065002d0
6900
  400000006000000353a</string>

which for your info is the EFI variant for ICH9R aka in readable format:

<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
  <dict>
   <key>PciRoot(0x0)/Pci(0x1a,0x0)</key>
   <dict>
	   <key>device-id</key>
	   <string>0x3a37</string>
   </dict>
   <key>PciRoot(0x0)/Pci(0x1a,0x1)</key>
   <dict>
	   <key>device-id</key>
	   <string>0x3a38</string>
   </dict>
   <key>PciRoot(0x0)/Pci(0x1a,0x2)</key>
   <dict>
	   <key>device-id</key>
	   <string>0x3a39</string>
   </dict>
   <key>PciRoot(0x0)/Pci(0x1d,0x0)</key>
   <dict>
	   <key>device-id</key>
	   <string>0x3a34</string>
   </dict>
   <key>PciRoot(0x0)/Pci(0x1d,0x1)</key>
   <dict>
	   <key>device-id</key>
	   <string>0x3a35</string>
   </dict>
   <key>PciRoot(0x0)/Pci(0x1d,0x2)</key>
   <dict>
	   <key>device-id</key>
	   <string>0x3a36</string>
   </dict>
  </dict>
  </plist>

All you need after all is simply to change the device-id to something that works and fire up gfxutil -i xml -o hex USB.xml USB.hex (gfxutil is part of EFI Studio and convert's the plist file) and copy/paste the output into your copy of com.apple.Boot.plist (you can also use EFI Studio's File -> Open HEX File... and click the button: "write to com.apple.Boot.plist" to let EFI Studio do it for you) – all people need to modify this file is to insert their ID's, which they can obtain with help of ioreg -l or use IORegistryExplorer (and gfxutil -f name) and you're done.

 

I mean in the EFI world of Apple/OS X we should at least give EFi a try... right? At least that's what I think and thus... Here's Johnny with the EFI variant :(

 

If you want to recompile IOUSB lets go!

But of course, already done. And with success!

Link to comment
Share on other sites

I tried the new kext for 10.5.7 but end up with a still waiting on root device message at reboot. Any ideas?

 

Dell Mini9

10.5.7

Voodoo Kernel (9.5.0 with matching system.kext)

Legacy USB and USB wake enabled in bios.

 

I tried with both the vanilla kernel and voodoo kernel and get the same result.

Link to comment
Share on other sites

I tried the new kext for 10.5.7 but end up with a still waiting on root device message at reboot. Any ideas?

How did you install the kext? You migh want to check the permissions (sudo chmod 644 -R IOUSBFamily.kext) and ownership (sudo chown -R root:wheel IOUSBFamily.kext) of the installed kext.

 

I take it that you've also done a sudo touch /S*/L*/Extensions.mkext before the reboot?

 

Oh, and the device ID's do match with your hardware, right?

Link to comment
Share on other sites

try to use voodoo 9.7.0 with system 9.7.0. My os x 10.5.7 is working perfect with that build on an old amd64 4000... so I'm sure you aren't going to have problems! if you need the files just write me or send me an email.

Link to comment
Share on other sites

How did you install the kext? You migh want to check the permissions (sudo chmod 644 -R IOUSBFamily.kext) and ownership (sudo chown -R root:wheel IOUSBFamily.kext) of the installed kext.

 

I take it that you've also done a sudo touch /S*/L*/Extensions.mkext before the reboot?

 

Permissions were fixed and Extensions.mkext removed.

 

Oh, and the device ID's do match with your hardware, right?

I didn't check this ... will do when I get home from work. This seems like an obvious culprit.

Link to comment
Share on other sites

I just think that adding something like this

...........................

	   <key>PciRoot(0x0)/Pci(0x1d,0x2)</key>
   <dict>
	   <key>device-id</key>
	   <string>0x3a36</string>
   </dict>
  </dict>
  </plist>

All you need after all is simply to change the device-id to something that works and fire up gfxutil -i xml -o hex USB.xml USB.hex (gfxutil is part of EFI Studio and convert's the plist file) and copy/paste the output into your copy of com.apple.Boot.plist (you can also use EFI Studio's File -> Open HEX File... and click the button: "write to com.apple.Boot.plist" to let EFI Studio do it for you) – all people need to modify this file is to insert their ID's, which they can obtain with help of ioreg -l or use IORegistryExplorer (and gfxutil -f name) and you're done.

 

I mean in the EFI world of Apple/OS X we should at least give EFi a try... right? At least that's what I think and thus... Here's Johnny with the EFI variant :thumbsup_anim:

But of course, already done. And with success!

Very simple instruction :)

Why I Know the digits Pci(0x1d,0x2)???

For a what all of that? I just can copy new kext into system and that's all!

And moreover I assert that EFI strings can't provide the same functionality as binary patch or recompilation from corrected sources. It is ABC.

 

I tried the new kext for 10.5.7 but end up with a still waiting on root device message at reboot. Any ideas?

I resolve the same problem by replacing IOPCIFamily.kext. Really!

Link to comment
Share on other sites

Very simple instruction :) Why I Know the digits Pci(0x1d,0x2)???

For a what all of that? I just can copy new kext into system and that's all!

Oh sure, it still needs a shell script to finish it off. But then again I only started to work on the EFI bits yesterday – please also remember that you keep adding new device id's, but I won't have that problem.

 

p.s. Like you knew all device id's that have been added :-)

 

And moreover I assert that EFI strings can't provide the same functionality as binary patch or recompilation from corrected sources. It is ABC.

That depends on how you look at things, really. I most certainly don't need it with the ICH9R controller in my hack – because all I need is this little EFI patch.

 

I resolve the same problem by replacing IOPCIFamily.kext. Really!

Sure, and what you've accomplished (and orByte) is really helpful to people, but my method is... like zhell's DSDT patching, just another way of dealing with this – and since I hadn't really looked into this EFI stuff before... was this a perfect candidate for it :thumbsup_anim:

Link to comment
Share on other sites

Roport:

 

The state that appear as PCI and Value 0x0 of Errata in ioreg is fixed by your new KEXT.

My problem... Shutdown and reboot when sleep is no solution.

There may be those problems in different factors.

Anyway, It is good that factors to disturb sleep decrease.

 

On the other hand, I try zhell's DSDT method and Master Chief's EFI strings method.

UHCI's state fixed in ioreg.

EHCI Device is lost and USB Mouse is lost after replugging....

and I get this error.

 

localhost kernel[0]: USBF: 0.605 EHCI controller unable to take control from BIOS

localhost kernel[0]: USBF: 0.605 AppleUSBEHCI[0xad81800]: unable to obtain ownership: 0xe00002be

localhost kernel[0]: USBF: 0.605 AppleUSBEHCI[0xad81800]::UIMInitialize - Error occurred (0xe00002be)

localhost kernel[0]: USBF: 0.607 AppleUSBEHCI: unable to initialize UIM

localhost kernel[0]: USBF: 0.620 AppleUSBEHCI[0xae48000]: unable to obtain ownership: 0xe00002be

localhost kernel[0]: USBF: 0.623 AppleUSBEHCI[0xae48000]::UIMInitialize - Error occurred (0xe00002be)

localhost kernel[0]: USBF: 0.629 AppleUSBEHCI: unable to initialize UIM

 

Slice's KEXT is necessary for my USB problem.

Thanks all & Sorry for my BAD English.

Link to comment
Share on other sites

On the other hand, I try zhell's DSDT method and Master Chief's EFI strings method.

UHCI's state fixed in ioreg.

EHCI Device is lost and USB Mouse is lost after replugging....

and I get this error.

Anyone willing to try either zhell's DSDT patch, or my EFI strings must be aware of two things:

 

1) you must know what you are doing.

2) you must replace the device-id's with the one of your motherboard.

Link to comment
Share on other sites

Anyone willing to try either zhell's DSDT patch, or my EFI strings must be aware of two things:

 

1) you must know what you are doing.

2) you must replace the device-id's with the one of your motherboard.

What did you propose? How DSDT patch or EFI string are able to make the follow?

		if (!_hasPCIPwrMgmt)
	{
 //		  USBError(1, "AppleUSBEHCI[%p]::CheckSleepCapability - controller will be unloaded across sleep",this);
//		   _controllerCanSleep = false;
//			setProperty("Card Type","PCI");
//Slice - it is bad idea but helps somebody. Proposed by Hafnium.
		USBError(1, "AppleUSBEHCI[%p]::CheckSleepCapability - forced YES. Please report to Slice",this);
		_controllerCanSleep = true;
		setProperty("Card Type","Built-in");
	}

Or obtain ownership for USBEHCI?

Link to comment
Share on other sites

My left-side USB devices don't work, but my right-side do. This occurred *when* I upgraded from 10.5.6 to 10.5.7.

 

Would this be the solution I need?

Try!

Both IOUSB and IOPCI

Link to comment
Share on other sites

What did you propose? How DSDT patch or EFI string are able to make the follow?
		if (!_hasPCIPwrMgmt)
	 {
  //		  USBError(1, "AppleUSBEHCI[%p]::CheckSleepCapability - controller will be unloaded across sleep",this);
 //		   _controllerCanSleep = false;
//			setProperty("Card Type","PCI");
//Slice - it is bad idea but helps somebody. Proposed by Hafnium.
		 USBError(1, "AppleUSBEHCI[%p]::CheckSleepCapability - forced YES. Please report to Slice",this);
		 _controllerCanSleep = true;
		 setProperty("Card Type","Built-in");
	 }

Or obtain ownership for USBEHCI?

I'm not sure I understand the question, but both zhell's DSDT and my EFI patch are based on (simply) changing the device-id's, and we let OS X handle the rest... which works for us. Which doesn't necessarily mean that it will work for everyone. Clearly not.

 

Both DSDT and EFI could already be used to fix your video adapter and ethernet, and now also your USB ports. Like I said before, this is just an additional way of doing things.

 

Please note that DSDT has one major additional advantage, being that you no longer need disabler.kext and this... well this should speaks for itself:

 

May 28 13:49:15 ElReg kernel[0]: AppleIntelCPUPowerManagement: initialization complete

 

Not to mention that 10.6.0 might require further DSDT patching – I'm just preparing for that worse case scenario :P

Link to comment
Share on other sites

Hmm i was wondering: is there any way to load the USB kexts from /extra/extensions ona chameleon system?

 

And right now I am running without the patched USB drivers. is there any way to create a "fake" plist file which applies to all USB kexts, so you don't have ot download a new update every time there is a new IOUSBFamily?

 

If these questions have already been answered imr eally sorry, im just short of time so i can't read through all the previous replies...

 

BTW i have a P5W DH Deluxe witha a ICH7-R controller.

Link to comment
Share on other sites

I resolve the same problem by replacing IOPCIFamily.kext. Really!

Hey, this did fix the waiting on root device issue. But alas, my original problem still remains ... I was hoping the USB kext would fix it.

 

It's probably a discussion for another thread, but here's my story. The Dell Mini9 works pretty good with vanilla kernel, except that bluetooth tethering won't work after the machine has been put to sleep and woken up. Voodoo kernel fixes this. BUT, there's a quirk - if I boot the netbook up and put to sleep without having it plugged in at any point, machine doesn't wake properly (screen comes on but usb, keyboard, and trackpad don't). If I plug it in for a few seconds and then unplug it before putting it to sleep, everything is fine and I can sleep/wake as many times as needed without having it plugged in, until next reboot. Strange bug. System logs show nothing and I'm at a dead end for ideas on a fix.

Link to comment
Share on other sites

I want to clear that sleep problem is not a problem of one place.

Every driver must be able to sleep and then wake. My drivers mostly Yes! Other drivers other story.

Broadcom WiFi 4315 can't wake and I am not able to correct it.

Link to comment
Share on other sites

Thanks Slice, for the updated IOPCI.kext. I remember that that not only can solve USB problems also has fixed/opzimized Interrupt handling for hackintoshs.

 

My problem is a bit different. I dont have (EP-35-DS3) USB Problems.

But i cant sleep, it reboots insted.

I solved this by an HINT somewhere in the forum to enable an Option "Automatic Restart On Power Loss" in the energy saver prefpane.

But that option is gone with 10.5.7, only shown that option with the power button. I also remember, in that hint thread, that some others didnt have that option to enable that. Now i also (upgraded to 10.5.7) dont have that option anymore.

I know you have an similar GA Board. Do you have that option ?

Can it be some changed support files (system/library/Systemconfiguration/powermanagement.bundle) of the powermanagement part of OS X 10.5.7 ?

I can see that "Automatic Restart On Power Loss" in the .plist there, so perhaps this .bundle handles that.

 

Thanks

Link to comment
Share on other sites

My problem is a bit different. I dont have (EP-35-DS3) USB Problems.

But i cant sleep, it reboots insted.

I solved this by an HINT somewhere in the forum to enable an Option "Automatic Restart On Power Loss" in the energy saver prefpane.

But that option is gone with 10.5.7, only shown that option with the power button. I also remember, in that hint thread, that some others didnt have that option to enable that. Now i also (upgraded to 10.5.7) dont have that option anymore.

I know you have an similar GA Board. Do you have that option ?

Can it be some changed support files (system/library/Systemconfiguration/powermanagement.bundle) of the powermanagement part of OS X 10.5.7 ?

I can see that "Automatic Restart On Power Loss" in the .plist there, so perhaps this .bundle handles that.

 

Thanks

Picture_1.png

This option depends on AppleLPC.kext. It must be loaded.

I have origin powermanagement.bundle from 10.5.7. It works with AppleACPIBatteryManager.kext.(Dell Inspiron).

My GA board is 965P (ICH8) while you have EP-35 (ICH9?). As I know ICH9 have no support by original IOUSBFamily or supported with mistakes. It is better to use my version.

Link to comment
Share on other sites

Roport:

 

The state that appear as PCI and Value 0x0 of Errata in ioreg is fixed by your new KEXT.

My problem... Shutdown and reboot when sleep is no solution.

There may be those problems in different factors.

Anyway, It is good that factors to disturb sleep decrease.

 

On the other hand, I try zhell's DSDT method and Master Chief's EFI strings method.

UHCI's state fixed in ioreg.

EHCI Device is lost and USB Mouse is lost after replugging....

and I get this error.

 

localhost kernel[0]: USBF: 0.605 EHCI controller unable to take control from BIOS

localhost kernel[0]: USBF: 0.605 AppleUSBEHCI[0xad81800]: unable to obtain ownership: 0xe00002be

localhost kernel[0]: USBF: 0.605 AppleUSBEHCI[0xad81800]::UIMInitialize - Error occurred (0xe00002be)

localhost kernel[0]: USBF: 0.607 AppleUSBEHCI: unable to initialize UIM

localhost kernel[0]: USBF: 0.620 AppleUSBEHCI[0xae48000]: unable to obtain ownership: 0xe00002be

localhost kernel[0]: USBF: 0.623 AppleUSBEHCI[0xae48000]::UIMInitialize - Error occurred (0xe00002be)

localhost kernel[0]: USBF: 0.629 AppleUSBEHCI: unable to initialize UIM

 

Slice's KEXT is necessary for my USB problem.

Thanks all & Sorry for my BAD English.

 

If you use Chameleon, add <key>USBBusFix<key><string>Yes<string> to the com.apple.Boot.plist

Link to comment
Share on other sites

Picture_1.png

This option depends on AppleLPC.kext. It must be loaded.

I have origin powermanagement.bundle from 10.5.7. It works with AppleACPIBatteryManager.kext.(Dell Inspiron).

My GA board is 965P (ICH8) while you have EP-35 (ICH9?). As I know ICH9 have no support by original IOUSBFamily or supported with mistakes. It is better to use my version.

 

Thanks !

 

Now i remember that i had added some dev-id of my ICH9 into the AppleLPC.kext in the past.

So that explains why some can see that energy saver pref and some not (non ICH9R, non ICH10,..).

I can see (kextstat) that the LPC isnt loaded. I will try to add ICH9 again into that .kext and report back.

Link to comment
Share on other sites

Picture_1.png

This option depends on AppleLPC.kext. It must be loaded.

I have origin powermanagement.bundle from 10.5.7. It works with AppleACPIBatteryManager.kext.(Dell Inspiron).

My GA board is 965P (ICH8) while you have EP-35 (ICH9?). As I know ICH9 have no support by original IOUSBFamily or supported with mistakes. It is better to use my version.

 

I added that INTEL LPC dev ID (2918, for ICH9 LPC - that ID wasnt in yet > no loading that kext) to the others in that kext. The shown screenshoot shows that adding (not ready edited for 2918!!).

I hope i will be back next boot :)

 

 

EDIT: I am back :o

 

Yep : now sleep works again , AppleLPC.kext now loaded (i must once boot with -x) !

I can now set that option in the energie saver (wasnt shown before).

Bild_56.jpg

Bild_57.jpg

Link to comment
Share on other sites

 Share

×
×
  • Create New...