udev[17514]: run_program: exec of program failed with USB Epson printer
I get the following when I plug an Epson C45 USB Printer in to my Mandriva 2007 x86_64 box. Anybody know what's wrong/missing ? udev the problem ? Thanks. Rod.
May 17 17:53:15 c211-30-249-226 kernel: usb 1-4: new device strings: Mfr=1, Product=2, SerialNumber=3 May 17 17:53:15 c211-30-249-226 kernel: usb 1-4: Product: USB Printer May 17 17:53:15 c211-30-249-226 kernel: usb 1-4: Manufacturer: EPSON May 17 17:53:15 c211-30-249-226 kernel: usb 1-4: SerialNumber: L30030406130750090 May 17 17:53:15 c211-30-249-226 kernel: usb 1-4: uevent May 17 17:53:15 c211-30-249-226 kernel: usb 1-4: configuration #1 chosen from 1 choice May 17 17:53:15 c211-30-249-226 kernel: usb 1-4: adding 1-4:1.0 (config #1, interface 0) May 17 17:53:15 c211-30-249-226 kernel: usb 1-4:1.0: uevent May 17 17:53:15 c211-30-249-226 kernel: usblp 1-4:1.0: usb_probe_interface May 17 17:53:15 c211-30-249-226 kernel: usblp 1-4:1.0: usb_probe_interface - got id May 17 17:53:15 c211-30-249-226 kernel: drivers/usb/core/file.c: looking for a minor, starting at 0 May 17 17:53:15 c211-30-249-226 kernel: drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 6 if 0 alt 0 proto 2 vid 0x04B8 pid 0x0005 May 17 17:53:15 c211-30-249-226 kernel: drivers/usb/core/inode.c: creating file '006' May 17 17:53:15 c211-30-249-226 kernel: hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0010 May 17 17:53:15 c211-30-249-226 udev[17394]: run_program: exec of program failed May 17 17:53:29 c211-30-249-226 hal.hotplug[17513]: timout(10000 ms) waiting for /devices/pci0000:00/0000:00:0b.0/usb1/1-4/1-4:1.0/lp0 May 17 17:53:29 c211-30-249-226 udev[17514]: run_program: exec of program failed |
I'm not familiar with that, but I would perform a case insensitive grep search on your udev rules for "program". I found not too many entries here on my box (doing a "grep -i program /etc/udev/rules.d/*", you might have to adjust the path to your distribution).
If the Mandriva udev rules are similar you could do this search and look if the called programs at least exist. Some rules you will see are anyway not important here because they are about other devices, for example SCSI devices, so I guess there will stay only some applications you could hunt for :) I don't know if it's possible to make udev use more verbose output, this would be worth reading for. EDIT: "man udevd" reveals that udevcontrol should probably be the one to increase verbosity of log files. |
Thanks for taking the trouble to respond... but I don't understand anything about this udev thing.. what does it do ? Is it the problem, is it broken, do I have to tell it about my printer ?
On my previous Linux box (Mandrake 10 i586) everything just worked, I just added the EPSON printer using the KDE control panel. Now my Mandriva 2007 x86_64 box barfs with the printer. |
I had a problem with a usb camera after moving to udev based system. Turned out that the camera was being identified correctly etc but would not work. Added the user to the plugdev group and it started working.
|
Quote:
It can be told to do some special/additional tasks like creating consistent device nodes (for example no matter what sdX name your usb pen drive is assigned, you can make udev always create /dev/my-pen-drive) or running a program. I am definitely not an expert about this :( From the output you posted I got the impression the two errors about "run_program" might be fatal so that your printer does not get the right device name. I guess this is your problem, because besides that your printer seems only to need ghostscript to work (http://www.openprinting.org/show_pri...cnum=Epson-C45). |
Does udev require HAL ? Because my HAL will not run because my dbus appears broken. I believe I should be able to manually & explicitly define it to cups, bypassing all the udev/hal/dbus stuff despite that.
My printer is recognised by USB :- T: Bus=01 Lev=01 Prnt=01 Port=04 Cnt=01 Dev#= 7 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=04b8 ProdID=0005 Rev= 1.00 S: Manufacturer=EPSON S: Product=USB Printer S: SerialNumber=L30030406130750090 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms My question : how do I translate that bus/port/device number into a form that CUPS can use ? It apparently wants the printer in a URI form such as usb:/dev/usb/lp0 I tried to manually create a node :- mknod /dev/usb/lp0 c 180 0 and defined this to cups as :- /usr/sbin/lpadmin -p c45dev -v usb:/dev/usb/lp0 but anything that goes into the print queue never prints. So - I have the printer address on the USB bus, how do I manually identify it to cups ? I also have sysfs which identifies the printer:- /sys/class/usb/lp0/device/ thanks Rod |
I managed to get the printer connected with
mknod /dev/usb/lp0 c 180 0 I can now use the inkjet utility to check the ink level and clean the print head, but only if I use the option to "use direct connection". Any printing or printer utility I attempt via CUPS just sits in the CUPS print queue forever. CUPS is running and configured "out of the box". So.. any suggestions as to to how I can debug CUPS, why doesn't it send the print queue to the printer ? I have set the message level to debug and I get the following in the cups log :- D [09/Jun/2007:12:47:12 +1000] cupsdReadClient: 11 POST /printers/ HTTP/1.1 E [09/Jun/2007:12:47:12 +1000] cupsdAuthorize: Local authentication certificate not found! D [09/Jun/2007:12:47:12 +1000] CUPS-Get-Default D [09/Jun/2007:12:47:12 +1000] CUPS-Get-Default client-error-not-found: No default printer D [09/Jun/2007:12:47:12 +1000] cupsdProcessIPPRequest: 11 status_code=406 (client-error-not-found) D [09/Jun/2007:12:47:12 +1000] cupsdAcceptClient: 12 from localhost:631 (IPv4) D [09/Jun/2007:12:47:12 +1000] cupsdCloseClient: 11 D [09/Jun/2007:12:47:12 +1000] cupsdReadClient: 12 POST /printers/ HTTP/1.1 E [09/Jun/2007:12:47:12 +1000] cupsdAuthorize: Local authentication certificate not found! D [09/Jun/2007:12:47:12 +1000] Get-Printer-Attributes ipp://localhost:631/printers/c45 D [09/Jun/2007:12:47:12 +1000] cupsdProcessIPPRequest: 12 status_code=0 (successful-ok) D [09/Jun/2007:12:47:12 +1000] cupsdReadClient: 8 POST / HTTP/1.1 D [09/Jun/2007:12:47:12 +1000] cupsdAuthorize: No authentication data provided. D [09/Jun/2007:12:47:12 +1000] Get-Printer-Attributes ipp://localhost/printers/c45 D [09/Jun/2007:12:47:12 +1000] cupsdProcessIPPRequest: 8 status_code=0 (successful-ok) D [09/Jun/2007:12:47:12 +1000] cupsdCloseClient: 12 D [09/Jun/2007:12:47:12 +1000] cupsdReadClient: 8 GET /printers/c45.ppd HTTP/1.1 D [09/Jun/2007:12:47:12 +1000] cupsdAuthorize: No authentication data provided. D [09/Jun/2007:12:47:12 +1000] write_file: 8 file=11 D [09/Jun/2007:12:47:12 +1000] cupsdAcceptClient: 11 from localhost:631 (IPv4) D [09/Jun/2007:12:47:12 +1000] cupsdReadClient: 11 POST / HTTP/1.1 E [09/Jun/2007:12:47:12 +1000] cupsdAuthorize: Local authentication certificate not found! D [09/Jun/2007:12:47:12 +1000] Get-Jobs ipp://localhost:631/printers/c45 D [09/Jun/2007:12:47:12 +1000] cupsdProcessIPPRequest: 11 status_code=0 (successful-ok) D [09/Jun/2007:12:47:12 +1000] cupsdCloseClient: 11 ??? thanks Rod |
I think I can now report a solution to this problem.
I found other people who had the same problem with CUPS and USB printers. Turns out the fix is to define the printer as file:/dev/lp0 (or file:/dev/usb/lp0 or whatever) instead of usb:/dev/lp0 in the cups printer config file (/etc/cups/printers.conf). With this fix cups recognises the printer, without it it doesn't. Dunno whether this is a bug in CUPS or what. I don't use udev or hal if I can avoid it, and it doesn't seem necessary as my hardware never changes and hence I can use explicit definitions. |
Nice to read that you got it working :)
|
Not quite !
I have a 64-bit box, with a few 32-bit programs like firefox, because they need plugins like java and flash player, and also Open Office which won't compile as 64-bit. I find that the 32-bit apps won't find the printer whereas all the 64-bit apps find it and print OK. Example - I have compiled evolution as both 32 and 64 bit. The 64-bit version prints OK, the 32-bit version can't find the printer. So... I'm still stumped because I'm a student and use Open Office a lot. How do apps detect the printer ? thanks for reading so far Rod |
I'm sorry I can't help with the 32bit/64bit printing, but some weeks ago someone else here on linuxquestions.org (piete) pointed me to a place where you can get 64bit OpenOffice.org packets. I'm a little bit confused though, I thought that Mandriva's 64bit port should offer them itself.
The post: http://www.linuxquestions.org/questi...06#post2756106 The download location: http://ftp.linux.cz/pub/localization...OLD/2.2.0-RC4/ EDIT: fixed the download URL which had changed in the meantime |
All times are GMT -5. The time now is 06:33 PM. |