Date: Tue, 5 Oct 2010 16:58:16 +0200 From: dan <glimp@live.com> To: freebsd-usb@freebsd.org Subject: Re: ...but this USB device is more than a printer! Message-ID: <BLU0-SMTP2009FBCDA416883FC54F1BDDC6D0@phx.gbl> In-Reply-To: <4CA90529.6080301@freebsd.org> References: <BLU0-SMTP11017EECAE4E191CB096840DC6A0@phx.gbl> <201010031019.20329.hselasky@c2i.net> <BLU0-SMTP103A3A540FC05372CCBB08BDC6B0@phx.gbl> <4CA90529.6080301@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 10/04/10 00:35, Julian Elischer wrote: > 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:<Samsung SCX-4100 Series Samsung> 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<Samsung> >>>> iProduct = 0x0002<Samsung SCX-4100 Series> >>>> iSerialNumber = 0x0003<8J21BAKYB28091W.> >>>> bNumConfigurations = 0x0001 >>>> #* >>>> >>>> and here's the output from "usbconfig dump_curr_config_desc" >>>> >>>> #* >>>> ugen0.3:<Samsung SCX-4100 Series Samsung> 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<no string> >>>> bmAttributes = 0x00c0 >>>> bMaxPower = 0x0000 >>>> >>>> Interface 0 >>>> bLength = 0x0009 >>>> bDescriptorType = 0x0004 >>>> bInterfaceNumber = 0x0000 >>>> bAlternateSetting = 0x0000 >>>> bNumEndpoints = 0x0002 >>>> bInterfaceClass = 0x0007 >>>> bInterfaceSubClass = 0x0001 >>>> bInterfaceProtocol = 0x0002 >>>> iInterface = 0x0000<no string> >>>> >>>> Endpoint 0 >>>> bLength = 0x0007 >>>> bDescriptorType = 0x0005 >>>> bEndpointAddress = 0x0003<OUT> >>>> bmAttributes = 0x0002<BULK> >>>> wMaxPacketSize = 0x0040 >>>> bInterval = 0x0000 >>>> bRefresh = 0x0000 >>>> bSynchAddress = 0x0000 >>>> >>>> Endpoint 1 >>>> bLength = 0x0007 >>>> bDescriptorType = 0x0005 >>>> bEndpointAddress = 0x0081<IN> >>>> bmAttributes = 0x0002<BULK> >>>> 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. Thank you for the feedback. Later I inspected pieces of code in SANE and, as I don't have pure printers, I let it grab this device as a candidate for scanning. As any expert would expect (I suppose), I got an I/O error when a SANE backend (xerox_mfp*), using libusb, tried to start scanning. d * it is reported to work with Samsung SCX-4200, that seems not to differ from SCX-4100 at least for printing.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BLU0-SMTP2009FBCDA416883FC54F1BDDC6D0>