Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Jun 2003 10:46:57 +0200
From:      Xavier de Labouret <zezaz@chez.com>
To:        freebsd-questions@freebsd.org
Subject:   Troubleshooting USB printer detection
Message-ID:  <3EEC3281.2030609@chez.com>

next in thread | raw e-mail | index | archive | help

Hello,

My USB printer, an HP Photosmart P1115, is desperately seen by FreeBSD 
as a ugen device, i can't get it to be seen as an ulpt device. Any help 
would be much appreciated, i have been trying various tricks without 
success. And my wife will only shift from Linux if she can print on 
FreeBSD, which is a good motivation :).

My kernel is stock 4.8-STABLE, it has in particular the following 
options for USB:

  # USB support
  options         USB_DEBUG              
  device          uhci            # UHCI PCI->USB interface
  device          ohci            # OHCI PCI->USB interface
  device          usb             # USB Bus (required)
  device          ugen            # Generic
  device          uhid            # "Human Interface Devices"
  device          ukbd            # Keyboard
  device          ulpt            # Printer

Here are my USB devices, my printer is seen....

  drakkar# usbdevs
  addr 1: UHCI root hub, VIA
   addr 2: Standard USB Hub, Atmel
    addr 3: product 0x08b0, Logitech
    addr 4: photosmart 1115, hp             # Yes!

... but unfortunately as as ugen:

  drakkar# dmesg | grep ugen
  ugen0: Logitech product 0x08b0, rev 1.10/0.00, addr 3
  ugen1: hp photosmart 1115, rev 1.10/1.00, addr 4        # Sigh

I went further, and installed udesc_dump:
 
  drakkar# udesc_dump /dev/ugen1
  Standard Device Descriptor:
    bLength            18
    bDescriptorType    01
    bcdUSB             0110
    bDeviceClass       00
    bDeviceSubClass    00
    bDeviceProtocol    00
    bMaxPacketSize     8
    idVendor           03f0
    idProduct          3402
    bcdDevice          0100
    iManufacturer      1
    iProduct           2
    iSerialNumber      3
    bNumConfigurations 1
 
  Configuration 0:
          Standard Configuration Descriptor:
            bLength             9
            bDescriptorType     02
            wTotalLength        55
            bNumInterface       1
            bConfigurationValue 1
            iConfiguration      0
            bmAttributes        c0 (self-powered)
            bMaxPower           1 (2 mA)
 
          Standard Interface Descriptor:
            bLength            9
            bDescriptorType    04
            bInterfaceNumber   0
            bAlternateSetting  0
            bNumEndpoints      2
            bInterfaceClass    07
            bInterfaceSubClass 01
            bInterfaceProtocol 03
            iInterface         0
 
          Standard Endpoint Descriptor:
            bLength          7
            bDescriptorType  05
            bEndpointAddress 01 (out)
            bmAttributes     02 (Bulk)
            wMaxPacketSize   64
            bInterval        0
 
          Standard Endpoint Descriptor:
            bLength          7
            bDescriptorType  05
            bEndpointAddress 81 (in)
            bmAttributes     02 (Bulk)
            wMaxPacketSize   64
            bInterval        0
 
          Standard Interface Descriptor:
            bLength            9
            bDescriptorType    04
            bInterfaceNumber   0
            bAlternateSetting  1
            bNumEndpoints      2
            bInterfaceClass    07
            bInterfaceSubClass 01
            bInterfaceProtocol 02
            iInterface         0
  
          Standard Endpoint Descriptor:
            bLength          7
            bDescriptorType  05
            bEndpointAddress 01 (out)
            bmAttributes     02 (Bulk)
            wMaxPacketSize   64
            bInterval        0
 
          Standard Endpoint Descriptor:
            bLength          7
            bDescriptorType  05
            bEndpointAddress 81 (in)
            bmAttributes     02 (Bulk)
            wMaxPacketSize   64
            bInterval        0
  
  Codes Representing Languages by the Device:
    bLength          4
    bDescriptorType  03
    wLANGID[0]       0409
 
  String (index 1): hp
 
  String (index 2): photosmart 1115
 
  String (index 3): HU22M1S1HWES


...now i am puzzled, because  for what  i know, the interface 
Class/SubClass/Protocol for my printer should be enough to be matched by 
ulpt.c:

            bInterfaceClass    07
            bInterfaceSubClass 01
            bInterfaceProtocol 03

My kernel is compiled with USB_DEBUG, and the following sysctl flags are 
set on:

  hw.usb.debug=1
  hw.usb.ulpt.debug=1
                                                                               
...but nothing much showed up in /var/log/messages, as i would have 
expected.

Oh, and usbd_enable="YES" is set in my rc.conf.

So i am completely blocked. I found two other users blocked with USB 
printers detection in the mailing lists. Have we all missed something? 
Or have we all stumbled on the same bug in the USB layer?

Thank you in advance for any help,

Xavier de Labouret
PS: if you don't mind, please CC: me to your reply, because i am not a 
freebsd-questions subscriber!





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3EEC3281.2030609>