[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: usb/cups printer problem after etch upgrade



Florian Kulzer wrote:
On Sun, Apr 29, 2007 at 20:32:59 +0100, graham wrote:
Florian Kulzer wrote:

find /dev/ -name usblp0 -exec ls -l {} \;
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I'd still like to see the output of the above command just to be sure.
Oops, sorry thought I'd checked this but I hadn't.
/dev/usblp0 does not exist. There is a /dev/usb/lp0, however. Here are all the usb devices:

snoopy> find /dev/ -name "usb*" -exec ls -l {} \;

[...]

crw-rw---- 1 root lp    180,   0 2005-02-26 06:43 lp0
crw-rw---- 1 root lp    180,   1 2005-02-26 06:43 lp1

[ snip: and so on ]

I think these are all from /dev/.static/dev/. You have to find out which
device node is created for the printer in /dev/ outside of .static.

There is both a /dev/.static/dev/usb/lp0 and a /dev/usb/lp0 (see below - the non-static one is created when I plug in the printer)

Compare a directory listing before and after you plug in the printer if
necessary. You can use something like

find /dev/ | sort > before.txt

< plug in the printer >

find /dev/ | sort > after.txt

diff -u before.txt after.txt

snoopy> diff -u before.txt after.txt
--- before.txt  2007-04-30 00:16:28.000000000 +0100
+++ after.txt   2007-04-30 00:14:39.000000000 +0100
@@ -6,6 +6,7 @@
 /dev/bus/usb
 /dev/bus/usb/001
 /dev/bus/usb/001/001
+/dev/bus/usb/001/110
 /dev/bus/usb/002
 /dev/bus/usb/002/001
 /dev/bus/usb/003
@@ -5774,9 +5775,11 @@
 /dev/.udev/db/class@tty@ttyS2
 /dev/.udev/db/class@tty@ttyS3
 /dev/.udev/db/class@usb_device@usbdev1.1
+/dev/.udev/db/class@usb_device@usbdev1.110
 /dev/.udev/db/class@usb_device@usbdev2.1
 /dev/.udev/db/class@usb_device@usbdev3.1
 /dev/.udev/db/class@usb_device@usbdev3.2
+/dev/.udev/db/class@usb@lp0
 /dev/.udev/db/class@vc@vcs
 /dev/.udev/db/class@vc@vcs1
 /dev/.udev/db/class@vc@vcs2
@@ -5792,6 +5795,9 @@
 /dev/.udev/db/class@vc@vcsa5
 /dev/.udev/db/class@vc@vcsa6
 /dev/.udev/db/devices@pci0000:00@0000:00:03.0@usb1@1-0:1.0@usbdev1.1_ep81
+/dev/.udev/db/devices@pci0000:00@0000:00:03.0@usb1@1-1@1-1:1.0@usbdev1.110_ep03+/dev/.udev/db/devices@pci0000:00@0000:00:03.0@usb1@1-1@1-1:1.0@usbdev1.110_ep82+/dev/.udev/db/devices@pci0000:00@0000:00:03.0@usb1@1-1@usbdev1.110_ep00
 /dev/.udev/db/devices@pci0000:00@0000:00:03.0@usb1@usbdev1.1_ep00
 /dev/.udev/db/devices@pci0000:00@0000:00:03.1@usb2@2-0:1.0@usbdev2.1_ep81
 /dev/.udev/db/devices@pci0000:00@0000:00:03.1@usb2@usbdev2.1_ep00
@@ -5809,6 +5815,10 @@
 /dev/.udev/failed/devices@pnp0@00:05
 /dev/.udev/uevent_seqnum
 /dev/urandom
+/dev/usb
+/dev/usbdev1.110_ep00
+/dev/usbdev1.110_ep03
+/dev/usbdev1.110_ep82
 /dev/usbdev1.1_ep00
 /dev/usbdev1.1_ep81
 /dev/usbdev2.1_ep00
@@ -5818,6 +5828,7 @@
 /dev/usbdev3.2_ep00
 /dev/usbdev3.2_ep02
 /dev/usbdev3.2_ep81
+/dev/usb/lp0
 /dev/vcs
 /dev/vcs1
 /dev/vcs2



I need to see the properties of the newly-created device node (and only
of this one). Make sure it is really /dev/usb/lp0.

snoopy>ls -al /dev/usb/lp0
crw-rw---- 1 root lp 180, 0 2007-04-30 00:34 /dev/usb/lp0

snoopy> udevinfo -a -p $(udevinfo -q path -n /dev/usb/lp0)

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/class/usb/lp0':
    KERNEL=="lp0"
    SUBSYSTEM=="usb"
    DRIVER==""
    ATTR{dev}=="180:0"

looking at parent device '/devices/pci0000:00/0000:00:03.0/usb1/1-1/1-1:1.0':
    KERNELS=="1-1:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usblp"
    ATTRS{modalias}=="usb:v04F9p0016d0100dc00dsc00dp00ic07isc01ip02"
    ATTRS{bInterfaceProtocol}=="02"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bInterfaceClass}=="07"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceNumber}=="00"
ATTRS{ieee1284_id}=="MFG:Brother_CMD:PJL,PCL,PCLXL_MDL:HL-5040 series_CLS:PRINTER_"

  looking at parent device '/devices/pci0000:00/0000:00:03.0/usb1/1-1':
    KERNELS=="1-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{serial}=="L3J497500"
    ATTRS{product}=="HL-5040"
    ATTRS{manufacturer}=="Brother"
    ATTRS{maxchild}=="0"
    ATTRS{version}==" 1.10"
    ATTRS{devnum}=="125"
    ATTRS{speed}=="12"
    ATTRS{bMaxPacketSize0}=="16"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bcdDevice}=="0100"
    ATTRS{idProduct}=="0016"
    ATTRS{idVendor}=="04f9"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{bmAttributes}=="c0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bNumInterfaces}==" 1"

  looking at parent device '/devices/pci0000:00/0000:00:03.0/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{serial}=="0000:00:03.0"
    ATTRS{product}=="OHCI Host Controller"
    ATTRS{manufacturer}=="Linux 2.6.18-4-486 ohci_hcd"
    ATTRS{maxchild}=="3"
    ATTRS{version}==" 1.10"
    ATTRS{devnum}=="1"
    ATTRS{speed}=="12"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bcdDevice}=="0206"
    ATTRS{idProduct}=="0000"
    ATTRS{idVendor}=="0000"
    ATTRS{bMaxPower}=="  0mA"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bNumInterfaces}==" 1"

  looking at parent device '/devices/pci0000:00/0000:00:03.0':
    KERNELS=="0000:00:03.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ohci_hcd"
    ATTRS{broken_parity_status}=="0"
    ATTRS{enable}=="1"

ATTRS{modalias}=="pci:v00001039d00007001sv00001043sd00008087bc0Csc03i10"
    ATTRS{local_cpus}=="1"
    ATTRS{irq}=="177"
    ATTRS{class}=="0x0c0310"
    ATTRS{subsystem_device}=="0x8087"
    ATTRS{subsystem_vendor}=="0x1043"
    ATTRS{device}=="0x7001"
    ATTRS{vendor}=="0x1039"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

[...]

snoopy>/usr/lib/cups/backend/usb
direct usb://Brother/HL-5040%20series "Brother HL-5040 series" "Brother HL-5040 series USB #1" "MFG:Brother;CMD:PJL,PCL,PCLXL;MDL:HL-5040 series;CLS:PRINTER;"
So far, so good. Now let's see how the printer is defined for CUPS. Post
the output of
grep DeviceURI /etc/cups/printers.conf
DeviceURI usb://Brother/HL-5040%20series

Looks identical to the /dev name to me.
Most USB DeviceURIs that I find on the web have "?serial=..." appended
after the <model> string. Maybe the problem is that in your case no
serial number is found by the USB backend of CUPS. (I am speculating
here; I never used CUPS with a USB printer.)
Now he tells me ;-)
Seems a little unlikely though as this setup all worked fine with sarge

You could try:
DeviceURI usb:/dev/...
or
DeviceURI USB #1
I've tried
DeviceURI usb:/dev/lp0

which didn't change anything

What about "usb:/dev/usb/lp0"?

Sorry, of course that was what I meant. I have retried in case I mistyped the actual configuration, not just the email, but still no result


You could also try to find a serial number like this:

udevinfo -a -p $(udevinfo -q path -n /dev/usb/lp0)  | grep -i serial

ATTRS{serial}=="L3J497500"
ATTRS{serial}=="0000:00:03.0"

I have tried setting:

DeviceURI usb://dev/usb/lp0?serial=L3J497500

and

DeviceURI usb://dev/usb/lp0?serial=0000:00:03.0

with no results.


Another thing that might be important is how you handled the cupsys
configuration files during the upgrade. Did you keep your old ones or
did you replace them with the maintainer's new versions?


I kept the original version of cupsd.conf, the only file the installer asked about. When it didn't work I tried using the new cupsd.conf.dpkg-dist, with no more success

Also:

After I changed DeviceURI to /dev/usb/lp0, the cups admin panel immediately showed 'new printer found'. I added this new printer, then looked at the rewritten printers.conf. The line it had added was the same as the original version:
  	
DeviceURI usb://Brother/HL-5040%20series

The name cups auto-assigned to the new printer is Brother_HL-5040_series_USB_1

However, this 'newly discovered' printer also displays 'printer not connected' when attempting to print to it.

Thanks for your extreme patience!

Graham



Reply to: