From owner-freebsd-usb@FreeBSD.ORG Sun Oct 3 22:47:04 2010 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47CBB1065674 for ; Sun, 3 Oct 2010 22:47:04 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from out-0.mx.aerioconnect.net (out-0-36.mx.aerioconnect.net [216.240.47.96]) by mx1.freebsd.org (Postfix) with ESMTP id 26BEB8FC12 for ; Sun, 3 Oct 2010 22:47:04 +0000 (UTC) Received: from idiom.com (postfix@mx0.idiom.com [216.240.32.160]) by out-0.mx.aerioconnect.net (8.13.8/8.13.8) with ESMTP id o93MYe3f017804; Sun, 3 Oct 2010 15:34:40 -0700 X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from julian-mac.elischer.org (h-67-100-89-137.snfccasy.static.covad.net [67.100.89.137]) by idiom.com (Postfix) with ESMTP id 864882D6015; Sun, 3 Oct 2010 15:34:39 -0700 (PDT) Message-ID: <4CA90529.6080301@freebsd.org> Date: Sun, 03 Oct 2010 15:35:21 -0700 From: Julian Elischer User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.2.9) Gecko/20100915 Thunderbird/3.1.4 MIME-Version: 1.0 To: dan References: <201010031019.20329.hselasky@c2i.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.67 on 216.240.47.51 Cc: freebsd-usb@freebsd.org Subject: Re: ...but this USB device is more than a printer! X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Oct 2010 22:47:04 -0000 On 10/3/10 3:34 AM, dan wrote: > On 03.10.2010 10:19, Hans Petter Selasky wrote: >> On Sunday 03 October 2010 01:19:18 dan wrote: >>> Hi all, >>> >>> I'll go straight to the point. >>> Here's the output from "usbconfig dump_device_desc" >>> >>> #* >>> ugen0.3: at usbus0, cfg=0 md=HOST >>> spd=FULL (12Mbps) pwr=ON >>> >>> bLength = 0x0012 >>> bDescriptorType = 0x0001 >>> bcdUSB = 0x0110 >>> bDeviceClass = 0x0000 >>> bDeviceSubClass = 0x0000 >>> bDeviceProtocol = 0x0000 >>> bMaxPacketSize0 = 0x0008 >>> idVendor = 0x04e8 >>> idProduct = 0x3413 >>> bcdDevice = 0x0100 >>> iManufacturer = 0x0001 >>> iProduct = 0x0002 >>> iSerialNumber = 0x0003<8J21BAKYB28091W.> >>> bNumConfigurations = 0x0001 >>> #* >>> >>> and here's the output from "usbconfig dump_curr_config_desc" >>> >>> #* >>> ugen0.3: at usbus0, cfg=0 md=HOST >>> spd=FULL (12Mbps) pwr=ON >>> >>> >>> Configuration index 0 >>> >>> bLength = 0x0009 >>> bDescriptorType = 0x0002 >>> wTotalLength = 0x0020 >>> bNumInterfaces = 0x0001 >>> bConfigurationValue = 0x0001 >>> iConfiguration = 0x0000 >>> bmAttributes = 0x00c0 >>> bMaxPower = 0x0000 >>> >>> Interface 0 >>> bLength = 0x0009 >>> bDescriptorType = 0x0004 >>> bInterfaceNumber = 0x0000 >>> bAlternateSetting = 0x0000 >>> bNumEndpoints = 0x0002 >>> bInterfaceClass = 0x0007 >>> bInterfaceSubClass = 0x0001 >>> bInterfaceProtocol = 0x0002 >>> iInterface = 0x0000 >>> >>> Endpoint 0 >>> bLength = 0x0007 >>> bDescriptorType = 0x0005 >>> bEndpointAddress = 0x0003 >>> bmAttributes = 0x0002 >>> wMaxPacketSize = 0x0040 >>> bInterval = 0x0000 >>> bRefresh = 0x0000 >>> bSynchAddress = 0x0000 >>> >>> Endpoint 1 >>> bLength = 0x0007 >>> bDescriptorType = 0x0005 >>> bEndpointAddress = 0x0081 >>> bmAttributes = 0x0002 >>> wMaxPacketSize = 0x0040 >>> bInterval = 0x0000 >>> bRefresh = 0x0000 >>> bSynchAddress = 0x0000 >>> #* >>> >>> Userland software, such as sane-find-scanner, is currently sure >>> this is >>> is just a printer. I would like this device to introduce itself >>> for what >>> it is ... a printer + a color scanner. >>> Is it feasible? Are there any well-established techniques to (try to) >>> reach the goal? >>> >>> Thanks for any link/suggestion >>> >> >> Hi, >> >> Maybe you have to switch some button on the printer. Only one >> driver can use a >> set of IN and OUT endpoints at a time in an interface. Maybe the >> original >> driver has a multiplexer on top? >> >> --HPS >> >> > Thanks Hans Petter, > > the device has no physical switch anywhere. > Probably multiplexing is involved. It's worth to note then, if I > understand it correctly, that this device does not follow this > recommendation I read somewhere: > > "Important: Do not implement multiplexing over a single USB channel. > Software multiplexing is fragile, and the native capabilities of USB > should be used for communicating with multiple functions." Well they are not multiplexing on a single endpoint, and are using separate endpoints to do this but they are doing it at the wrong level in order to keep the entire device under the control of a single (their) driver rather than have to risk having a separate driver usurp part of it. > > d > _______________________________________________ > freebsd-usb@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-usb > To unsubscribe, send any mail to "freebsd-usb-unsubscribe@freebsd.org" >