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>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
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
[-- Attachment #2 --]
--- 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
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131013082210.GA65964>
