Help - Search - Members - Calendar
Full Version: Modded IOUSBFamily from Apple's sources
Project OS X Forums > Previous Releases > Mac OS X Leopard 10.5 > OS X 10.5 (Leopard) > Hardware Discussion > Other
Slice
What I changed:
- add many DeviceID/VendorID in errataList by the same way as Apple did for own chipsets;
- forced ControllerCanSleep=true besides on checking;
- add Legacy USB check by orByte's method;
- compiled only for Intel with fastest optimization;
- changed version to 3.4.4 for differ from Apple's.

Any suggestion?


EDITED
Add DeviceID=3a6x 8086


EDITED 01-06-2009
Add DeviceID=036d 10de
Click to view attachment
Click to view attachment


EDITED 11-08-2009
Sources of 10.5.8 came out.
New driver with the same patches
Click to view attachment
Click to view attachment
Click to view attachment

I also create a good USB driver for Tiger 10.4.6. It is very hard problem because of old kernel missing some necessary functions.
Click to view attachment - sorry, this version is not stable. New one
Click to view attachment

EDITED 02-09-2009
You can also try DSDT patch instead of patched driver
Some useful DSDT patches
macgirl
thansk a lot biggrin.gif
cparm
hi, Slice,

this kext works for me,

but i was wondering if it is possible to make it as an injecteur/enabler, that allow to add missing values and detection methods (like IDs, etc..) that appleuhci and appleehci kexts can use ?

if it's possible i think that it would a better way, because it should pass the updates rolleyes.gif
Slice
QUOTE (cparm @ Sep 1 2009, 07:31 AM) *
hi, Slice,

this kext works for me,

but i was wondering if it is possible to make it as an injecteur/enabler, that allow to add missing values and detection methods (like IDs, etc..) that appleuhci and appleehci kexts can use ?

if it's possible i think that it would a better way, because it should pass the updates rolleyes.gif

There are some problems solved in my IOUSBFamily
1. Ownership. Solved by orByte. I just copy his method from version to version. I don't know if it is possible to inject.
2. Errata workaround for different deviceID. With DSDT patch seems to be possible to inject mac-native deviceID. This method used in Chameleon 2. It is not always good but sometimes works.
3. Sleep support if though chipset reports no possible. Nontheless the method works. It is not injectable.
Till now I can't make Snow version of the IOUSBFamily because I have problems to install it. Some programmer can take my diff file and apply it to Snow sources. Why not?
dj nitehawk
hi slice...

im desperately waiting for a snow leo compatible version of your "iousbfamily.kext" as my vanilla install wouldnt fully go to sleep.

i tried your build for 10.5.8 and it does go to sleep but never wakes up... harddrives/power led/fans come on but nothing else... no snow, stuck with a blank screen...

my mobo is intel dg33fb and the chipset is ich9-r

ive used ur kext before to fix the same problem when i was using 10.5.7...

ive tried manually patching the dsdt so that snow thinks my usb is ich10... when i do that, its the same effect as using ur 10.5.8 kext... sleeps but wont wake up...

please bro... ive been searching for a fix for sleep for days now but no avail :-(

keep up the great work!!!

long live the hackintosh scene!!!

cheers,
ryan.
Slice
Do you use Chameleon 2?
When I install it my computer goes to sleep but not wake (screen waked but not system).
When I reinstall Chameleon 1.0.11 my comp sleep and wake fine.
dj nitehawk
ya i use chameleon 2 rc1 + pc efi 10.1 boot file...

it never occurred to me to try chameleon 1. will do that soon and report back...

btw, im able to put my snow to sleep and wake if i delete iousbfamily.kext that came with snow... so i thought its something only related to apple's usb kext and how it interacts with my chipset...

is there any way to figure out what's causing the machine to not sleep/wake? cos there's nothing logged in the console. is there any debugging tool that can log/trace whats going on and output some error messages?

also system profiler shows my uhci devices as expansion slot rather than built-in. would that have anything to do with the pc not being able to sleep?

thanks for your help... this sleep thing keeping me awake at night :-)
cparm
QUOTE (Slice @ Sep 1 2009, 08:02 AM) *
There are some problems solved in my IOUSBFamily
1. Ownership. Solved by orByte. I just copy his method from version to version. I don't know if it is possible to inject.
2. Errata workaround for different deviceID. With DSDT patch seems to be possible to inject mac-native deviceID. This method used in Chameleon 2. It is not always good but sometimes works.
3. Sleep support if though chipset reports no possible. Nontheless the method works. It is not injectable.
Till now I can't make Snow version of the IOUSBFamily because I have problems to install it. Some programmer can take my diff file and apply it to Snow sources. Why not?


never mind, i found out that there is a dsdt way to have uhci and ehci as built-in for all ich9/R , and the great new is that i still have sleep with those methods, errata values are not 0x00 anymore

it's described here and here , by zhell and apexDE

in fact the method is very strange, it consist to inject ich10 usb ids to the ich9/R usb devices in dsdt, since ich10 is supported natively and ich10 ids are present in the vanilla iousb kext and sub-kexts, i suspect a bad device id detection in this driver, that able us to completely fool the system with dsdt laugh.gif

the second method was stolen to voodoousbehci, this one consist to inject "AAPL,clock-id" to the ehci devices

the merge of those methods, give me all usb port uhci et ehci as built-in, only by dsdt

for now it's reported to work only with ich9/R, but i can't test other platform since i don't have other pc

here is my dsdt usb part:
CODE

Device (UHC1)
{
Name (_ADR, 0x001D0000)
Method (_S3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}

Return (0x03)
}

Name (_PRW, Package (0x02)
{
0x03,
0x03
})
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 (UHC2)
{
Name (_ADR, 0x001D0001)
Method (_S3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}

Return (0x03)
}

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

Name (_PRW, Package (0x02)
{
0x04,
0x03
})
}

Device (UHC3)
{
Name (_ADR, 0x001D0002)
Method (_S3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}

Return (0x03)
}

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

Name (_PRW, Package (0x02)
{
0x0C,
0x03
})
}

Device (UHC4)
{
Name (_ADR, 0x001A0000)
Method (_S3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}

Return (0x03)
}

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

Name (_PRW, Package (0x02)
{
0x0E,
0x03
})
}

Device (UHC5)
{
Name (_ADR, 0x001A0001)
Method (_S3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}

Return (0x03)
}

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)
}
Name (_PRW, Package (0x02)
{
0x05,
0x03
})
}

Device (UHC6)
{
Name (_ADR, 0x001A0002)
Method (_S3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}

Return (0x03)
}

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)
}
Name (_PRW, Package (0x02)
{
0x20,
0x03
})
}

Device (EHC1)
{
Name (_ADR, 0x001D0007)
Method (_S3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}

Return (0x03)
}

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x06)
{
"AAPL,clock-id",
Buffer (One)
{
0x01
},

"device_type",
Buffer (0x05)
{
"EHCI"
},

"device-id",
Buffer (0x04)
{
0x3A, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

Name (_PRW, Package (0x02)
{
0x0D,
0x03
})
}

Device (EHC2)
{
Name (_ADR, 0x001A0007)
Method (_S3D, 0, NotSerialized)
{
If (LEqual (OSFL, 0x02))
{
Return (0x02)
}

Return (0x03)
}

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x06)
{
"AAPL,clock-id",
Buffer (One)
{
0x02
},

"device_type",
Buffer (0x05)
{
"EHCI"
},

"device-id",
Buffer (0x04)
{
0x3C, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

Name (_PRW, Package (0x02)
{
0x0D,
0x03
})
}


and here is my real ids:
CODE
00:1a.0 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 [8086:2937] (rev 02)
00:1a.1 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 [8086:2938] (rev 02)
00:1a.2 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 [8086:2939] (rev 02)
00:1a.7 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 [8086:293c] (rev 02)
00:1d.0 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 [8086:2934] (rev 02)
00:1d.1 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 [8086:2935] (rev 02)
00:1d.2 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 [8086:2936] (rev 02)
00:1d.7 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 [8086:293a] (rev 02)


of course the usb ids that i can seen on my ioreg dump are the ich10 one, it's strange but it works smile.gif

ps: note that the chameleon usb patches have no effect on my system

ps2: i will try to compile iousbfamily with your patch on snow leo wink.gif
Slice
QUOTE (cparm @ Sep 1 2009, 10:07 PM) *
never mind, i found out that there is a dsdt way to have uhci and ehci as built-in for all ich9/R , and the great new is that i still have sleep with those methods, errata values are not 0x00 anymore

it's described here and here , by zhell and apexDE
Yes, errata value depends on deviceID
QUOTE
in fact the method is very strange, it consist to inject ich10 usb ids to the ich9/R usb devices in dsdt, since ich10 is supported natively and ich10 ids are present in the vanilla iousb kext and sub-kexts, i suspect a bad device id detection in this driver, that able us to completely fool the system with dsdt laugh.gif

the second method was stolen to voodoousbehci, this one consist to inject "AAPL,clock-id" to the ehci devices

the merge of those methods, give me all usb port uhci et ehci as built-in, only by dsdt

Yes, it is a method
CODE
    if ( !_device->getProperty("AAPL,clock-id") && !((getPlatform()->getChipSetType() == kChipSetTypeGossamer) && getPlatform()->getMachineType() == kGossamerTypeYosemite) )
    {
        if (_device->getProperty("built-in"))
        {
            // rdar://5769508 - if we are on a built in PCI device, then assume the system supports D3cold

QUOTE
for now it's reported to work only with ich9/R, but i can't test other platform since i don't have other pc

It can't works for chipsets not like ICH10. ICH6 has other workarounds. Not to mention nForce tongue.gif
QUOTE
ps2: i will try to compile iousbfamily with your patch on snow leo wink.gif

If you encounter some problems with compilation such as missing headers or definitions call me or just look into my previous sources.
cparm
ok, i have tried to compile it, but there is still some errors,

when i compile iousb, appleohci and appleuhc, appleusbhubi:

CODE

for iousbfamily:

Category: Error: '*' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:121:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:122:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:123:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:124:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:125:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:126:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:127:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:139:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:121:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:122:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:123:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:124:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:125:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:126:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:127:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:139:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:121:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:122:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:123:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:124:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:125:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:126:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:127:0 'kErrataMCP79SplitIsoch' was not declared in this scope

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController_Errata.cpp:139:0 'kErrataMCP79SplitIsoch' was not declared in this scope


Category: Error: Other

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController.cpp:1866:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '3' to 'void clock_interval_to_deadline(uint32_t, uint32_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBLog.cpp:144:0 Cannot convert 'UnsignedWide' to 'uint64_t' for argument '1' to 'void absolutetime_to_nanoseconds(uint64_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:471:0 Cannot convert 'UnsignedWide' to 'uint64_t' for argument '1' to 'void absolutetime_to_nanoseconds(uint64_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:3052:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '3' to 'void clock_interval_to_deadline(uint32_t, uint32_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBController.cpp:1866:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '3' to 'void clock_interval_to_deadline(uint32_t, uint32_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBLog.cpp:144:0 Cannot convert 'UnsignedWide' to 'uint64_t' for argument '1' to 'void absolutetime_to_nanoseconds(uint64_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:471:0 Cannot convert 'UnsignedWide' to 'uint64_t' for argument '1' to 'void absolutetime_to_nanoseconds(uint64_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:3052:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '3' to 'void clock_interval_to_deadline(uint32_t, uint32_t, uint64_t*)'


Category: Warning: '*' is deprecated (declared at *)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2734:0 'KUNCUserNotificationDisplayFromBundle' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:233)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2735:0 'KUNCGetNotificationID' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:220)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2735:0 'KUNCGetNotificationID' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:220)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2742:0 'KUNCUserNotificationDisplayFromBundle' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:233)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2835:0 'KUNCUserNotificationDisplayNotice' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:53)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2843:0 'KUNCUserNotificationDisplayNotice' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:53)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2862:0 'KUNCUserNotificationDisplayNotice' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:53)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2870:0 'KUNCUserNotificationDisplayNotice' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:53)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2888:0 'KUNCUserNotificationDisplayNotice' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:53)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2896:0 'KUNCUserNotificationDisplayNotice' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:53)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2734:0 'KUNCUserNotificationDisplayFromBundle' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:233)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2735:0 'KUNCGetNotificationID' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:220)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2735:0 'KUNCGetNotificationID' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:220)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2742:0 'KUNCUserNotificationDisplayFromBundle' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:233)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2835:0 'KUNCUserNotificationDisplayNotice' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:53)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2843:0 'KUNCUserNotificationDisplayNotice' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:53)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2862:0 'KUNCUserNotificationDisplayNotice' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:53)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2870:0 'KUNCUserNotificationDisplayNotice' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:53)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2888:0 'KUNCUserNotificationDisplayNotice' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:53)

/Users/cparm/Desktop/IOUSBFamily-378.4.3/IOUSBFamily/Classes/IOUSBDevice.cpp:2896:0 'KUNCUserNotificationDisplayNotice' is deprecated (declared at /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers/UserNotification/KUNCUserNotifications.h:53)




for appleohci

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBOHCI/Classes/AppleUSBOHCI.cpp:1313:0 Cannot convert 'UnsignedWide' to 'uint64_t' for argument '1' to 'void absolutetime_to_nanoseconds(uint64_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBOHCI/Classes/AppleUSBOHCI.cpp:1313:0 Cannot convert 'UnsignedWide' to 'uint64_t' for argument '1' to 'void absolutetime_to_nanoseconds(uint64_t, uint64_t*)'


for appleuhci


Category: Error: Other

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBUHCI/Classes/AppleUSBUHCI_RootHub.cpp:572:0 Cannot convert 'UnsignedWide' to 'uint64_t' for argument '1' to 'void absolutetime_to_nanoseconds(uint64_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBUHCI/Classes/AppleUSBUHCI_RootHub.cpp:572:0 Cannot convert 'UnsignedWide' to 'uint64_t' for argument '1' to 'void absolutetime_to_nanoseconds(uint64_t, uint64_t*)'

Command /Developer/usr/bin/gcc-4.2 failed with exit code 1:

CompileC build/IOUSBFamily.build/Deployment/AppleUSBUHCI.build/Objects-normal/x86_64/AppleUSBUHCI.o AppleUSBUHCI/Classes/AppleUSBUHCI.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
cd /Users/cparm/Desktop/IOUSBFamily-378.4.3
setenv LANG en_US.US-ASCII
/Developer/usr/bin/gcc-4.2 -x c++ -arch x86_64 -fmessage-length=0 -pipe -nostdinc -fno-builtin -Wno-trigraphs -fno-exceptions -fno-rtti -fcheck-new -fasm-blocks -force_cpusubtype_ALL -msoft-float -Os -fno-common -mkernel -finline -fno-keep-inline-functions -DKERNEL -DKERNEL_PRIVATE -DDRIVER_PRIVATE -DAPPLE -DNeXT -isysroot /Developer/SDKs/MacOSX10.6.sdk -fapple-kext -mmacosx-version-min=10.6 -gdwarf-2 -I/Users/cparm/Desktop/IOUSBFamily-378.4.3/build/IOUSBFamily.build/Deployment/AppleUSBUHCI.build/AppleUSBUHCI.hmap -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -F/Users/cparm/Desktop/IOUSBFamily-378.4.3/build/Deployment -I/Users/cparm/Desktop/IOUSBFamily-378.4.3/build/Deployment/include -I/System/Library/Frameworks/Kernel.framework/PrivateHeaders -I/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Headers -I/Users/cparm/Desktop/IOUSBFamily-378.4.3/build/IOUSBFamily.build/Deployment/AppleUSBUHCI.build/DerivedSources/x86_64 -I/Users/cparm/Desktop/IOUSBFamily-378.4.3/build/IOUSBFamily.build/Deployment/AppleUSBUHCI.build/DerivedSources -W -Wall -Wno-unused -c /Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBUHCI/Classes/AppleUSBUHCI.cpp -o /Users/cparm/Desktop/IOUSBFamily-378.4.3/build/IOUSBFamily.build/Deployment/AppleUSBUHCI.build/Objects-normal/x86_64/AppleUSBUHCI.o

{standard input}:294:Incorrect register `%ax' used with `l' suffix
{standard input}:369:Incorrect register `%ax' used with `l' suffix
{standard input}:745:Incorrect register `%ax' used with `l' suffix
{standard input}:765:Incorrect register `%ax' used with `l' suffix
{standard input}:1923:Incorrect register `%ax' used with `l' suffix
{standard input}:1944:Incorrect register `%ax' used with `l' suffix
{standard input}:2007:Incorrect register `%ax' used with `l' suffix
{standard input}:2020:Incorrect register `%ax' used with `l' suffix
{standard input}:2037:Incorrect register `%ax' used with `l' suffix
{standard input}:3489:Incorrect register `%ax' used with `l' suffix
{standard input}:3513:Incorrect register `%ax' used with `l' suffix
{standard input}:3533:Incorrect register `%ax' used with `l' suffix
{standard input}:5150:Incorrect register `%ax' used with `l' suffix
{standard input}:5217:Incorrect register `%ax' used with `l' suffix
{standard input}:5267:Incorrect register `%ax' used with `l' suffix
{standard input}:5729:Incorrect register `%ax' used with `l' suffix
{standard input}:5744:Incorrect register `%ax' used with `l' suffix
{standard input}:5764:Incorrect register `%ax' used with `l' suffix
{standard input}:5815:Incorrect register `%ax' used with `l' suffix
{standard input}:6149:Incorrect register `%ax' used with `l' suffix
Command /Developer/usr/bin/gcc-4.2 failed with exit code 1

for appleusbhub


Category: Error: Other

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHub.cpp:166:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '1' to 'void clock_get_uptime(uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHub.cpp:2153:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '1' to 'void clock_get_uptime(uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHub.cpp:2155:0 Cannot convert 'AbsoluteTime' to 'uint64_t' for argument '1' to 'void absolutetime_to_nanoseconds(uint64_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHub.cpp:2166:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '1' to 'void clock_get_uptime(uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHub.cpp:4411:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '3' to 'void clock_interval_to_deadline(uint32_t, uint32_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHub.cpp:4862:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '3' to 'void clock_interval_to_deadline(uint32_t, uint32_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHubPort.cpp:2840:0 Cannot convert 'UnsignedWide' to 'uint64_t' for argument '1' to 'void absolutetime_to_nanoseconds(uint64_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHubPort.cpp:2843:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '2' to 'void nanoseconds_to_absolutetime(uint64_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHub.cpp:166:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '1' to 'void clock_get_uptime(uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHub.cpp:2153:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '1' to 'void clock_get_uptime(uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHub.cpp:2155:0 Cannot convert 'AbsoluteTime' to 'uint64_t' for argument '1' to 'void absolutetime_to_nanoseconds(uint64_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHub.cpp:2166:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '1' to 'void clock_get_uptime(uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHub.cpp:4411:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '3' to 'void clock_interval_to_deadline(uint32_t, uint32_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHub.cpp:4862:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '3' to 'void clock_interval_to_deadline(uint32_t, uint32_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHubPort.cpp:2840:0 Cannot convert 'UnsignedWide' to 'uint64_t' for argument '1' to 'void absolutetime_to_nanoseconds(uint64_t, uint64_t*)'

/Users/cparm/Desktop/IOUSBFamily-378.4.3/AppleUSBHub/Classes/AppleUSBHubPort.cpp:2843:0 Cannot convert 'AbsoluteTime*' to 'uint64_t*' for argument '2' to 'void nanoseconds_to_absolutetime(uint64_t, uint64_t*)'



i have also added those definitions from 10.5 kernel PrivateHeaders (/libkern/OSBase.h) :

CODE
__BEGIN_DECLS


OS_INLINE
uint64_t
__OSAbsoluteTime(
    AbsoluteTime    abstime)
{
    return (*(uint64_t *)&abstime);
}

OS_INLINE
uint64_t *
__OSAbsoluteTimePtr(
    AbsoluteTime    *abstime)
{
    return ((uint64_t *)abstime);
}

#define AbsoluteTime_to_scalar(x)    (*(uint64_t *)(x))

/* t1 < = > t2 */
#define CMP_ABSOLUTETIME(t1, t2)                \
    (AbsoluteTime_to_scalar(t1) >                \
        AbsoluteTime_to_scalar(t2)? (int)+1 :    \
     (AbsoluteTime_to_scalar(t1) <                \
        AbsoluteTime_to_scalar(t2)? (int)-1 : 0))

/* t1 += t2 */
#define ADD_ABSOLUTETIME(t1, t2)                \
    (AbsoluteTime_to_scalar(t1) +=                \
                AbsoluteTime_to_scalar(t2))

/* t1 -= t2 */
#define SUB_ABSOLUTETIME(t1, t2)                \
    (AbsoluteTime_to_scalar(t1) -=                \
                AbsoluteTime_to_scalar(t2))

#define ADD_ABSOLUTETIME_TICKS(t1, ticks)        \
    (AbsoluteTime_to_scalar(t1) +=                \
                        (int32_t)(ticks))


__END_DECLS




and the privateheader IOHibernatePrivate.h from 10.5

do you have an idea how to fix the remaining errors ?

ps: another good news with the dsdt method , i have noticed that i can wake the OS through USB, by moving my usb wireless mouse, i don't know why it don't work with my wireless keyboard

CODE
03/09/09 23:33:12    kernel    /drv/ MacModule.cpp:261   powerStateWillChangeTo: flags=4 stateNumber=2
03/09/09 23:33:12    kernel    /drv/ MacModule.cpp:266   powerStateWillChangeTo: found flag=kIOPMSleepCapability (4)
03/09/09 23:33:13    kernel    /drv/ MacModule.cpp:261   powerStateDidChangeTo: flags=4 stateNumber=2
03/09/09 23:33:13    kernel    /drv/ MacModule.cpp:266   powerStateDidChangeTo: found flag=kIOPMSleepCapability (4)
03/09/09 23:33:13    kernel    System Sleep
03/09/09 23:33:21    kernel    Wake reason = UHC5 <-- my usb mouse  :)
03/09/09 23:33:21    kernel    System Wake
03/09/09 23:33:21    kernel    /drv/ MacModule.cpp:261   powerStateWillChangeTo: flags=82 stateNumber=4
03/09/09 23:33:21    kernel    /drv/ MacModule.cpp:262   powerStateWillChangeTo: found flag=kIOPMPowerOn (2)
03/09/09 23:33:21    kernel    /drv/ MacModule.cpp:267   powerStateWillChangeTo: found flag=kIOPMRestartCapability (80)
03/09/09 23:33:21    kernel    /drv/ MacModule.cpp:261   powerStateDidChangeTo: flags=82 stateNumber=4
03/09/09 23:33:21    kernel    /drv/ MacModule.cpp:262   powerStateDidChangeTo: found flag=kIOPMPowerOn (2)
03/09/09 23:33:21    kernel    /drv/ MacModule.cpp:267   powerStateDidChangeTo: found flag=kIOPMRestartCapability (80)
03/09/09 23:33:21    kernel    Previous Sleep Cause: 0
03/09/09 23:33:21    kernel    USB (UHCI):Port 1 on bus 0x3a has remote wakeup from some device
03/09/09 23:33:25    configd[18]    network configuration changed.
03/09/09 23:33:25    configd[18]    network configuration changed.
Slice
CODE
    kErrataUHCISupportsOvercurrent        = (1 << 13),    // UHCI controller supports overcurrent detection
    kErrataNeedsOvercurrentDebounce        = (1 << 14),    // The overcurrent indicator should be debounced by 10ms
    kErrataSupportsPortResumeEnable        = (1 << 15),    // UHCI has resume enable bits at config address 0xC4
    kErrataMCP79SplitIsoch                = (1 << 16),    // MCP79 - split iscoh is a little different
    kErrataOHCINoGlobalSuspendOnSleep    = (1 << 17),    // when sleeping, do not put the OHCI controller in SUSPEND state. just leave it Operational with suspended downstream ports
    kErrataMissingPortChangeInt            = (1 << 18),    // sometimes the port change interrupt may be missing
    kErrataMCP79IgnoreDisconnect        = (1 << 19),    // MCP79 - need to ignore a connect/disconnect on wake
    kErrataUse32bitEHCI                    = (1 << 20)        // MCP79 - EHCI should only run with 32 bit DMA addresses

Change always to
QUOTE
clock_get_uptime((uint64_t *)&currentTime);
absolutetime_to_nanoseconds(*(uint64_t*)&currentTime, (uint64_t*)&elapsedTime);

QUOTE
'KUNCUserNotificationDisplayFromBundle' is deprecated
- this is new in Snow so I don't know what to do.
QUOTE
{standard input}:6149:Incorrect register `%ax' used with `l' suffix
- it seems register %ax can't be used for 64bit mode. Don't know.

One another trick:
Change all
#include <IOKit/usb/bla-bla.h>
to
#include "bla-bla.h"
because project has other definitions then SDK.
cparm
ok, in fact i had fixed the AbsoluteTime errors about a few hour after posting, sorry for not have informed you biggrin.gif, i confirm that (uint64_t *) and *(uint64_t*) are the solutions

for the kErrataMCP79SplitIsoch errors, i had temporarily double slashed them, because those id are not the most important for now, and it will easy to find how to re-enable them

but for `%ax' errors, the only errors that i still got, i don't find any solution, it seems that it's asm code, and i don't know anything about that

i will try again with the trick you gave me
dj nitehawk
hi slice,

thanks for ur input about chameleon 1 but that didnt help me...

i've now finally solved my sleep/wake issues by installing chameleon 2 rc3 and most importantly by adding a "-v" flag to the boot plist...

booting without the -v flag breaks my resume...

read all about it here:

http://www.insanelymac.com/forum/index.php?showtopic=184470

any idea why the -v flag affect the resume function???

so to summarize, here are the ingredients for my sleep fix:

1. chameleon2 rc3
2. /Extra
- com.apple.boot.plist
- boot flags: -v arch=x86 GraphicsEnabler=Yes
- dsdt.aml
- patched by pcwiz dsdt patcher gui
- manually patched uhci/ehci devises to emulate ich10 dev ids (wont go to sleep without this)
/Extra/Extensions
- fakesmc.kext
- voodoops2controller.kext
- appleacpips2nub.kext
- openhaltrestart.kext




so im really looking forward to a working 10.6 iousbfamily.kext from CPARM so i can get rid of the uhci/ehci dsdt patch (which is quite a pain when doing new installs). if we can get the kext to sort that out, it would be really cool....

keep up the great work guys!!!
Notbad
Thanks Slice,

It works now flawless in my SL 10.6.2 by hazard. before I had problems, sometimes worked sometimes not, now it works everytime.

-v option I can see now that USB is forced and I need to report to you wink.gif

It works on my Abit I-S71 mobo with SiS chipsets.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.