LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - General (https://www.linuxquestions.org/questions/linux-general-1/)
-   -   udev[17514]: run_program: exec of program failed with USB Epson printer (https://www.linuxquestions.org/questions/linux-general-1/udev%5B17514%5D-run_program-exec-of-program-failed-with-usb-epson-printer-554572/)

Rod Butcher 05-17-2007 04:14 AM

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

titopoquito 05-26-2007 06:39 AM

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.

Rod Butcher 06-05-2007 12:27 AM

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.

TigerOC 06-05-2007 10:09 AM

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.

titopoquito 06-07-2007 03:42 AM

Quote:

Originally Posted by Rod Butcher
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 ?

udev is used with 2.6 kernels to create device nodes for any hardware your system has (or at least any compatible). Without udev you would not have any device node for your harddisk, your mouse, your keyboard ... :)
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).

Rod Butcher 06-07-2007 09:16 PM

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

Rod Butcher 06-08-2007 09:48 PM

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

Rod Butcher 06-09-2007 06:35 AM

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.

titopoquito 06-09-2007 09:37 AM

Nice to read that you got it working :)

Rod Butcher 06-10-2007 09:18 AM

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

titopoquito 06-10-2007 09:35 AM

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.