Long story short: I have a computer without a parallel port, and a
printer that requires one.  My computer has USB, so I bought a
USB->Parallel converter (a Belkin F5U002 Revision 2 wire).  After many
many hours of googling around and looking at everything I could find, I
am still having trouble.

I can do "cat /proc/cpuinfo > /dev/usblp0", and it will hang forever ---
or until I take the printer off-line and then put the printer back
on-line; additionally, it loses the first byte of the print job no
matter how it is submitted (including redirected directly to the printer
using the "cat" command above).  This is a standard, ASCII handling,
dot-matrix printer that is Epson compatible.

It worked perfectly with my previous computer, which had a parallel
port, so I know that this isn't an issue with the printer itself.

I have tried using the usblp driver (which the kernel tries to use by
default), which was a no go.  I then attempted to modify the usblp
driver by adding the following to the quirk_printers[] structure array,
to force the kernel to use unidirectional mode:

  { 0x050d, 0x0002, USBLP_QUIRK_BIDIR }, /* Belkin F5U002 */

The only result that had was to show this up repeatedly in the kernel's
ring buffer output by dmesg:

  drivers/usb/class/usblp.c: usblp0: error -115 writing to printer

... about once every 10 seconds.

So, my travels then led me to try using the uss720 driver to talk to the
printer.  However, this failed horribly; it wouldn't even talk.  Even
worse, I had to restart my system to get the thing back out of memory,
because once it was there, it wouldn't leave.  It left behind lots of
errors, too (I am only showing one of each; but there were 6,435 lines
of this stuff, cut down to 5 lines by sort and uniq):

  drivers/usb/misc/uss720.c: async_complete: urb error -104
  drivers/usb/misc/uss720.c: async_complete: urb error -32
  drivers/usb/misc/uss720.c: async_complete: urb error -62
  drivers/usb/misc/uss720.c: get_1284_register timeout
  drivers/usb/misc/uss720.c: get_1284_register: usb error -32

I am lost as to how to make this work.  The only thing that I can guess
is that the IEEE1284 controller inside of this thing is expecting some
different treatment than what it is getting from usblp or uss720.  What
it expects, I don't know.

So, I have a couple groups of questions:

  (1) Has anyone seen this problem, and maybe knows how to work around
      it?  If not, can I somehow provide the necessary information that
      would be necessary to fix this?  I would be happy to test
      anything with potential to get this going.
  (2) I (attempted to) read through usblp.c and friends and compare them
      with other systems that claim to drive this piece of hardware.
      However, that really got me nowhere.  For example, FreeBSD claims
      to support this controller/wire, but it doesn't even boot on my
      system, so I could not verify this.  (The kernel panics, so I
      don't even get the chance to try.)  If I can try to test this
      piece of hardware under a different operating system and it works,
      would that maybe provide enough information to get it going
      (again, it looks like) under Linux?

I hope that I have provided enough information; if not please feel free
to ask.  I have also included the relevant section of the output of
lsusb -vvv below the signature block.

        Thanks in advance,
        Mike

-- 
Michael B. Trausch               Internet Mail & Jabber: [EMAIL PROTECTED]
Phone:  (404) 592-5746 x1                         http://www.trausch.us/
Mobile: (678) 522-7934             VoIP: [EMAIL PROTECTED], [EMAIL PROTECTED]
Pidgin 2.1.1 and plugins for Ubuntu Feisty! http://www.trausch.us/pidgin

---- begin snipped output of sudo lsusb -vvv
Bus 002 Device 002: ID 050d:0002 Belkin Components
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x050d Belkin Components
  idProduct          0x0002
  bcdDevice            2.02
  iManufacturer           1 Belk USB Printing Support
  iProduct                2 IEEE-1284 Controller
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           78
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         7 Printer
      bInterfaceSubClass      1 Printer
      bInterfaceProtocol      1 Unidirectional
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass         7 Printer
      bInterfaceSubClass      1 Printer
      bInterfaceProtocol      2 Bidirectional
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       2
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol    255
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               1
Device Status:     0x0000
  (Bus Powered)
---- end snipped output of sudo lsusb -vvv

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to