Printer-specific problems and their solutions.
- 1 Brother
- 2 Canon
- 3 Pixma MP540
- 4 Epson
- 5 FX
- 6 HP
- 7 Printer connected to an Airport Express Station
See: Brother DCP-7020
This is required as some Canon printers apparently do not declare their specification correctly for kernel and libusb to recognize them
- Do NOT blacklist usblp module.
- Connect the printer
The printer should now be recognized by the CUPS Add printer dialog. If still having problems, try restarting CUPS.
To get the printer working you need to:
- Blacklist usblp module
This section explains how to perform some of the utility functions (such as nozzle cleaning) on Epson printers, by using the escputil utility, part of the gutenprint package.
With newer printers (like the CX3600/CX3650 or D88) you must first "modprobe usblp" to get escputil working. This creates the "/dev/usb/lp0" node (see the "--raw-device" flag below). Afterwards you have to "rmmod usblp", else the printer won't be recognized by CUPS (version 1.4.x). More here: http://bbs.archlinux.org/viewtopic.php?pid=682455#p682455
There is a escputil's man-page provides basic information, but it does not touch on how to identify the printer. There are two parameters that can be used to do so:
- One is --printer: it expects the name used to identify the printer when is was configured.
- The other is --raw-device: this option expects a path beginning with "/dev". If the printer is the only serial printer on the system, "/dev/lp0" should be its device node. For USB printers, it is "/dev/usb/lp0". If having more than one printer, they will have names ending in "lp1", "lp2", etc.
On to the maintenance options:
- To clean the printer heads:
$ escputil -u --clean-head
- To print the nozzle-check pattern (allows verifying that the previous head cleaning worked, and determining the heads need cleaning):
$ escputil -u --nozzle-check
If wanting to perform an operation that requires two-way communication with a printer, use the "--raw-device" specification and the user must be root or be a member of the group "lp".
- The following is an example of getting the printer's internal identification:
$ sudo escputil --raw-device=/dev/usb/lp0 --identify
- To print out the ink levels of the printer:
$ sudo escputil --raw-device=/dev/usb/lp0 --ink-level
This is a printer status monitor which enables to get the remaining ink quantity, to print test patterns, to reset printer and to clean nozzle. It use an intuitive graphical user interface. Package can be downloaded from AUR.
This is a GUI using escputil and cups drivers. It supports nearly all USB printer of Epson and displays ink quantity, can clean and align print heads and print test patterns. It can be downloaded from AUR
Install Epson-ALCX11-filter from the AUR. Restart CUPS and add the printer using the driver "EPSON AL-CX11, ESC/PageS Filter".
Both connections, USB and network, should work as expected.
Simply install gutenprint,
$ sudo pacman -S gutenprint
& sudo /etc/rc.d/cups restart
add the printer via the cups-webinterface and select the Epson Stylus SX115 Foomatic/gutenprint-ijs.5.2 driver. This should work fine.
C1110 (not model B)
Keep in mind that these directions assume that the printer is connected and listening on the network.
- Install cpio and rpmunpack to later unpack the package:
# pacman -S cpio rpmunpack cups ghostscript gsfonts
- Get the FX GNU/Linux driver here.
- Unzip Template:Filename to /var/tmp (the directory is not important):
$ unzip fxlinuxprint-1.0.1-1.i386.zip -d /var/tmp
- Continue extracting the file:
$ cd /var/tmp $ rpmunpack fxlinuxprint-1.0.1-1.i386.rpm $ gunzip fxlinuxprint-1.0.1-1.cpio.gz
- Move the cpio DST file (for convenience):
$ mkdir /var/tmp/DST $ mv fxlinuxprint-1.0.1-1.cpio /var/tmp/DST
- Extract it:
$ cd /var/tmp/DST $ cpio -id < fxlinuxprint-1.0.1-1.cpio
- Filter the relevant files:
$ cd /var/tmp $ find /var/tmp/DST -type f |cat -n 1 /var/tmp/DST/etc/cups/mimefx.convs 2 /var/tmp/DST/etc/cups/mimefx.types 3 /var/tmp/DST/usr/lib/cups/filter/pdftopjlfx 4 /var/tmp/DST/usr/lib/cups/filter/pstopdffx 5 /var/tmp/DST/usr/lib/cups/filter/pdftopdffx 6 /var/tmp/DST/usr/share/cups/model/FujiXerox/en/fxlinuxprint.ppd
- Copy the files found in the previous step to /
- Access http://localhost:631/ and add the lpd://f.q.d.n/queue printer, aunthenticating as root.
- Go through "Manage Printer" and "Set Printer Options".
- Print a test page (substitue color103 with the assigned printer name):
$ lpq -P color103 color103 is ready no entries
Deskjet 700 Series
Printing does not work
HP LaserJet 1010
A solution to make LaserJet 1010 work with CUPS may be to compile a newer version of GhostScript:
$ pacman -Qs cups a2ps psutils foo ghost local/cups 1.1.23-3 The CUPS Printing System local/a2ps 4.13b-3 a2ps is an Any to PostScript filter local/psutils p17-3 A set of postscript utilities. local/foomatic-db 3.0.2-1 Foomatic is a system for using free software printer drivers with common spoolers on Unix local/foomatic-db-engine 3.0.2-1 Foomatic is a system for using free software printer drivers with common spoolers on Unix local/foomatic-db-ppd 3.0.2-1 Foomatic is a system for using free software printer drivers with common spoolers on Unix local/foomatic-filters 3.0.2-1 Foomatic is a system for using free software printer drivers with common spoolers on Unix local/espgs 8.15.1-1 ESP Ghostscript
The debug solution might work if getting errors similar to 'Unsupport PCL', etc. See: OpenPrinting database - Printer: HP LaserJet 1010
Installation from AUR
Install the package foo2zjs from AUR and modify the Template:Filename. Change the line:
If getting errors with incorrect md5sums, the md5sum of Template:Filename in the PKGBUILD should be changed to match the downloaded driver.
As a last step, add and configure the printer in the CUPS manager. The printer should be recognized automatically, and function for both root and regular users.
This section details the setup of the HP Laserjet 1020 by manually downloading and compiling the foo2zjs driver.
# pacman -S cups ghostscript
The OpenPrinting database - Printer: HP LaserJet 1020 page outlines the support for this printer.
The foo2zjs driver will be installed as outlined on the project page: foo2zjs: a linux printer driver for ZjStream protocol.
Firstly, download the driver:
$ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz
And unpack it:
$ tar zxf foo2zjs.tar.gz $ cd foo2zjs
The driver is now compiled:
$ make $ ./getweb 1020 # make install # make install-hotplug # make cups
The usblp module is needed to upload the firmware to the printer, but the module must then be removed to allow printing or adding the printer to the system. Ensure that the usblp module is not blacklisted in the Template:Codeline array of Template:Filename.
Ensure that the CUPS daemon is running and added to the Template:Filename file:
# /etc/rc.d/cups start
Now plug in the USB printer and turn it on. The printer will whirl, pause, then whirl once more as the firmware is uploaded. Now remove the usblp module:
# rmmod usblp
The printer can be added to the system with CUPS http://localhost:631/
The reason for this has been explained on the forum.
Firmware for HPLIP
Some printers may appear to have been correctly installed by CUPS, but fail to print. It may be that the necessary firmware needs to be downloaded by running:
# hp-setup -i
as root. This situation has been encountered with the LaserJet 1000 and LaserJet 1005.
Printer connected to an Airport Express Station
The first step is to scan the Airport Express station. It seems that there are different addresses depending on the model:
[root@somostation somos]# nmap 192.168.0.4 Starting Nmap 4.20 ( http://insecure.org ) at 2007-06-26 00:50 CEST Interesting ports on 192.168.0.4: Not shown: 1694 closed ports PORT STATE SERVICE 5000/tcp open UPnP 9100/tcp open jetdirect 10000/tcp open snet-sensor-mgmt MAC Address: 00:14:51:70:D5:66 (Apple Computer) Nmap finished: 1 IP address (1 host up) scanned in 25.815 seconds
The Airport station is accessed like an HP JetDirect printer. Afterwards, edit Template:Filename:
# Printer configuration file for CUPS v1.2.11 # Written by cupsd on 2007-06-26 00:44 <Printer LaserSim> Info SAMSUNG ML-1510 gdi Location SomoStation DeviceURI socket://192.168.0.4:9100 State Idle StateTime 1182811465 Accepting Yes Shared Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 OpPolicy default ErrorPolicy stop-printer </Printer>
Problems may be resolved by removing foomatic and installing foomatic-db, foomatic-db-engine, foomatic-db-ppd instead.