auTONYmous Posted June 19, 2007 Share Posted June 19, 2007 WOW...(update) USB1 actually DOES work in my case, using the usb package on the uphuck 1049 v1.3 cd. I need to use a USB1 hub in USB2 ports. BIOS has no capability of forcing ports to USB1. So, we're halfway there. Now, bring on the EHCI! USB1_Working.rtf Link to comment Share on other sites More sharing options...
josh256 Posted June 21, 2007 Share Posted June 21, 2007 Well for what its worth: 2.5.6a (for 8.4.1) working great for me on a Jas 10.4.9 system (patched from Jas 10.4.8) running the latest NetKas 8.9.1 kernel... Just manually upgraded to 10.4.10.. it does replace the USB family of kexts. On my 975X I lost EHCI again so I will restore pcGenUSBEHCI and report my findings.. Link to comment Share on other sites More sharing options...
josh256 Posted June 21, 2007 Share Posted June 21, 2007 Okay, using the 8.4.1 2.6.4a installer on 10.4.10 did not work for me.. installed okay but after a reboot I was still missing my high speed hub. Reminder: This install did work for me on 10.4.9 so I expect the new IOUSBFamily.kext to be the culprit.. To get EHCI working again I've rolled only the IOUSBFamily.kext back to the 10.4.9 version and have the following (which I expect to be a mix of 10.4.9 and 10.4.10 kexts): joshuas-computer:~ Joshua$ kextstat | grep PCG 40 0 0x3c465000 0x12000 0x11000 com.orByte.driver.PCGenUSBEHCI (2.6.1) <32 16 5 4 3> joshuas-computer:~ Joshua$ kextstat | grep USB 32 13 0x3bdb2000 0x1a000 0x19000 com.apple.iokit.IOUSBFamily (2.6.1) <6 5 4 3> 33 0 0x3be09000 0xe000 0xd000 com.apple.driver.AppleUSBUHCI (2.6.0) <32 16 5 4 3> 40 0 0x3c465000 0x12000 0x11000 com.orByte.driver.PCGenUSBEHCI (2.6.1) <32 16 5 4 3> 51 0 0x3cadf000 0x9000 0x8000 com.apple.driver.AppleUSBHub (2.6.0) <32 11> 54 0 0x3ce49000 0x5000 0x4000 com.apple.driver.AppleUSBBluetoothHCIController (1.9f8) <53 32 11> 55 0 0x482a3000 0x3000 0x2000 com.apple.driver.AppleUSBComposite (2.6.1) <32 11> 56 0 0x483ac000 0xa000 0x9000 com.apple.iokit.IOUSBMassStorageClass (1.4.9) <43 32 29 11> 63 0 0x48a41000 0x9000 0x8000 com.apple.iokit.IOUSBUserClient (2.6.0) <32 11> 64 0 0x48a4a000 0x4000 0x3000 com.parallels.kext.ConnectUSB (3.0.0) <32 11 6 5 4 3> 91 1 0x6b4e7000 0x5000 0x4000 com.apple.iokit.IOUSBHIDDriver (2.6.0) <32 21 11> 94 1 0x48b14000 0x2000 0x1000 com.apple.driver.AppleUSBMergeNub (2.6.0) <32 11> Here's what I get trying to manual load 2.6.4a on a 10.4.10 system: joshuas-computer:/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns Joshua$ sudo kextload -t /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/PCGenUSBEHCI.kext/ kextload: extension /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/PCGenUSBEHCI.kext/ appears to be valid kld(): Undefined symbols: __ZN24IOBufferMemoryDescriptor17getVirtualSegmentEmPm kextload: kld_load_from_memory() failed for module /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/PCGenUSBEHCI.kext/Contents/MacOS/PCGenUSBEHCI kextload: a link/load error occured for kernel extension /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/PCGenUSBEHCI.kext/ load failed for extension /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/PCGenUSBEHCI.kext/ joshuas-computer:~ Joshua$ Link to comment Share on other sites More sharing options...
covenant Posted June 23, 2007 Share Posted June 23, 2007 Well for what its worth:2.5.6a (for 8.4.1) working great for me on a Jas 10.4.9 system (patched from Jas 10.4.8) running the latest NetKas 8.9.1 kernel... Just manually upgraded to 10.4.10.. it does replace the USB family of kexts. On my 975X I lost EHCI again so I will restore pcGenUSBEHCI and report my findings.. Odd.. When I tried to use the PCGen driver on 10.4.9, it freaked out and couldn't load the USB kext. What did you have to do to get it to load on 10.4.9? Link to comment Share on other sites More sharing options...
orByte Posted June 24, 2007 Author Share Posted June 24, 2007 Good News!! I have added the 10.4.9/8.9.1 version here. Best. Link to comment Share on other sites More sharing options...
hermanzaum Posted June 24, 2007 Share Posted June 24, 2007 OMG ! OMG ! OMG ! You are the man! I'll update my system again from 10.4.8 to 10.4.9, and try the new drivers. Thanks! Good News!! I have added the 10.4.9/8.9.1 version here. Best. Link to comment Share on other sites More sharing options...
numberonekiwi Posted June 24, 2007 Share Posted June 24, 2007 Did not work for me caused system profiler to hang when clicking usb and cant use the 6 n 1 card reader worked under usb 1.1 but this is a usb 2.0 device Link to comment Share on other sites More sharing options...
josh256 Posted June 25, 2007 Share Posted June 25, 2007 Just ran the .pkg install and got lucky HW-compatibility wise I guess Link to comment Share on other sites More sharing options...
orByte Posted June 25, 2007 Author Share Posted June 25, 2007 People having problems could try IOUSBFamily 2.6.5 & IOUSBMassStorageClass 1.4.7 & PCGenUSB 2.7.0 . Remember to first delete (AppleUSBEHCI... from your system). Best. Link to comment Share on other sites More sharing options...
covenant Posted June 25, 2007 Share Posted June 25, 2007 Good News!! I have added the 10.4.9/8.9.1 version here. Best. Wootness! Thanky, thanky! I'd compile if I had more experience with OSX... but although I managed to compile my printer drivers, this is a little bit beyond my scope. Thanks much for the new update. (now 10.4.10, hehe.. no hurry on that since there's not even an update out yet)... When you're compiling for newer kernels, is it mostly just a recompile, or are you having to change much code? Link to comment Share on other sites More sharing options...
SteveNZ Posted June 25, 2007 Share Posted June 25, 2007 I get the IOUSBFamily-270.4.1 installer from Apple, but it only has v2.6.5 of the IOUSBFamily.kext with it. Trying to use this with 10.4.9/8.9.1, and the only changes are a couple of extra errors on bootup. Link to comment Share on other sites More sharing options...
orByte Posted June 25, 2007 Author Share Posted June 25, 2007 Wootness! Thanky, thanky! When you're compiling for newer kernels, is it mostly just a recompile, or are you having to change much code? You have to change a number of things, without which the code will not compile. Here they are: (1) Time handling macros. You would either need to retrieve these and create a new header file, or expand the macros in source. Also, you would need to cast time variables. If you diff my code against Apple's you ll see expanded macros and the casts. The last version that had the Macro's somewhere I think it was the 10.3.9 sdk/Sys/Lib/Frm/K.F/V/A/H/kern/clock.h. (2) Updated Kernel.Framework/IOKIT/usb header files. Generally speaking the updated header files are included in the project. But you would need to apply them to the System headers, or specify a local path. (3) Function call/privacy scope changes. Usually these will also be in the included System headers. Spotlight, as well Apple's developer site are very helpful in tracking down what needs to be done. EDIT: (4) If starting with Apple's code, you would also need to upgrade the whole project to Native & switch USBProber (Upgraded Target)>Build > GCC from 3.3 to 4. Best I get the IOUSBFamily-270.4.1 installer from Apple, but it only has v2.6.5 of the IOUSBFamily.kext with it. Trying to use this with 10.4.9/8.9.1, and the only changes are a couple of extra errors on bootup. Yes, not everything in 270.4.1 is v.270. Some items are 2.6.5. That's fine. $ kextstat | grep -i USB 30 8 0x2cb9e000 0x1a000 0x19000 com.apple.iokit.IOUSBFamily (2.6.5) <6 5 4 3> 31 0 0x2cbe5000 0xe000 0xd000 com.apple.driver.AppleUSBUHCI (2.7.0) <30 16 5 4 3> 32 0 0x2cf61000 0x12000 0x11000 com.orByte.driver.PCGenUSBEHCI (2.7.0) <30 16 5 4 3> 37 0 0x2d1cc000 0x9000 0x8000 com.apple.driver.AppleUSBHub (2.6.5) <30 11> 47 0 0x2d51f000 0x3000 0x2000 com.apple.driver.AppleUSBComposite (2.6.5) <30 11> 48 0 0x2d5d2000 0xa000 0x9000 com.apple.iokit.IOUSBMassStorageClass (1.4.7) <38 35 30 11> 50 0 0x2d733000 0x5000 0x4000 com.apple.iokit.IOUSBHIDDriver (2.6.5) <30 20 11> 56 0 0x2d7c7000 0x9000 0x8000 com.apple.iokit.IOUSBUserClient (2.7.0) <30 11> Best EDIT: PS. Almost forgot... Anybody who wants to compile, should re-download the package. Sorry bout that. I had accidentally uploaded an unfinished source version, which does not include all of the mods. Link to comment Share on other sites More sharing options...
AaronR Posted June 29, 2007 Share Posted June 29, 2007 New version worked great until I applied latest Apple software update (QT7.1.6 and Security 2007-06). Now I got an error msg says PCGenUSBEHCI is not properly installed. Fixed! I checked the version of IOUSBFamily.kext and it's the old version 2.6.5. So I download and install the latest kext from Apple, remove the AppleUSBEHCI.kext, no more error after reboot. However when I check the version, it's still 2.6.5? Update When I inserted a 4gb SD (not SDHC) card into USB reader, LED light on reader went out, nothing was mounted and system couldn't shut down normally. After reset I got that error msg again, and reader recognized as USB device (not high speed USB) but it can read the 4gb card. To get USB2 back I removed kext cache and restart. My 512MB SD card doesn't cause such problem (losing USB2) though. Link to comment Share on other sites More sharing options...
Common Sense Posted July 1, 2007 Share Posted July 1, 2007 Thanks for your effort orByte! When using the combination of versions for the kexts you mentioned I get the usb mass storage device to show up as /dev/disk2 and in system log it writes "disk2: I/O error.". I get the same as a poster above when connecting the device and entering Systeminformation, when I click USB it just waites and loads. Im running the 8.10.1 kernel so perhaps thats the problem? I have a K8T800 Pro chipset if thats helpful in anyway. Perhaps it could be of help if people write down their hardware besides reporting what works and what not. Edit: Didnt work with 8.9.1 kernel. Link to comment Share on other sites More sharing options...
Mysticus C* Posted July 8, 2007 Share Posted July 8, 2007 my comp is acer aspire 9503 series with intel chipset... (my knowledge with driver compiling is 0 ) i did everything that is said in install still cant get it work, USBF: the bla bla bla memory message -- not working... i was just wondering, if there is any way/any place to match vendor&device ids? like the ones for detecting some undetected hardwares normaly done for audio & lan & wifi drivers etc... bcoz i think this acpi system & usb2 controllers issues somehow quite painfull as they re closed boxes i have 2 laptops at home and one has no problem at all with acpi or usb2 (toshiba qosmio) and other has serious issues starting even from dvd for install (acer aspire 9500 series) i after so much painfull process of all manual install this install that upgrade this upgrade that process managed to install the 10.4.9 (uphuck 1.3) - to speak to date i couldnt get the usb2 work at none of the installations with all pcgenusb s... 10.4.6->10.4.9 (no success) can we do the same trick here? would it be possible to retrieve the controller by matching its ven&dev ids? just a noob idea if it is too stupid one i ask this bcoz from windows if i check vendor id and dev ids for usb controllers... there are many and all different... thanx for the great work as well... Link to comment Share on other sites More sharing options...
orByte Posted July 9, 2007 Author Share Posted July 9, 2007 my comp is acer aspire 9503 series with intel chipset...(my knowledge with driver compiling is 0 ) i did everything that is said in install still cant get it work, USBF: the bla bla bla memory message -- not working... i was just wondering, if there is any way/any place to match vendor&device ids? like the ones for detecting some undetected hardwares normaly done for audio & lan & wifi drivers etc... bcoz i think this acpi system & usb2 controllers issues somehow quite painfull as they re closed boxes i have 2 laptops at home and one has no problem at all with acpi or usb2 (toshiba qosmio) and other has serious issues starting even from dvd for install (acer aspire 9500 series) i after so much painfull process of all manual install this install that upgrade this upgrade that process managed to install the 10.4.9 (uphuck 1.3) - to speak to date i couldnt get the usb2 work at none of the installations with all pcgenusb s... 10.4.6->10.4.9 (no success) can we do the same trick here? would it be possible to retrieve the controller by matching its ven&dev ids? just a noob idea if it is too stupid one i ask this bcoz from windows if i check vendor id and dev ids for usb controllers... there are many and all different... thanx for the great work as well... Memory error message - if it is the one I think it is, this means the driver will not work period. It is not a matching issue. See my earlier post about the 'kiss of death' Best. Link to comment Share on other sites More sharing options...
Mysticus C* Posted July 9, 2007 Share Posted July 9, 2007 Thanx for the reply m8, i m trying to find and read your post about this kiss of death issue, by the way the actual message says something like unable to get device memory and next line giving error (0xe00002be) or stg like that i guess it is the same memory message u r talking about... ======= I found ur post about the issue m8, i know what you mean by period but just trying to figure out how can we get it to work? bcoz b4 someone came up with an idea we were not able to use audios, and got fixed, same as vgas and mobos and patas and satas and all others... dont get me wrong m8 just trying to create some ideas to help find a solution instead of death end It is giving the error messages and details about addresses of the issue? cant we do anytg about it with that info? Second question is the way drivers work (i m not an expert about compiling a driver but!), i believe the hardwares are sending their ven&dev ids somewhow (dunno the technical way of saying it) and that our OS tries to find right match for it from its database of drivers, eg, while our graphic card doesnt work as it is, wen we add specific ven&dev ids it suddenlys gets recognized same as some audio and lan nics and wifi nics and all other etc... so why is it not possible to use the same trick here with usb issue as well bcoz it has its own ven&dev ids as with all other hardwares... cheers and thanx all for their efforts... Link to comment Share on other sites More sharing options...
orByte Posted July 10, 2007 Author Share Posted July 10, 2007 It is giving the error messages and details about addresses of the issue? cant we do anytg about it with that info? so why is it not possible to use the same trick here with usb issue as well bcoz it has its own ven&dev ids as with all other hardwares... cheers and thanx all for their efforts... The device/vendor is being recognized, the error occurs when the driver loads. If I remember correctly, it occurs early in the driver initialization cycle. In terms of fixing it, you could download the PCGen source code, do a search for the error message, and then debug to sort it out. Very likely you would need to write a patch that allows device memory to be recognized. The issue could be related to PCI bus specifications or something else. AppleUSBEHCI.cpp if (!(_deviceBase = provider->mapDeviceMemoryWithIndex(0))) { USBError(1, "AppleUSBEHCI[%p]::UIMInitialize - unable to get device memory", this); err = kIOReturnNoResources; break; } This is what needs to be sorted, and it would take someone like yourself who has the error to debug and test it. Best Link to comment Share on other sites More sharing options...
Mysticus C* Posted July 10, 2007 Share Posted July 10, 2007 hmm :censored2: that means it will be quite diffucult as i dont have knowledge about driver compiling/debuggin which means bumpity bump thanx for the explanation m8... Link to comment Share on other sites More sharing options...
iRabbit Posted July 12, 2007 Share Posted July 12, 2007 Oh... I can not access the link that OrByte gives (sendspace.com). .. .... Would anybody tell me where I can get the PCGenUSBEHCI.270.zip in other place ? Or send the file to dean.apple@gmail.com Much Thanks. Link to comment Share on other sites More sharing options...
ChickenFlu Posted July 14, 2007 Share Posted July 14, 2007 ooh this works like a dream thanks! Link to comment Share on other sites More sharing options...
Mysticus C* Posted July 16, 2007 Share Posted July 16, 2007 this might be a noob question, is there any way to convert windows (eg XP) drivers to OS X drivers? would it be possible? or not? if yes, how? if not, why? thanx... Link to comment Share on other sites More sharing options...
orByte Posted July 17, 2007 Author Share Posted July 17, 2007 this might be a noob question, is there any way to convert windows (eg XP) drivers to OS X drivers? would it be possible? or not? if yes, how? if not, why? thanx... This is a very difficult road. If the driver hardware specs are open, then it would be best to write the driver from scratch. If the driver hardware specs are closed, or not accessible to you, you would need to reverse engineer the windows driver using a decompiler. The decompiler will likely produce low level C/assembly mix code. This approach is known as 'dirty room' reverse engineering. There is also 'clean room' reverse engineering in which people observe the known behaviour of the driver, and from that create functional specifications for the target OS. Typically the clean and dirty rooms work independently of each other but are supervised by the project manager, who coordinates their efforts. From there, you would be looking to gather all information on hardware registers, control constants, and hardware specific interaction functions - and use these to build up your own specification document. Then, from that document you go ahead and write the driver (pretty much from scratch). You might ask why? Each OS has its own logic and approach to dealing with hardware. Therefore once you have the hardware specs, one needs to use the specific call style and grammar of the target OS. Best. Link to comment Share on other sites More sharing options...
AaronR Posted July 17, 2007 Share Posted July 17, 2007 Hey orbyte, glad to see ya here. Any progress on USB2 driver for 10.4.10? Link to comment Share on other sites More sharing options...
Mysticus C* Posted July 18, 2007 Share Posted July 18, 2007 This is a very difficult road. If the driver hardware specs are open, then it would be best to write the driver from scratch. If the driver hardware specs are closed, or not accessible to you, you would need to reverse engineer the windows driver using a decompiler. The decompiler will likely produce low level C/assembly mix code. This approach is known as 'dirty room' reverse engineering. There is also 'clean room' reverse engineering in which people observe the known behaviour of the driver, and from that create functional specifications for the target OS. Typically the clean and dirty rooms work independently of each other but are supervised by the project manager, who coordinates their efforts. From there, you would be looking to gather all information on hardware registers, control constants, and hardware specific interaction functions - and use these to build up your own specification document. Then, from that document you go ahead and write the driver (pretty much from scratch). You might ask why? Each OS has its own logic and approach to dealing with hardware. Therefore once you have the hardware specs, one needs to use the specific call style and grammar of the target OS. Best. thanx mate, it appears that people with {censored} laptop bios will have to wait long time in order for ehci driver to read whatever memory it is looking for.. in order to work properly... otherwise it will be impossible to write our own with average joe knowledge... good information but to average joe it means nice lemonade cheers... Link to comment Share on other sites More sharing options...
Recommended Posts