Re: Can't add a usb Cannon i960 printer



"Enrique Perez-Terron" <enrio@xxxxxxxxx> writes:

>On Tue, 06 Dec 2005 01:05:01 +0100, Scooby <laporte1@xxxxxxxxxxx> wrote:

>> Enrique:
>>
>> Thanks for the reply, I still don't have the printer working.
>> Just a note I rebooted the Centos server and after doing that I noticed
>> that after doing lsusb the Cannon printer was not detected, I actually
>> had to unplug and plug it in again to get it to show up with the lsusb
>> command.
>>
>> Here is the information that you asked for.
>>
>> Also, you commented about
>>
>> hal:///org/freedesktop/Hal/devices/usb_device_43d_69_noserial_if0_printer_noserial
>>
>> Is that like a device entry that I should manually enter the
>> printer.conf file?

>No. When I define a printer queue, I get a list of "devices".
>It turns out that this list of devices look very different depending
>on what tool I use. some of the choices result in such strings as
>I showed above, in the /etc/cups/printers.conf file.

>There is a piece of information I cannot find back to here, because
>I know that at some point I used to see this long string in the user
>interface, not just tucked away in said file; but now when I tried again
>I only saw neat choices like (in my case) "Lexmark All In One".
>That string is actually one of the strings I can get from "lsusb -v"
>If I select it, the printer gets defined with a device string like the
>one above.


>> *******************************************************************************************
>>
>> lsusb
>> _____
>>
>> us 005 Device 001: ID 0000:0000
>> Bus 004 Device 001: ID 0000:0000
>> Bus 003 Device 001: ID 0000:0000
>> Bus 002 Device 001: ID 0000:0000
>> Bus 001 Device 004: ID 04a9:1088 Canon, Inc.
>> Bus 001 Device 001: ID 0000:0000

>You have five "host controllers", but just one usb device connected.
>The device has a vendor id 0x04a9, product id 0x1088. Vendor id is
>translated int the name "Canon, Inc", but the product ID is not known
>in the database on your system. My Lexmark USB printer also identifies
>itself to the USB bus as a class 7 device, i.e., a printer. Your does not.

And mine says
Bus 001 Device 003: ID 03f0:1017 Hewlett-Packard
and it works fine.

lsusb -v -s 001:004
should give lots of info.


>This *may* signify that the device does not respond to any of the
>standardized printer-class usb messages, like out-of-paper condition.
>I say *may* because, of course, I do not know anything specific about
>the printer.

>It is quite possible that the usblp driver does not get loaded because
>the device fails to identify itself as a printer.

>Can I ask you to provide two followups on this? Just to confirm that
>the device really does not have a class attribute as printer.

>1) lsusb -v
>2) cat /proc/bus/usb/devices

>> /etc/cups/printers.conf
>> -----------------------
>>
>> # Printer configuration file for CUPS v2.1.22rc1
>> # Written by cupsd on Mon 05 Dec 2005 06:58:18 AM CST
>> <DefaultPrinter i960>

>You have named the printer queue "i960".

>> Info Created by redhat-config-printer 0.6.x

>I could not create a queue for my printer using printconf (alias
>redhat-config-printer) due to a bug. The bug was triggered, because
>the foomatic printer database had a dummy entry for my printer model,
>and printconf failed to skip it and find a ppd file for it another
>standard place.

>> DeviceURI usb:/dev/usb/lp0

>This should work ok.

>This is where the hal: string can show up, if that kind of device string
>is chosen. The hal: string is passed to a "hal daemon" which examines
>the usb devices, and returns /dev/usb/lp0 in the end.

>> Location Cannon
>> State Idle
>> Accepting Yes
>> JobSheets none none
>> QuotaPeriod 0
>> PageLimit 0
>> KLimit 0
>> </Printer>
>> <Printer cannon>

>OK, a second queue for the same device. No harm I have four.

>> Info Created by redhat-config-printer 0.6.x
>> DeviceURI usb:/dev/usb/lp0
>> Location Cannon i960
>> State Idle
>> Accepting Yes
>> JobSheets none none
>> QuotaPeriod 0
>> PageLimit 0
>> KLimit 0
>> </Printer>
>>
>> /etc/cups/ppd
>> -------------
>> i960.ppd

>Is there no cannon.ppd ? If so, the second device above will
>not be functional.

>(by the way, the company writes its name with a single 'n': Canon.)

>>
>>
>> grep command
>> ------------
>> #grep -i filter /etc/cups/ppd/*
>> *% "foomatic-rip" backend filter script of Foomatic 3.0.0 or newer.
>> This
>> *cupsFilter: "application/vnd.cups-postscript 0 foomatic-rip"

>This looks exactly like mine did when it did not work. I believe this
>is wrong.

>>
>>
>> Echo command
>> ------------
>> # echo -e '%!PS-Adobe 1.0
>>> /Helvetica findfont 20 scalefont setfont
>>> 100 100 moveto (Hello) show showpage' | gs -sDEVICE=pcl3 -sOutputFile=/dev/usb/lp0
>> GNU Ghostscript 7.07 (2003-05-17)
>> Copyright (C) 2003 artofcode LLC, Benicia, CA. All rights reserved.
>> This software comes with NO WARRANTY: see the file PUBLIC for details.
>> Loading NimbusRomNo9L-Regu font from
>> /usr/share/fonts/default/Type1/n021003l.pfb... 2510916 1139836 1642520
>> 351150 0 done.
>> Using NimbusRomanNo9L-Regu font for NimbusRomNo9L-Regu.
>> Loading NimbusSanL-Regu font from
>> /usr/share/fonts/default/Type1/n019003l.pfb... 2885876 1484474 1682712
>> 365686 0 done.
>> Using NimbusSansL-Regu font for NimbusSanL-Regu.
>> GS>GS>GS>>>showpage, press <return> to continue<<

>This one is useless, and it's my fault. I guess you have seen my additional
>message.

>What it does is to invoke ghostscript to translate a simple "hello" page
>to pcl, hewlet packard's printer langauge.

>It could be interesting to repeat it, but instead of "-sDEVICE=pcl3",
>try some of the older bubble-jet devices. I believe

> bj10e bj10v bj10vh bj200 bjc600 bjc800 bjc880j bjccmyk
> bjccolor bjcgray bjcmono
> cdeskjet cdj1600 cdj500 cdj550 cdj670 cdj850 cdj880 cdj890

>are all variations of Canon printer langauges.

>But, it is hardly interesting to repeat it unless the usblp kernel driver
>has been loaded.

>The current philosophy is that the /dev directory starts empty on each reboot,
>and then the kernel discovers its devcies as it enumerates and probes buses.
>When something is discovered, the kernel stars a small program, /sbin/usdevsend
>or /sbin/hotplug, to load the appropriate kernel modules and create the
>appropriate device nodes in /dev.

>It is possible that you can force the loading of usblp by simply
>issuing the command "modprobe usblp", but how shall the driver know
>that "Bus 001 Device 004: ID 04a9:1088 Canon, Inc." is your lp0 device?

>> Cups version
>> ------------
>> # rpm -qa | grep cups
>> libgnomecups-0.1.12-5
>> hal-cups-utils-0.5.2-8
>> cups-libs-1.1.22-0.rc1.9.8
>> cups-1.1.22-0.rc1.9.8

>cups-1.1.23-15.1.i386.rpm
>cups-devel-1.1.23-15.1.i386.rpm
>cups-libs-1.1.23-15.1.i386.rpm
>cupsddk-1.0.1-0.i386.rpm
>hal-cups-utils-0.5.3-3.i386.rpm
>libgnomecups-0.2.0-2.i386.rpm

>but I have Fedora Core 4.

>You write that you had the Canon working find with RH7.
>But then the printer must somehow have identified itself as a printer.
>There is no defined printer in the Foomatic printer database
>with "canon" and "96" in the name. I have seen that printers are sometimes
>removed from the database. Perhaps they are getting new and better names,
>I don't know. But it would be nice to know which of ghostscript's
>"devices" works with the printer, that is a key to provide a driver.

>-Enrique
.