Epson 3880 vs. [high resolution, large format] linux printing

aka “How I Drive Myself and Those Around me Mad for at least a Week”

Expected: some bitching and moaning along with details of the development of a new high-resolution printing workstation configuration that will serve as a baseline reference for high, super-high, ultra-high, barely-even-atmospheric-high resolution inkjet prints.

Some notes on my old configuration, named “chula” configuration.

Details for chula configuration:

Hardware is Epson Stylus Photo R2400, circa 2006. Print heads now shot.
This printer is no longer capable of making good prints, and is not coming back. Minus some new voodoo rituals, and regardless of wasted pints of ink on flawed prints or hoping one more nozzle cleaning might make non-streaky prints a reality once more. Keeping this printer around for various sentimental reasons, and vaguely plan for future hacking fun with custom inks.

Software base is Fedora 13 and 14, using

freetype

freetype-freeworld

kmod-nvidia

gutenprint-5.2.6

gutenprint-foomatic

openprinting-gutenprint

ghostscript

cups-1.4.4

The default driver is the “gutenprint/cups” one. A higher-performance driver is available via the “openprinting-foomatic” driver. Use this driver for all prints.

PPD is hand-hacked and included custom paper sizes for 13 x 38″ prints, and frankly some other things that I cannot quite remember at this later date.

Notable projects include Gone Awry, Marfa Project, photogravure printing for Conceptual Forms, Pirate Passport Projects, High Line.

Details for ulloa configuration:

Hardware is Epson Stylus Pro 3880. Inks are 9-color Epson UltraChrome K3™ with Vivid Magenta. See Stylus Pro Series on the “Professional Imaging” part of Epson website.

Software base is Fedora 18TC9, using

freetype

freetype-freeworld

gutenprint-5.2.9

gutenprint-cups

ghostscript-9.05

ghostscript-cups

cups-1.5.4

cups-ipptool

epson-inkjet-printer-escpr

Software config:

0) Printer config via either “System Settings/Printers” or via the CUPS standby, http://localhost:631. In most all cases, the direct CUPS configuration is better as it allows full control of the print driver options and also shows correct status for in-progress print jobs. Your mileage may vary.

1) firewall-config needs to have: ipp, ipp-client, smb-client, mdns holes for network discovery to work. Note, ipp based discovery may be turned off at the server level and may need to be manually changed via CUPs server changes below.

2) nvidia kernel boot config needs: vga=normal, nouveau.modset=0 rd.driver.blacklist=nouveau video=vesa:off

Cups notes:

EPCL == Epson Printer Control Language.

epson-inkjet-printer-escpr

has a high-resolution rastertoepson binary, something similar is in the Apple PPD.

Web-ui for CUPS configuration is:

http://localhost:631

Set rip memory setting to 1Gb via:

RIPCache 1g
Set ipp discovery via:

?

Useful files and or directories:

/usr/lib/cups/filter/epson-escpr

/usr/lib/cups/filter/rastertoepson

/user/share/cups/model/*.ppd

/usr/share/cups/model/foomatic-db-ppds/Epson/eplp*.ppd.gz

/var/log/cups/error_log

Linkages between CUPS print queues and the printer description files (PPD).

/etc/cups/ppd/*.ppd

Useful linux cups debugging page for Debian: DebuggingPrintingProblems.

Useful linux cups debugging page for Fedora: Printing and HowToDebugPrintingProblems.

PPD/Driver notes

Apple PPD:

Supported via official Epson driver.

FormatVersion/FileVersion: 4.3/8.64.

*cupsFilter: “application/vnd.cups-raster 0 /Library/Printers/EPSON/InkjetPrinter2/Filter/rastertoescpII.app/Contents/MacOS/rastertoescpII”
*cupsPreFilter: “application/pdf 33 /Library/Printers/EPSON/InkjetPrinter2/Filter/pdftopdf2.app/Contents/MacOS/pdftopdf2”

*% Quality ===================
**EPIJ_Qual 42/Draft – 180 dpi: “”
*EPIJ_Qual 31/Draft – 360 dpi: “”
*EPIJ_Qual 33/Fine – 720 dpi: “”
*EPIJ_Qual 35/SuperFine – 1440 dpi: “”
*EPIJ_Qual 38/SuperPhoto – 2880 dpi: “”

*APDialogExtension: “/Library/Printers/EPSON/InkjetPrinter2/PDE/PDECPlugin01.plugin”

*cupsFilter: “application/vnd.cups-command 0 /Library/Printers/EPSON/InkjetPrinter2/Filter/commandtoescp.app/Contents/MacOS/commandtoescp”

Windows 7 PPD exists but seems like the Apple/Mac one is a more interesting basis for comparison for linux, as both linux and macos use CUPS.

Linux PPD:

a.) Gutenprint + CUPS.

*cupsFilter:    “application/vnd.cups-raster 100 rastertogutenprint.5.2”
*cupsFilter:    “application/vnd.cups-command 33 commandtoepson”

Be warned: this driver cannot render high resolution output correctly.
See test prints below:

Example one.

Example two.

For both of these testprint comparisons, the left side is a reference print and the right side is the linux-hosted gutenprint-driven print. Many issues, some highlighted in orange sharpie. At issue: line weights are off and indicate lower-res or rasterization issues, as a result all type line weights off, problems with rendering transparency, trouble with fades, etc. All this with no magnification/loop.
Result: fail.

b.) Epson driver for older model, the Epson Stylus Pro 3800. This has official “unsupported” drivers, via this page. Use “3800” and “linux” in the search boxes, respectively.

This leads to the direct download page.

c.) Epson driver for a related slightly-less ancient model, the Epson Stylus Pro 4880.

See Avaysys drivers, even though transitioned to Seiko these are still the best best for high-resolution large format devices. By “large format devices,” mean Epson USA

Look for “Epson Inkjet Printer Driver for linux (ESC/P). Although no 3880 drivers, have a couple of options. These other Stylus Pro printers have similar ink technology: 4880, 7890, 9890. So,  take 4880 drivers as a base and hack to 3880. Get the srpm and install, before editing.

Manual for Linux Driver.

d.) Openprinting driver for Epson 3880. Upstream Gutenprint project. According to this web page, the correct driver for the epson stylus pro 3880 is:

Epson Stylus Pro 3880 escp2-3880

but package “gutenprint” has this via ‘rpm -ql gutenprint’

/usr/share/gutenprint/5.2/xml/escp2/media/pro3880_ultrachrome_k3v.xml

Anyway. the openprinting rpm that is downloaded from above.

Fedora/RHEL notes

Following via bugzilla:

832130 cups-filters

719390 f15 vs. large-format and high-resolution printing

Fedora 16 vs. MacBook Pro or Air

Using x86_64 netinst image for F16. For Fedora 17, see update.

Pre-install:

In general, macs require special hand-holding to get linux images to boot. This issue is longstanding and can be tracked in BZ 503149. Some of this hand-holding can be via OS X extensions like rEFIt, and some of this hand holding can be via the way the linux ISO is made into bootable removable media.

1) rEFIT

2) livecd-iso-to-disk –efi –format (NOTE: –efi may not work.)

3) hosted on a mac, download the image and have a USB stick. Then, using Disk Utility, format the usb stick as FAT and with GUID type partitions, Then open the terminal and clone the image to the USB stick via dd:

dd if=/path/to/Fedora-16-x86_64-netinst.iso of=/dev/rdisk1 bs=1m

then when that is done:

sudo diskutil unmountDisk /dev/disk1

Note that only some of the Fedora ISOs are efi-bootable. Try them all, see which one works! In general, live x86_64 images work better than DVD images, and often for the macs the netinstall iso is the best. For the netinstall image, you’ll need to have a correctly working network connection, under linux. Most likely this will require the wired, not wireless hardware support for mac models due to a sad proclivity towards Broadcom hardware on new mac models. So, for the MBA, you’ll need the USB ethernet dongle. Does anybody know what gig USB dongles work under Mac OS X and linux? (It’s not the linux side I’m worried about……)

For some mac models, the only real option is burning a dvd/cd-rom. No matter how a USB key is created, it won’t work. My advice is to start with a CD-ROM or DVD if at all possible. Of course, on the macbook air that requires additional hardware. So, attempt the USB key!

Install:

First, boot into OS X. Use the disk utility application to change your mac disk from one partition to two partitions, with the second partition of type “Free Space.”

Once you’re done with that, reboot. The mac should come up without issue.

Next, reboot with the Fedora media inserted into the mac. Hold down the option key until you see the EFI boot menu. Toggle over to the correct linux boot volume using the arrow keys and hit enter. It will probably appear as a USB harddrive named “Windows” in the EFI boot menu.

This should launch the Fedora installer.

Hit “e” on the keyboard to edit the installer options and get a menu. Then press tab when you get to the boot screen, and add “nomodeset” to the linux kernel boot arguments. Then boot it…….. this may take some time, and the screen may look super wonky at first. Just go with it, as the visual hallucinations will eventually stop.

Phew. The rest is easier.

Once you find yourself in the Fedora installer, continue to the disk formatting stage. At this point, you want to make sure to install on “Free Space Only.” Review created partitions for sanity, but the installer should get it right.

Continue with install. Once it is finished, reboot.

At this time, linux is installed correctly but not in a discoverable/usable state by EFI boot. So, you will not see linux as a boot option if you hold down the option key during a restart. That’s ok: just boot into mac OS X.

Post-install:

Install rEFIt on the mac. Enable rEFIt on the mac volume so that when you re-boot the mac, you get a rEFIt menu.

Once you see the rEFIt menu, select disk partition tool, and it will run and say that the partition map needs to be updated. Do so. (Note there may be other ways to do this, via the gptsync utility on linux.)

On next reboot, the linux volume will be visible in both the rEFIt menu and by holding down the option key at boot. It will either show up as a windows volume or a sassy linux penguin. Key over to it and boot it.

It should boot and then it’s just like any other linux install. Go crazy.

Once you get to this stage, rEFIt may be disabled on the mac volume (optional).

Non-specific to F16 notes.

1) Using nvidia drivers, just enable RPMFusion and install kmod-nvidia. Run nvidia-xconfig, nvidia-settings, and blacklist nouveau in boot/grub/grub.conf.

2) How does one get the classic GNOME option??

From Bill Nottingham:

$ gsettings set org.gnome.desktop.session session-name gnome-fallback

(It’s also a checkbox in the ‘Graphics’ section of the System Info control panel.)

3) cups is there, but not activated so the system-settings->printing config won’t work. See BZ 744078.

However, if you do:

service cups start

Then bring up localhost:631 in a browser one can config printing as per the usual CUPS web-ui. In general, I am having a lot of problems with high-resolution printing on Fedora after Fedora 14. See BZ 719390. What used to work (installing the high-quality foomatic ppds) is clipping pages and only producing inferior draft output. Boo.

4) How to get broadcom wireless cards to work.