Message: 1
Date: Sat, 14 Oct 2006 13:54:22 -0600
From: Fernando Urbina <email@hidden>
Subject: Re: Apple MASS storage driver
To: USB List at Apple <email@hidden>
Message-ID: <email@hidden>
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Sounds like you're over your head. As I said, you don't want to do
this for all class devices. You want a vendor-specific kext and you
should NOT be modifying a system kext. If the above doesn't make
much sense, I suggest you instead file a bug at http://
bugreporter.apple.com. Please include the device descriptor when the
phone is in both the CDC mode and the mass storage mode.
BTW, you could also write a user space app that just issues a
SetConfiguration() to your device. Then, when you want it to load
the mass storage interface, you just run that app.
HTH,
--
Fernando Urbina
USB Technology Team
Apple Computer, Inc.
On Oct 13, 2006, at 3:05 PM, Mark Thomas wrote:
Ok, I'm up to trying this, so this within IOUSBFamily.kext then
within
IOUSBCompositeDriver.kext update the Info.plist within
IOKitPersonalities ?
bDeviceClass 2
bDeviceProtocol 0
bDeviceSubClass 0
CFBundleIdentifier com.apple.driver.AppleUSBComposite
IOClass IOUSBCompositeDriver
IOProviderClass IOUSBDevice
as I gave this a go and nothing changed :-(, or did I miss
understand you
?
Thanks
Mark.
Ah, the problem is that the phone is NOT changing the device
descriptor:
Device Class: 2 (Communication)
Device Subclass: 0
Device Protocol: 0
Our CDC driver will fail to match to that device 'cause it won't
find
the interfaces. Our composite driver will not load against it,
cause
it's not a composite device.
You can create a code-less kext for that particular device that
uses
the composite driver as the CFBundleIndentifier. You can look
at the
IOUSBCompositeDriver.kext Info.plist and see how we do it for a
particular class of devices. You would need to do it just for your
device, not for the whole CDC devices.
As for it not charging, I assume it's a feature of the phone.
--
Fernando Urbina
USB Technology Team
Apple Computer, Inc.
On Oct 13, 2006, at 2:16 PM, Mark Thomas wrote:
In the IORegistry tab there is
(IOService Plane option)
usb@1B <class IOPCIDevice>
AppleUSBOHCI <class AppleUSBOHCI>
OHCI Root Hub Simulation@1B <class IOUSBRootHubDevice>
P990i@1b100000 <class IOUSBDevice>
IOUSBUserClientInit <class IOUSBUserClientInit>
(IOUSB Plane option)
Root <class IORegistryEntry>
OHCI Root Hub Simulation@1A <class IOUSBRootHubDevice>
IOUSBDevice@1a100000 <class IOUSBDevice>
OHCI Root Hub Simulation@1B <class IOUSBRootHubDevice>
P990i@1b100000 <class IOUSBDevice>
By not working I mean there is no volume appearing, and also the
phone
doesn't to start charging like it does when in USB modem mode.
Thanks
Mark.
What do you mean by "isn't working"?
Can you see if the IOUSBMassStorageDriver has matched to the
interface? You can use IORegistryExplorer and follow the
IOServicePlane for the device, or use ioreg -l and look for the
interface for that device.
--
Fernando Urbina
USB Technology Team
Apple Computer, Inc.
On Oct 13, 2006, at 2:05 PM, Mark Thomas wrote:
I have a Sony Ericcson P990i which has an option which
reports it
can be
behave like a USB mass storage device when attached via the USB
route.
Unfortunately this isn't working, so looking at the USB Prober
its is
reporting itself as a mass storage device, so wondering what
could be
happening ?