usb printer rejects incoming data [SOLVED]

Alex Troussov erleya at gmail.com
Tue Nov 17 17:23:13 UTC 2009


On Tue, Nov 17, 2009 at 09:16:03AM +0100, Hans Petter Selasky wrote:
> > Recently I upgraded to the latest RELENG_8 and rebuilt world.
> > Now I'm having strange problems with my USB printer (Samsung CLP 315).
> > Digging into it these last days, I found that it seems to refuse
> > incoming data via USB port.
> >
> > >sudo cat tiger.qpdl > /dev/usb/4.3.0
> >
> > cat: stdout: Input/output error
> >
> > I'm sure this file tiger.qpdl contains the data needed, I created it
> > from /usr/local/share/ghostscript/8.64/examples/tiger.eps using gs +
> > foo2qpdl and tested on another PC.
> 
> .0 is the control endpoint. You won't get any data through there :-)
> 
> See:
> 
> usbconfig -u 4 -a 3 dump_curr_config_desc
> 
> for the correct OUT endpoint.

OK, here is what it gives:

>sudo usbconfig -u 4 -a 3 dump_curr_config_desc
ugen4.3: <CLP-310 Series Samsung Electronics Co., Ltd.> at usbus4, cfg=0
md=HOST spd=HIGH (480Mbps) pwr=ON

 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0020 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x00c0 
    bMaxPower = 0x0001 

    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 = 0x0002 
        bmAttributes = 0x0002 
        wMaxPacketSize = 0x0200 
        bInterval = 0x000a 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081 
        bmAttributes = 0x0002 
        wMaxPacketSize = 0x0200 
        bInterval = 0x000a 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000

I don't know where to look for the right endpoint here...

But I tried every endpoint - /dev/usb/4.3.0, /dev/usb/4.3.1 and
/dev/usb/4.3.2 - and the last one worked.
So, the problem is solved for me.

Just for my curiosity, where can I read more about USB endpoints?

WBR, Alex


More information about the freebsd-usb mailing list