On Sun, Oct 13, 2013 at 08:50:53AM +0200, Hans Petter Selasky wrote: > iPhones sometimes have multiple configurations. > > usbconfig -d X.Y dump_device_desc
Dumping desc produced almost identical files (the only differences were in idProduct and iSerialNumber, quite expectedly). > usbconfig -d X.Y set_config 1 > usbconfig -d X.Y set_config 2 > usbconfig -d X.Y set_config 3 I presume I do not need to re-plug or otherwise re-init the phone after setting config, correct? (It seems I don't, asking just to make sure.) > PTP might not always be available from the first configuration. I've tried to play with set_config, but without much luck. However, I did dump_all_config_desc to discover that config index 2 (the one that is "PTP + Apple Mobile Device", with bInterfaceClass = 0x0006) is missing from the output for the "bad" iPhone (diff attached). Why is it missing? Is there any way to force/inject it into the stack? ./danfe
--- ok.all_config 2013-10-13 15:34:36.000000000 +0800 +++ bad.all_config 2013-10-13 15:35:04.000000000 +0800 @@ -203,92 +203,6 @@ - Configuration index 2 - - bLength = 0x0009 - bDescriptorType = 0x0002 - wTotalLength = 0x003e - bNumInterfaces = 0x0002 - bConfigurationValue = 0x0003 - iConfiguration = 0x0007 <PTP + Apple Mobile Device> - bmAttributes = 0x00c0 - bMaxPower = 0x00fa - - Interface 0 - bLength = 0x0009 - bDescriptorType = 0x0004 - bInterfaceNumber = 0x0000 - bAlternateSetting = 0x0000 - bNumEndpoints = 0x0003 - bInterfaceClass = 0x0006 - bInterfaceSubClass = 0x0001 - bInterfaceProtocol = 0x0001 - iInterface = 0x0000 <no string> - - Endpoint 0 - bLength = 0x0007 - bDescriptorType = 0x0005 - bEndpointAddress = 0x0002 <OUT> - bmAttributes = 0x0002 <BULK> - wMaxPacketSize = 0x0200 - bInterval = 0x000a - bRefresh = 0x0000 - bSynchAddress = 0x0000 - - Endpoint 1 - bLength = 0x0007 - bDescriptorType = 0x0005 - bEndpointAddress = 0x0081 <IN> - bmAttributes = 0x0002 <BULK> - wMaxPacketSize = 0x0200 - bInterval = 0x000a - bRefresh = 0x0000 - bSynchAddress = 0x0000 - - Endpoint 2 - bLength = 0x0007 - bDescriptorType = 0x0005 - bEndpointAddress = 0x0083 <IN> - bmAttributes = 0x0003 <INTERRUPT> - wMaxPacketSize = 0x0040 - bInterval = 0x000a - bRefresh = 0x0000 - bSynchAddress = 0x0000 - - - Interface 1 - bLength = 0x0009 - bDescriptorType = 0x0004 - bInterfaceNumber = 0x0001 - bAlternateSetting = 0x0000 - bNumEndpoints = 0x0002 - bInterfaceClass = 0x00ff - bInterfaceSubClass = 0x00fe - bInterfaceProtocol = 0x0002 - iInterface = 0x0000 <no string> - - Endpoint 0 - bLength = 0x0007 - bDescriptorType = 0x0005 - bEndpointAddress = 0x0004 <OUT> - bmAttributes = 0x0002 <BULK> - wMaxPacketSize = 0x0200 - bInterval = 0x0000 - bRefresh = 0x0000 - bSynchAddress = 0x0000 - - Endpoint 1 - bLength = 0x0007 - bDescriptorType = 0x0005 - bEndpointAddress = 0x0085 <IN> - bmAttributes = 0x0002 <BULK> - wMaxPacketSize = 0x0200 - bInterval = 0x0000 - bRefresh = 0x0000 - bSynchAddress = 0x0000 - - - Configuration index 3 bLength = 0x0009
_______________________________________________ freebsd-usb@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-usb To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"