Troubleshooting USB printer detection
Xavier de Labouret
zezaz at chez.com
Sun Jun 15 01:47:31 PDT 2003
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!
More information about the freebsd-questions
mailing list