I'm trying to get an Epson Stylus CX8400 working under CUPS on FreeBSD 7.0-RELEASE.
I have previously configured HP Deskjet 560C and a Brother HL-6050DN.
The gutenprint User's Manual states there are backends for Canon and Epson. I cannot find the Epson backend and have filed a problem report with freebsd-ports. I asked on -ports and -questions, but it's been over a week and no helpful responses.
Does anyone have a Canon or Epson working under CUPS on FreeBSD?
Do you have a backend in /usr/local/libexec/cups/backend?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The user's manual is out of date -- you don't need the Canon or Epson back ends, and we don't distribute them any more. You should be able to use the standard USB back end.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have asked for about two weeks now, for info at the FreeBSD mailing lists, -ports and -questions. No one seems to know anything about CUPS, gutenprint and Epsons. I had an HP Deskjet 560C and had wrestled with CUPS for a LONG time and I got it to work fairly well. I bought a Brother monolaser and it worked out great because it's a Postscript printer and Brother supplied a .ppd.
I've been using CUPS for several years and I know how to configure printers from the web interface, etc.
I set the LogLevel to debug and I was expecting to find an error msg regarding a broken pipe due to a missing filter or backend.
I couldn't find any errors in /var/log/cups/error_log.
As far as CUPS is concerned, it printed the file.
I have been trying to print two things.
1. CUPS has a button to print a test page. As you know, their test page includes graphics.
2. A simple text file from Kate.
The printer mostly just feeds sheet after sheet, occasionally printing some garbage.
I appear to be missing some magic 8o)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have been using cups and gutenprint to print on an Epson Stylus Photo 1200 under NetBSD, mostly with success. To debug this, there is at least one thing to check for, and then the next step is to separate the various pieces. The USB backend in cups now reads from the ulpt(4) device, and can block if that blocks. The USB lpt drive in *BSD used to not support reading, and then did, but doesn't support FIONBIO. Cups would call read with 1024 bytes or somethihng and the driver would loop waiting for them to come in. I fixed up the driver in NetBSD-current to deal with reading better, and now can print with cups.
To debug, use gutenprint with print-to-file, and get an output file. Without cups running, cat this onto the printer. Make sure escputil -n runs first, or disable cups and boot clean after powering everything off. I am trying to get a Stylus PHoto 1270 to work, and it works this way, but I am still having some issues with cups.
So, it's very likely that your problem is not gutenprint, but cups/usb-driver.
If you're up to reading and fixing kernel code, I can point you to my ulpt changes, or just look in NetBSD CVS at src/sys/dev/usb/ulpt.c and make sure you have at least rev 1.79.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I forgot to add that I also tried the escputil -sr /dev/ulpt0 to get status and it says the device is busy. I've tried this many times and have never gotten status.
Someone suggested that I take the umass driver out of my kernel and then try to configure the printer and then hand-load the umass driver so I could use floppies, thumb drives, etc.
It made no diff.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Here's my info from dmesg:
dmesg|grep lpt
ulpt0: <EPSON USB2.0 MFP(Hi-Speed), class 0/0, rev 2.00/1.00, addr 2> on uhub4
ulpt0: using bi-directional mode
usbdevs -vd
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
uhub0
port 1 powered
port 2 powered
Controller /dev/usb1:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
uhub1
port 1 powered
port 2 powered
Controller /dev/usb2:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
uhub2
port 1 powered
port 2 powered
Controller /dev/usb3:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
uhub3
port 1 addr 2: low speed, power 98 mA, config 1, USB Receiver(0xc518), Logitech(0x046d), rev 42.02
ums0
port 2 powered
Controller /dev/usb4:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), Intel(0x0000), rev 1.00
uhub4
port 1 powered
port 2 powered
port 3 addr 2: high speed, self powered, config 1, USB2.0 MFP(Hi-Speed)(0x0839), EPSON(0x04b8), rev 1.00
ulpt0
port 4 powered
port 5 powered
port 6 powered
port 7 powered
port 8 powered
Previously I had a umass driver built into the kernel and someone on FreeBSD lists suggested I remove it from the kernel and load it manually later.
I built a new kernel without the umass driver, but it didn't help the printer anomaly.
escputil -sr /dev/ulpt0
Escputil version 5.1.7, Copyright (C) 2000-2006 Robert Krawitz
Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'
This is free software, and you are welcome to redistribute it
under certain conditions; type 'escputil -l' for details.
Cannot open /dev/ulpt0 read/write: Device busy
Hey, this worked:
escputil -qudr /dev/ulpt0
Epson Stylus CX8400
This returned no status:
escputil -qusr /dev/ulpt0
WOW, I just got a nozzle pattern printed
escputil -qun
I tried printing from Kate again. No joy.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Your results are consistent with the problem reading from ulpt(4). I expect that if you turn off your spooling systems and print to a file (perhaps with the gutenprint gimp plugin), and use cat, that you will get reasonable output. If so, I think as a next step there are two reasonable choices. One is to merge my driver changes from NetBSD. The other is to modify the cups source for the usb backend to make it never try to read form the printer.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Can it be that the existing ULPT does not support non-blocking reads and writes ?
I have an USB patchset which you can try if you want, where ULPT supports non-blocking reads and writes:
svn --username anonsvn --password anonsvn \
checkout svn://svn.turbocat.net/i4b
#
# The following commands will
# install the driver on FreeBSD:
#
cd i4b/trunk/i4b/FreeBSD.usb
make S=../src package
make install
Then you compile a new kernel.
Please let us know your results so that we can get this fixed in the official FreeBSD aswell.
--HPS
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
No, I do not have commit privileges at FreeBSD. I would suggest that you fix your own system by porting my patch and then file a PR, as a PR with a tested patch will likely get more attention that a suggestion to port a change.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm trying to get an Epson Stylus CX8400 working under CUPS on FreeBSD 7.0-RELEASE.
I have previously configured HP Deskjet 560C and a Brother HL-6050DN.
The gutenprint User's Manual states there are backends for Canon and Epson. I cannot find the Epson backend and have filed a problem report with freebsd-ports. I asked on -ports and -questions, but it's been over a week and no helpful responses.
Does anyone have a Canon or Epson working under CUPS on FreeBSD?
Do you have a backend in /usr/local/libexec/cups/backend?
The user's manual is out of date -- you don't need the Canon or Epson back ends, and we don't distribute them any more. You should be able to use the standard USB back end.
Thanks for the response.
I have asked for about two weeks now, for info at the FreeBSD mailing lists, -ports and -questions. No one seems to know anything about CUPS, gutenprint and Epsons. I had an HP Deskjet 560C and had wrestled with CUPS for a LONG time and I got it to work fairly well. I bought a Brother monolaser and it worked out great because it's a Postscript printer and Brother supplied a .ppd.
I've been using CUPS for several years and I know how to configure printers from the web interface, etc.
I set the LogLevel to debug and I was expecting to find an error msg regarding a broken pipe due to a missing filter or backend.
I couldn't find any errors in /var/log/cups/error_log.
As far as CUPS is concerned, it printed the file.
I have been trying to print two things.
1. CUPS has a button to print a test page. As you know, their test page includes graphics.
2. A simple text file from Kate.
The printer mostly just feeds sheet after sheet, occasionally printing some garbage.
I appear to be missing some magic 8o)
I've asked someone with a strong BSD background if he may be able to assist you with this.
I have been using cups and gutenprint to print on an Epson Stylus Photo 1200 under NetBSD, mostly with success. To debug this, there is at least one thing to check for, and then the next step is to separate the various pieces. The USB backend in cups now reads from the ulpt(4) device, and can block if that blocks. The USB lpt drive in *BSD used to not support reading, and then did, but doesn't support FIONBIO. Cups would call read with 1024 bytes or somethihng and the driver would loop waiting for them to come in. I fixed up the driver in NetBSD-current to deal with reading better, and now can print with cups.
To debug, use gutenprint with print-to-file, and get an output file. Without cups running, cat this onto the printer. Make sure escputil -n runs first, or disable cups and boot clean after powering everything off. I am trying to get a Stylus PHoto 1270 to work, and it works this way, but I am still having some issues with cups.
So, it's very likely that your problem is not gutenprint, but cups/usb-driver.
If you're up to reading and fixing kernel code, I can point you to my ulpt changes, or just look in NetBSD CVS at src/sys/dev/usb/ulpt.c and make sure you have at least rev 1.79.
I forgot to add that I also tried the escputil -sr /dev/ulpt0 to get status and it says the device is busy. I've tried this many times and have never gotten status.
Someone suggested that I take the umass driver out of my kernel and then try to configure the printer and then hand-load the umass driver so I could use floppies, thumb drives, etc.
It made no diff.
Probably this should attach as ulpt. what shows up when you plug it in?
Here's my info from dmesg:
dmesg|grep lpt
ulpt0: <EPSON USB2.0 MFP(Hi-Speed), class 0/0, rev 2.00/1.00, addr 2> on uhub4
ulpt0: using bi-directional mode
usbdevs -vd
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
uhub0
port 1 powered
port 2 powered
Controller /dev/usb1:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
uhub1
port 1 powered
port 2 powered
Controller /dev/usb2:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
uhub2
port 1 powered
port 2 powered
Controller /dev/usb3:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
uhub3
port 1 addr 2: low speed, power 98 mA, config 1, USB Receiver(0xc518), Logitech(0x046d), rev 42.02
ums0
port 2 powered
Controller /dev/usb4:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), Intel(0x0000), rev 1.00
uhub4
port 1 powered
port 2 powered
port 3 addr 2: high speed, self powered, config 1, USB2.0 MFP(Hi-Speed)(0x0839), EPSON(0x04b8), rev 1.00
ulpt0
port 4 powered
port 5 powered
port 6 powered
port 7 powered
port 8 powered
Previously I had a umass driver built into the kernel and someone on FreeBSD lists suggested I remove it from the kernel and load it manually later.
I built a new kernel without the umass driver, but it didn't help the printer anomaly.
escputil -sr /dev/ulpt0
Escputil version 5.1.7, Copyright (C) 2000-2006 Robert Krawitz
Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'
This is free software, and you are welcome to redistribute it
under certain conditions; type 'escputil -l' for details.
Cannot open /dev/ulpt0 read/write: Device busy
Hey, this worked:
escputil -qudr /dev/ulpt0
Epson Stylus CX8400
This returned no status:
escputil -qusr /dev/ulpt0
WOW, I just got a nozzle pattern printed
escputil -qun
I tried printing from Kate again. No joy.
Your results are consistent with the problem reading from ulpt(4). I expect that if you turn off your spooling systems and print to a file (perhaps with the gutenprint gimp plugin), and use cat, that you will get reasonable output. If so, I think as a next step there are two reasonable choices. One is to merge my driver changes from NetBSD. The other is to modify the cups source for the usb backend to make it never try to read form the printer.
Hi,
Can it be that the existing ULPT does not support non-blocking reads and writes ?
I have an USB patchset which you can try if you want, where ULPT supports non-blocking reads and writes:
svn --username anonsvn --password anonsvn \ checkout svn://svn.turbocat.net/i4b
#
# The following commands will
# install the driver on FreeBSD:
#
cd i4b/trunk/i4b/FreeBSD.usb
make S=../src package
make install
Then you compile a new kernel.
Please let us know your results so that we can get this fixed in the official FreeBSD aswell.
--HPS
I appreciate your effort, but I must say that modern printers MUST be read
from to get status info, ink levels, etc.
Disabling all reads would be a bad thing.
With my changes to NetBSD-current, reading works. I was suggesting making cups not read at all in case bringing that patch over was too daunting.
I don't have commit privs at FreeBSD. Do you or do you have access to someone who does?
No, I do not have commit privileges at FreeBSD. I would suggest that you fix your own system by porting my patch and then file a PR, as a PR with a tested patch will likely get more attention that a suggestion to port a change.