Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Oct 2013 15:22:10 +0700
From:      Alexey Dokuchaev <danfe@nsu.ru>
To:        Hans Petter Selasky <hps@bitfrost.no>
Cc:        usb@freebsd.org
Subject:   Re: iPhone 4(S) access via gphoto2
Message-ID:  <20131013082210.GA65964@regency.nsu.ru>
In-Reply-To: <525A42CD.5020201@bitfrost.no>
References:  <20131012175942.GA2554@regency.nsu.ru> <20131012190107.GA15100@regency.nsu.ru> <525A42CD.5020201@bitfrost.no>

next in thread | previous in thread | raw e-mail | index | archive | help

--mP3DRpeJDSE+ciuQ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

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

--mP3DRpeJDSE+ciuQ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="iphone_desc.diff"

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

--mP3DRpeJDSE+ciuQ--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131013082210.GA65964>