Date: Sun, 03 Oct 2010 15:35:21 -0700 From: Julian Elischer <julian@freebsd.org> To: dan <glimp@live.com> Cc: freebsd-usb@freebsd.org Subject: Re: ...but this USB device is more than a printer! Message-ID: <4CA90529.6080301@freebsd.org> In-Reply-To: <BLU0-SMTP103A3A540FC05372CCBB08BDC6B0@phx.gbl> References: <BLU0-SMTP11017EECAE4E191CB096840DC6A0@phx.gbl> <201010031019.20329.hselasky@c2i.net> <BLU0-SMTP103A3A540FC05372CCBB08BDC6B0@phx.gbl>
next in thread | previous in thread | raw e-mail | index | archive | help
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. > > 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" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4CA90529.6080301>