Re: ...but this USB device is more than a printer!

2010-10-05 Thread dan

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: at usbus0, cfg=0 md=HOST
spd=FULL (12Mbps) pwr=ON

bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0110
bDeviceClass = 0x
bDeviceSubClass = 0x
bDeviceProtocol = 0x
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 = 0x
bmAttributes = 0x00c0
bMaxPower = 0x

Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x
bAlternateSetting = 0x
bNumEndpoints = 0x0002
bInterfaceClass = 0x0007
bInterfaceSubClass = 0x0001
bInterfaceProtocol = 0x0002
iInterface = 0x

Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0003
bmAttributes = 0x0002
wMaxPacketSize = 0x0040
bInterval = 0x
bRefresh = 0x
bSynchAddress = 0x

Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081
bmAttributes = 0x0002
wMaxPacketSize = 0x0040
bInterval = 0x
bRefresh = 0x
bSynchAddress = 0x
#*

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.

___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"


Re: ...but this USB device is more than a printer!

2010-10-03 Thread Julian Elischer

 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 = 0x
bDeviceSubClass = 0x
bDeviceProtocol = 0x
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 = 0x
  bmAttributes = 0x00c0
  bMaxPower = 0x

  Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x
bAlternateSetting = 0x
bNumEndpoints = 0x0002
bInterfaceClass = 0x0007
bInterfaceSubClass = 0x0001
bInterfaceProtocol = 0x0002
iInterface = 0x

   Endpoint 0
  bLength = 0x0007
  bDescriptorType = 0x0005
  bEndpointAddress = 0x0003
  bmAttributes = 0x0002
  wMaxPacketSize = 0x0040
  bInterval = 0x
  bRefresh = 0x
  bSynchAddress = 0x

   Endpoint 1
  bLength = 0x0007
  bDescriptorType = 0x0005
  bEndpointAddress = 0x0081
  bmAttributes = 0x0002
  wMaxPacketSize = 0x0040
  bInterval = 0x
  bRefresh = 0x
  bSynchAddress = 0x
#*

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-unsubscr...@freebsd.org"



___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"


Re: ...but this USB device is more than a printer!

2010-10-03 Thread Julian Elischer

 On 10/3/10 1:19 AM, 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 = 0x
bDeviceSubClass = 0x
bDeviceProtocol = 0x
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 = 0x
  bmAttributes = 0x00c0
  bMaxPower = 0x

  Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x
bAlternateSetting = 0x
bNumEndpoints = 0x0002
bInterfaceClass = 0x0007
bInterfaceSubClass = 0x0001
bInterfaceProtocol = 0x0002
iInterface = 0x

   Endpoint 0
  bLength = 0x0007
  bDescriptorType = 0x0005
  bEndpointAddress = 0x0003
  bmAttributes = 0x0002
  wMaxPacketSize = 0x0040
  bInterval = 0x
  bRefresh = 0x
  bSynchAddress = 0x

   Endpoint 1
  bLength = 0x0007
  bDescriptorType = 0x0005
  bEndpointAddress = 0x0081
  bmAttributes = 0x0002
  wMaxPacketSize = 0x0040
  bInterval = 0x
  bRefresh = 0x
  bSynchAddress = 0x
#*

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?

I've seen quite a bit of this sort of thing.
usually there are separate interface descriptors (can we handle that?) 
but I've also seen examples of this
where there appear to be setups that would normally require a separate 
driver.
maybe there should be a way to split out an endpoint and provide it 
with a virtual separate interface.

(speaking in USB terms)


--HPS
___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"



___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"


Re: ...but this USB device is more than a printer!

2010-10-03 Thread dan

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 = 0x
bDeviceSubClass = 0x
bDeviceProtocol = 0x
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 = 0x
  bmAttributes = 0x00c0
  bMaxPower = 0x

  Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x
bAlternateSetting = 0x
bNumEndpoints = 0x0002
bInterfaceClass = 0x0007
bInterfaceSubClass = 0x0001
bInterfaceProtocol = 0x0002
iInterface = 0x

   Endpoint 0
  bLength = 0x0007
  bDescriptorType = 0x0005
  bEndpointAddress = 0x0003
  bmAttributes = 0x0002
  wMaxPacketSize = 0x0040
  bInterval = 0x
  bRefresh = 0x
  bSynchAddress = 0x

   Endpoint 1
  bLength = 0x0007
  bDescriptorType = 0x0005
  bEndpointAddress = 0x0081
  bmAttributes = 0x0002
  wMaxPacketSize = 0x0040
  bInterval = 0x
  bRefresh = 0x
  bSynchAddress = 0x
#*

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


d
___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"


Re: ...but this USB device is more than a printer!

2010-10-03 Thread Hans Petter Selasky
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 = 0x
>bDeviceSubClass = 0x
>bDeviceProtocol = 0x
>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 = 0x  
>  bmAttributes = 0x00c0
>  bMaxPower = 0x
> 
>  Interface 0
>bLength = 0x0009
>bDescriptorType = 0x0004
>bInterfaceNumber = 0x
>bAlternateSetting = 0x
>bNumEndpoints = 0x0002
>bInterfaceClass = 0x0007
>bInterfaceSubClass = 0x0001
>bInterfaceProtocol = 0x0002
>iInterface = 0x  
> 
>   Endpoint 0
>  bLength = 0x0007
>  bDescriptorType = 0x0005
>  bEndpointAddress = 0x0003  
>  bmAttributes = 0x0002  
>  wMaxPacketSize = 0x0040
>  bInterval = 0x
>  bRefresh = 0x
>  bSynchAddress = 0x
> 
>   Endpoint 1
>  bLength = 0x0007
>  bDescriptorType = 0x0005
>  bEndpointAddress = 0x0081  
>  bmAttributes = 0x0002  
>  wMaxPacketSize = 0x0040
>  bInterval = 0x
>  bRefresh = 0x
>  bSynchAddress = 0x
> #*
> 
> 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
___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"


...but this USB device is more than a printer!

2010-10-02 Thread dan

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 = 0x
  bDeviceSubClass = 0x
  bDeviceProtocol = 0x
  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 = 0x  
bmAttributes = 0x00c0
bMaxPower = 0x

Interface 0
  bLength = 0x0009
  bDescriptorType = 0x0004
  bInterfaceNumber = 0x
  bAlternateSetting = 0x
  bNumEndpoints = 0x0002
  bInterfaceClass = 0x0007
  bInterfaceSubClass = 0x0001
  bInterfaceProtocol = 0x0002
  iInterface = 0x  

 Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0003  
bmAttributes = 0x0002  
wMaxPacketSize = 0x0040
bInterval = 0x
bRefresh = 0x
bSynchAddress = 0x

 Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081  
bmAttributes = 0x0002  
wMaxPacketSize = 0x0040
bInterval = 0x
bRefresh = 0x
bSynchAddress = 0x
#*

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

d
___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"