Difference between revisions of "CUPS/Printer-specific problems"

From ArchWiki
Jump to: navigation, search
(wikify some external links, use https for archlinux.org)
(Added Brother MFC-9332CDW)
 
(241 intermediate revisions by 38 users not shown)
Line 1: Line 1:
 
[[Category:Printers]]
 
[[Category:Printers]]
{{Article summary start|Summary}}
+
[[ja:CUPS/プリンター別の問題]]
{{Article summary text|Dealing with printer-specific problems}}
+
{{Related articles start}}
{{Article summary heading|Related}}
+
{{Related|CUPS}}
{{Article summary wiki|CUPS}}
+
{{Related|CUPS/Troubleshooting}}
{{Article summary end}}
+
{{Related articles end}}
  
Printer-specific problems and their solutions.
+
This article contains printer or manufacturer-specific instructions for [[CUPS]].
 +
See [http://www.openprinting.org/printers OpenPrinting] if your printer is not already listed here, or if none of the listed drivers work.
 +
 
 +
{{Note|If you add a printer to this list, consider contributing your entry to [https://wiki.linuxfoundation.org/openprinting/database/databaseintro OpenPrinting] - that way users of other distributions will also benefit!}}
  
 
==Brother==
 
==Brother==
  
===DCP 7020===
+
{| class="wikitable"
See: [[Brother DCP-7020]]
+
! Printer
===Other Brother Printers===
+
! Driver/filter
 +
! Notes
 +
|-
 +
| DCP-135C || {{AUR|brother-dcp135c}} ||
 +
|-
 +
| DCP-150C || {{AUR|brother-dcp150c}} ||
 +
|-
 +
| DCP-7020 || [[CUPS#Foomatic|foomatic]] || Or Brother's driver.
 +
|-
 +
| DCP-7030 || {{AUR|brother-dcp7030}} ||
 +
|-
 +
| DCP-7065DN || {{AUR|brother-dcp7065dn}} ||
 +
|-
 +
| FAX-2820 || {{AUR|brother-cups-wrapper-laser}} ||
 +
|-
 +
| FAX-2840 || {{AUR|brother-fax2840}} || Or [[CUPS#Foomatic|foomatic]] - works mostly with {{ic|hpijs-pcl5e.ppd}}. Same as the HL-2170W.
 +
|-
 +
| HL-2030 || [[CUPS#Foomatic|foomatic]] || Or {{AUR|brother-hl2030}}
 +
|-
 +
| HL-2035 || [[CUPS#Foomatic|foomatic]] || Should be compatible with any drivers for the HL-2030.
 +
|-
 +
| HL-2040 || [[CUPS#Foomatic|foomatic]] || Or {{AUR|brother-hl2040}}
 +
|-
 +
| HL-2130 || [[CUPS#Foomatic|foomatic]] (using the HL-2140 driver) || Or {{Pkg|hplip}}
 +
|-
 +
| HL-2140 || [[CUPS#Foomatic|foomatic]] || Or {{AUR|brother-hl2140}}
 +
|-
 +
| HL-2170W || [[CUPS#Foomatic|foomatic]] || Or Brother's driver.
 +
|-
 +
| HL-2230 || [[CUPS#Foomatic|foomatic]] || Same as HL-2170W. Select HL-2170W as the driver in CUPS admin when adding a printer.
 +
|-
 +
| HL-2250DN || {{AUR|brother-hl2250dn}} ||
 +
|-
 +
| HL-2270DW || {{AUR|brother-hl2270dw}} ||
 +
|-
 +
| HL-2280DW || {{AUR|brother-hl2280dw}} ||
 +
|-
 +
| HL-2340DW || {{AUR|brother-hll2340dw}} ||
 +
|-
 +
| HL-3045CN || Install Brother's driver. ||
 +
|-
 +
| HL-3150CDW || {{AUR|brother-hl3150cdw}} ||
 +
|-
 +
| HL-3170CDW || {{AUR|brother-hl3170cdw}} ||
 +
|-
 +
| HL-5140 || [[CUPS#Foomatic|foomatic]] || Or Brother's driver.
 +
|-
 +
| HL-5340 || [[CUPS#Foomatic|foomatic]] || Using the ''Generic PCL 6/PCL XL Printer - CUPS+Gutenprint'' ({{pkg|gutenprint}}, {{pkg|foomatic-db-gutenprint}}{{Broken package link|package not found}} and {{pkg|foomatic-db-gutenprint-ppds}}). Or Brother's driver, which may result in failed prints with postscript errors.
 +
|-
 +
| HL-L2300D || {{AUR|brother-hll2300d}} ||
 +
|-
 +
| HL-L2380DW || {{AUR|brother-hll2380dw}} ||
 +
|-
 +
| MFC-420CN || {{AUR|brother-mfc-420cn}}{{Broken package link|{{aur-mirror|brother-mfc-420cn}}}} ||
 +
|-
 +
| MFC-440CN || {{AUR|brother-mfc-440cn}} ||
 +
|-
 +
| MFC-465CN || {{AUR|brother-mfc-465cn}}{{Broken package link|{{aur-mirror|brother-mfc-465cn}}}} ||
 +
|-
 +
| MFC-7360N || Install Brother's driver. ||
 +
|-
 +
| MFC-9320CW || Install Brother's driver. ||
 +
|-
 +
| MFC-9332CDW || {{AUR|brother-mfc-9332cdw}} ||
 +
|-
 +
| MFC-9840CDW || [[CUPS#Foomatic|foomatic]] || Or Brother's driver. This printer also works with the generic PCL-6 driver from the {{Pkg|gutenprint}} package. Use '''pcl_p1''' for the printer's address when using the PCL-6 driver.
 +
|-
 +
| MFC-J470DW || {{AUR|brother-mfc-j470dw}} ||
 +
|-
 +
| MFC-J5520DW || {{AUR|brother-mfc-j5520dw}} ||
 +
|-
 +
| MFC-J5910DW || {{AUR|brother-mfc-j5910dw}} ||
 +
|-
 +
| MFC-J650DW || Install Brother's driver. ||
 +
|-
 +
| MFC-J885DW || {{AUR|brother-mfc-j885dw}} ||
 +
|-
 +
| MFC-L2700DW || {{AUR|brother-mfc-l2700dw}} || Please look also at the comments section of the AUR package page.
 +
|-
 +
| QL-500 || {{AUR|brother-ql500}} ||
 +
|-
 +
| QL-570 || {{AUR|brother-ql570}} ||
 +
|-
 +
| QL-580N || {{AUR|brother-ql580n}} ||
 +
|-
 +
| QL-650TD || {{AUR|brother-ql650td}} ||
 +
|-
 +
| QL-700 || {{AUR|brother-ql700}} ||
 +
|-
 +
| QL-710W || {{AUR|brother-ql710w}} ||
 +
|-
 +
| QL-720NW || {{AUR|brother-ql720nw}} ||
 +
|-
 +
| QL-1050 || {{AUR|brother-ql1050}} ||
 +
|-
 +
| QL-1050N || {{AUR|brother-ql1050n}} ||
 +
|-
 +
| QL-1060 || {{AUR|brother-ql1060n}} ||
 +
|-
 +
| TD-2020 || {{AUR|brother-td2020}} ||
 +
|-
 +
| TD-2120N || {{AUR|brother-td2120n}} ||
 +
|-
 +
| TD-2130N || {{AUR|brother-td2130n}} ||
 +
|-
 +
| TD-4000 || {{AUR|brother-td4000}} ||
 +
|-
 +
| TD-4100N || {{AUR|brother-td4100n}} ||
 +
|-
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|}
 +
 
 +
===Network printers===
 +
For network printers, use {{ic|ipp://'''printer_ip'''/ipp/port1}} as printer address.
 +
For some older printers, this might not work. If not, try {{ic|lpd://'''printer_ip'''/BINARY_P1}} instead.
 +
 
 +
Some printers use the socket protocol. For these printers, use {{ic|socket://'''printer_ip''':9100}}.
 +
For http, use {{ic|http://'''printer_ip'''/POSTSCRIPT_P1}}.
 +
 
 +
===Custom drivers===
  
It appears that newer versions of the "file" package break the ability of many Brother printers to print from GUI applications. The solution seems to be to ensure that the "a2ps" package is installed.
+
Brother provides custom drivers on their website, either in source tarball, rpm, or deb form. [[Packaging Brother printer drivers]] covers creating [[PKGBUILD]]s from the existing RPM packages.
 +
{{Note|The source packages might be a better alternative to the rpm packages, provided they contain all the needed files.}}
  
==Canon==
+
====Manually installing from the RPM packages====
===MF 4150===
+
 
This is required as some Canon printers apparently do not declare their specification correctly for kernel and libusb to recognize them
+
{{Warning|This should ideally be automated in a [[PKGBUILD]]}}
 +
 
 +
[[Install]] the {{Pkg|rpmextract}} package, and extract both rpm packages using {{ic|rpmextract.sh}}. Extracting both files will create a var and a usr directory - move the contents of both directories into the corresponding root directories.
 +
 
 +
Run the cups wrapper file in {{ic|/usr/local/Brother/cupswrapper}}. This should automatically install and configure your brother printer.
 +
 
 +
===Multiple Copy Problem===
 +
Sometimes when using the latest drivers, the printer will print multiple copies (for instance a MFC-9330CDW printed 10 copies). The solution is to update the firmware (there is a windows tool, but it didn't work for me).
 +
 
 +
[[Install]] {{pkg|net-snmp}} and run:
 +
 
 +
snmpwalk -c public $PRINTER_IP | grep -A 1 3.6.1.4.1.2435.2.4.3.99.3.1.6.1.2
  
* Do NOT blacklist usblp module.
+
At this point, you will have the relevant data to get a valid firmware download link from Brother. The file should look similar to the one below:
  
* Connect the printer
+
{{hc|request.xml|
 +
<REQUESTINFO>
 +
    <FIRMUPDATETOOLINFO>
 +
        <FIRMCATEGORY>MAIN</FIRMCATEGORY>
 +
        <OS>LINUX</OS>
 +
        <INSPECTMODE>1</INSPECTMODE>
 +
    </FIRMUPDATETOOLINFO>
 +
 +
    <FIRMUPDATEINFO>
 +
        <MODELINFO>
 +
            <SELIALNO></SELIALNO>
 +
            <NAME>MFC-9330CDW</NAME>
 +
            <SPEC>0401</SPEC>
 +
            <DRIVER></DRIVER>
 +
            <FIRMINFO>
 +
                <FIRM>
 +
                    <ID>MAIN</ID>
 +
                    <VERSION>R1506121801:4504</VERSION>
 +
                </FIRM>
 +
                <FIRM>
 +
                    <ID>SUB1</ID>
 +
                    <VERSION>1.07</VERSION>
 +
                </FIRM>
 +
                <FIRM>
 +
                    <ID>SUB2</ID>
 +
                    <VERSION>L1505291600</VERSION>
 +
                </FIRM>
 +
            </FIRMINFO>
 +
        </MODELINFO>
 +
        <DRIVERCNT>1</DRIVERCNT>
 +
        <LOGNO>2</LOGNO>
 +
        <ERRBIT></ERRBIT>
 +
        <NEEDRESPONSE>1</NEEDRESPONSE>
 +
    </FIRMUPDATEINFO>
 +
</REQUESTINFO>
 +
}}
  
The printer should now be recognized by the CUPS Add printer dialog. If still having problems, try restarting CUPS.
+
Post this file to Brother:
  
* Install UFRII driver ({{AUR|ufr2}} from the [[AUR]] and complete the printer installation.
+
curl -X POST -d @request.xml https://firmverup.brother.co.jp/kne_bh7_update_nt_ssl/ifax2.asmx/fileUpdate -H "Content-Type:text/xml" > response.xml
  
===Pixma MP540/MP5**===
+
In {{ic|response.xml}} you will find a {{ic|<PATH>}} tag that contains the firmware download URL. Next, download the firmware, push it to the printer, and let the printer process it. Before that is done, change the Admin password to something known, it will be used as the user to log into the FTP site (VERY bad practice, don't do this). 
To get the printer working you need to:
 
  
* Blacklist '''usblp''' module and reboot.
+
wget http://update-akamai.brother.co.jp/CS/LZ4266_W.djf
 +
ftp $PRINTER_IP
 +
  bin
 +
  hash
 +
  send LZ4266_W.djf
 +
  bye
  
* Install {{AUR|cnijfilter-common}} and {{AUR|cnijfilter-mp540}} (or whichever package corresponds to your MP5** model) from the [[AUR]].
+
With that, the printer will restart, and the latest firmware will be installed and (hopefully) your printing woes will be solved.
  
* Those with an MP560 should download {{AUR|lib32-cnijfilter-mp560}} for x86_64 or {{AUR|cnijfilter-mp560}} for i686.
+
==Canon==
  
If it's still not working execute the following command as root:
+
{{Style|It would good if the driver table could be removed or somehow merged into the main table}}
# ln -s /usr/bin/cifmp540 /usr/local/bin/cifmp540
 
  
==Epson==
+
{| class="wikitable"
 +
! style="font-weight: bold;" | Driver
 +
! style="font-weight: bold;" | Description
 +
|-
 +
| {{Pkg|gutenprint}}
 +
| Supports [http://gimp-print.sourceforge.net/p_Supported_Printers.php many Canon printers].
 +
|-
 +
| {{AUR|cndrvcups-lb}}
 +
| Canon UFR II /LIPSLX Printer Driver build from source for LBP, iR & MF printers
 +
|-
 +
| {{AUR|cndrvcups-lb-bin}}
 +
| Canon UFR II/UFR II LT Printer Driver (including Canon imageCLASS MF4720w)
 +
|-
 +
| {{AUR|cnijfilter-mg4200}}
 +
| Canon IJ Printer Driver (for mg4200 series)
 +
|-
 +
| {{AUR|capt-src}}
 +
| Canon CAPT Printer Driver (for Canon i-Sensys printers)
 +
|-
 +
| {{AUR|cups-bjnp}}
 +
| CUPS back-end for the canon printers using the proprietary USB over IP BJNP protocol
 +
|}
  
===Utility functions===
+
{| class="wikitable"
====escputil====
+
! Printer
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.
+
! Driver/filter
 +
! Notes
 +
|-
 +
| iP4300
 +
| {{Pkg|gutenprint}}
 +
| Or use Canon's {{AUR|cnijfilter-ip4300}}{{Broken package link|{{aur-mirror|cnijfilter-ip4300}}}} driver, or the [http://www.turboprint.info/ TurboPrint] driver.
 +
|-
 +
| LBP810 || rowspan="34" | {{AUR|capt-src}} ||
 +
|-
 +
| LBP1120 ||
 +
|-
 +
| LBP1210 ||
 +
|-
 +
| LBP2900 ||
 +
|-
 +
| LBP3000 ||
 +
|-
 +
| LBP3010 ||
 +
|-
 +
| LBP3018 ||
 +
|-
 +
| LBP3050 ||
 +
|-
 +
| LBP3100 ||
 +
|-
 +
| LBP3108 ||
 +
|-
 +
| LBP3150 ||
 +
|-
 +
| LBP3200 ||
 +
|-
 +
| LBP3210 ||
 +
|-
 +
| LBP3250 ||
 +
|-
 +
| LBP3300 ||
 +
|-
 +
| LBP3310 ||
 +
|-
 +
| LBP3500 ||
 +
|-
 +
| LBP5000 ||
 +
|-
 +
| LBP5050 series ||
 +
|-
 +
| LBP5100 ||
 +
|-
 +
| LBP5300 ||
 +
|-
 +
| LBP6000 ||
 +
|-
 +
| LBP6018 ||
 +
|-
 +
| LBP6020 ||
 +
|-
 +
| LBP6200 ||
 +
|-
 +
| LBP6300 ||
 +
|-
 +
| LBP6300n ||
 +
|-
 +
| LBP6310dn ||
 +
|-
 +
| LBP7010C ||
 +
|-
 +
| LBP7018C ||
 +
|-
 +
| LBP7200Cdn (network mode) ||
 +
|-
 +
| LBP7200C series ||
 +
|-
 +
| LBP7210Cdn ||
 +
|-
 +
| LBP9100C ||
 +
|-
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|}
  
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: https://bbs.archlinux.org/viewtopic.php?pid=682455#p682455
+
Some Canon printers will use a similar setup to the iP4500, so consider modifying the {{AUR|cnijfilter-ip4500}} package for other, similar printers.
  
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:
+
===CARPS===
  
* One is {{Ic|--printer}}: it expects the name used to identify the printer when is was configured.
+
Some of Canon's printers use Canon's proprietary Canon Advanced Raster Printing System (CARPS) driver.
 +
[http://www.rainbow-software.org/2014/01/23/cups-driver-for-canon-carps-printers/ Rainbow Software] have managed to reverse engineer the CARPS data format and have successfully created a CARPS CUPS driver, which is available as {{AUR|carps-cups}}.
 +
The project's [https://github.com/ondrej-zary/carps-cups GitHub] page includes a list of working printers.
  
* The other is {{Ic|--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.
+
===CAPT===
  
On to the maintenance options:
+
See [[Canon CAPT]].
* 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):
+
==Dell==
$ 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".
+
{| class="wikitable"
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|-
 +
| 1250C
 +
| {{AUR|foo2zjs-nightly}}
 +
| See http://cybercom.net/~dcoffin/hbpl, the patch has been merged into upstream. The printer may also work with the [[#Phaser 6000B|Xerox Phaser 6000B driver]].
 +
|-
 +
| E515,
 +
E515dw
 +
| Install [http://downloads.dell.com/FOLDER03040853M/1/Printer_E515dw_Driver_Dell_A00_LINUX.zip Dell's driver].
 +
| Both ''e515dwcupswrapper-3.2.0-1.i386.deb'' and ''e515dwlpr-3.2.0-1.i386.deb'' need to be installed. You could either write a [[PKGBUILD]], use {{AUR|debtap}}, or use {{AUR|dpkg}} (using dpkg is not recommended as the files will not be managed by [[pacman]]). The driver works on both the x86_64 and i386 platforms, but may require [[multilib]].
 +
|-
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|}
  
* The following is an example of getting the printer's internal identification:
+
==Epson==
$ sudo escputil --raw-device=/dev/usb/lp0 --identify
 
  
* To print out the ink levels of the printer:
+
{{AUR|epson-inkjet-printer-escpr}} is a driver for the Epson Inkjet Printer Driver (ESC/P-R) for Linux.
$ sudo escputil --raw-device=/dev/usb/lp0 --ink-level
 
  
====mtink====
+
There is a large selection of printer drivers/filters available in the [[AUR]].
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 [https://aur.archlinux.org/packages.php?do_Details=1&ID=476&O=0&L=0&C=0&K=mtink&SB=n&SO=a&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd AUR].
 
  
====Stylus-toolbox====
+
{| class="wikitable"
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 [https://aur.archlinux.org/packages.php?ID=30319 AUR]
+
! Printer
 +
! Driver/filter
 +
! Notes
 +
|-
 +
| AcuLaser CX11(NF) || {{AUR|epson-alcx11-filter}} ||
 +
|-
 +
| AcuLaser C900 || || This printer uses Epson's driver, with a device URI of ''''usb://EPSON/AL-C900'''', and may need the pipsplus service to be running.
 +
|-
 +
| TX125 || {{AUR|epson-inkjet-printer-n10-nx127}} ||
 +
|-
 +
| LP-S5000 || || This printer requires a [[#Avasys|custom driver from Avasys]].
 +
|-
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|}
  
===AcuLaser CX11(NF)===
+
===Utilities===
Install [https://aur.archlinux.org/packages.php?ID=30424 Epson-ALCX11-filter] from the AUR. Restart CUPS and add the printer using the driver "EPSON AL-CX11, ESC/PageS Filter".
+
====escputil====
 +
escputil is part of the {{Pkg|gutenprint}} package, and performs some utility functions on Epson printers such as nozzle cleaning.
  
Both connections, USB and network, should work as expected.
+
====mtink====
 +
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.
  
===Stylus SX125===
+
====Stylus-toolbox====
Simply install gutenprint,
+
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.
$ sudo pacman -S gutenprint
 
restart cups,
 
& sudo /etc/rc.d/cupsd restart
 
add the printer via the cups-webinterface and select the
 
'''Epson Stylus SX115 Foomatic/gutenprint-ijs.5.2''' driver. This should work fine.
 
  
===LP-S5000===
+
===Custom drivers===
 +
====Avasys====
 
{{Warning|This section involves installing packages without [[pacman]]. These directions should ideally be automated with a [[PKGBUILD]].}}
 
{{Warning|This section involves installing packages without [[pacman]]. These directions should ideally be automated with a [[PKGBUILD]].}}
"Source" code of the driver is available on [http://www.avasys.jp/lx-bin2/linux/laser/DL2.do avasys website], in Japanese, however it includes a 32 bit binary which will cause problem on 64 bit system.
+
"Source" code of the driver is available on the [http://www.avasys.jp avasys website], in Japanese, however it includes a 32 bit binary which will cause problem on 64 bit system.
To install the printer:
 
 
 
*Install the libstdc++5 ,on 32bit system, or the lib32-listdc++5 package (available in the multilib repository), on 64bit.
 
# pacman -S libstdc++5
 
or
 
# pacman -S lib32-libstdc++5
 
  
*Install some dependencies
+
*[[Install]] the {{Pkg|psutils}}, {{Pkg|bc}}, {{Pkg|libstdc++5}} packages ({{Pkg|lib32-libstdc++5}} on 64bit).
# pacman -S psutils bc
 
  
*Download the source code of the driver (tar.gz) from [http://www.avasys.jp/lx-bin2/linux/laser/DL2.do avasys website] and unpack it.
+
* Download the source code of the driver.
 
* Compile and install the driver.  
 
* Compile and install the driver.  
  
Line 108: Line 400:
 
  # make install
 
  # make install
  
*Edit the path of pstops in /usr/bin/pstolps5000.sh according to this:
+
If you have any problems on a 64 system, some other lib32 libraries may be required. Please adjust this page if that is the case.
 +
 
 +
==HP==
 +
 
 +
See also [[CUPS/Troubleshooting#HP issues]].
 +
 
 +
Most HP printers will use {{Pkg|hplip}}, but some may use {{AUR|hpoj}}.
 +
 
 +
{| class="wikitable"
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|-
 +
| Photosmart 2575 || {{Pkg|hplip}} || Or use the hpijs driver in [[CUPS#Foomatic|foomatic]].
 +
|-
 +
| DeskJet 710C || rowspan="8" | {{AUR|pnm2ppa}} ||
 +
|-
 +
| DeskJet 712C ||
 +
|-
 +
| DeskJet 720C ||
 +
|-
 +
| DeskJet 722C ||
 +
|-
 +
| DeskJet 820se ||
 +
|-
 +
| DeskJet 820Cxi ||
 +
|-
 +
| DeskJet 1000Cse ||
 +
|-
 +
| DeskJet 1000Cxi ||
 +
|-
 +
| LaserJet P1606dn || {{pkg|hplip}} + {{aur|hplip-plugin}} || Or {{aur|foo2zjs-nightly}}.
 +
|-
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|}
 +
 
 +
====== HPLIP Driver ======
 +
 
 +
{{pkg|hplip}} provides drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet, and some LaserJet printers, and also provides an easy to use setup tool.
 +
 
 +
To run the setup tool with the GUI qt frontend:
 +
# hp-setup -u
 +
 
 +
To run the setup tool with the command line frontend:
 +
# hp-setup -i
 +
 
 +
To set up directly the configuration of a network connected HP printer:
 +
# hp-setup -i ''<ip address>''
 +
 
 +
To run systray spool manager:
 +
$ hp-systray
 +
 
 +
To generate a URI for a given ip address:
 +
# hp-makeuri ''<ip address>''
 +
 
 +
PPD files are in {{ic|/usr/share/ppd/HP/}}.
  
$ diff pstolps5000.sh.orig /usr/bin/pstolps5000.sh
+
For printers that require the proprietary HP plugin (like the Laserjet Pro P1102w or 1020), install the {{AUR|hplip-plugin}} package from [[AUR]].
212c212
 
< rotator="" && test "$useRotator" = "on" && rotator="| pstops -q $pstops1 $pstops2"
 
---
 
> rotator="" && test "$useRotator" = "on" && rotator="| /usr/bin/pstops -q $pstops1 $pstops2"
 
  
*Restart cups
+
{{Note|
 +
{{Pkg|hplip}} depends on {{Pkg|foomatic-db-engine}} which prevents the drivers list from appearing when a printer is added to CUPS via the web user interface (following error : "Unable to get list of printer drivers"). Possible workarounds:
 +
* '''Either:''' Install {{Pkg|hplip}} first, then retrieve the PPD file that matches your printer from {{ic|/usr/share/ppd/HP/}}. Next, remove {{Pkg|hplip}} entirely as well as any unnecessary dependencies. Finally, install the printer manually using the CUPS web UI, selecting the PPD file you retrieved, and then re-install {{Pkg|hplip}}. After a reboot, you should have a fully working printer.
 +
* '''Or:''' Remove {{Pkg|hplip}}, {{Pkg|foomatic-db}} and {{Pkg|foomatic-db-engine}} along with any unnecessary dependencies. Reinstall {{Pkg|hplip}} and restart CUPS. Install your printer using the CUPS web UI, which should now be able to find the drivers automatically. No reboot needed.}}
  
# /etc/rc.d/cupsd restart
+
==Konica==
  
* Install the printer through cups web interface, the printer was detected as a socket://XXX.XXX.XXX.XXX
+
{| class="wikitable"
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|-
 +
| Minolta Magicolor 1600W || rowspan=7 | [[CUPS#Foomatic|foomatic]] ||
 +
|-
 +
| Minolta Magicolor 1680MF ||
 +
|-
 +
| Minolta Magicolor 1690MF ||
 +
|-
 +
| Minolta Magicolor 2480MF ||
 +
|-
 +
| Minolta Magicolor 2490MF ||
 +
|-
 +
| Minolta Magicolor 2530DL ||
 +
|-
 +
| Minolta Magicolor 4690MF ||
 +
|-
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|}
  
* Select the Esc Pages driver LP-S5000 (the one installed).
+
==Lexmark==
  
* Print test page: OK
+
===Utilities===
  
If you have any problems on a 64 system, some other lib32 libraries may be required. These instruction may be useful for other printer working with driver from avasys website.
+
Lexmark provides a utility called lexijtools with the drivers.
  
==FX==
+
===Custom drivers===
=== 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:
+
Lexmark does provide Linux drivers for all their hardware.
# pacman -S cpio rpmunpack cups ghostscript gsfonts
+
The following packages are required:
  
*Get the FX GNU/Linux driver [http://www.fujixeroxprinters.com/downloads/uploaded/Drivers/DocuPrint%20C1110%20C1110B/linux/fxlinuxprint-1.0.1-1.i386.zip here].
+
*{{Pkg|cups}}
 +
*{{Pkg|sane}}
 +
*{{Pkg|ncurses}}
 +
*{{Pkg|libusb}}
 +
*{{Pkg|libxext}}
 +
*{{Pkg|libxtst}}
 +
*{{Pkg|libxi}}
 +
*{{Pkg|libstdc++5}}
 +
*{{Pkg|krb5}}
 +
*{{Pkg|lua}} (for the automated installer)
 +
*[[Java]] (for the automated installer, and some of the Lexmark tools)
  
*Unzip {{ic|fxlinuxprint-1.0.1-1.i386.zip}} to /var/tmp (the directory is not important):
+
The drivers will need to be [http://support.lexmark.com/index?page=driversdownloads downloaded] from Lexmark's website. Preferably, create a package (see [[Creating packages]]) and install it. Here is a basic [[PKGBUILD]] that still needs work but will give an idea of what is required.
  $ unzip fxlinuxprint-1.0.1-1.i386.zip -d /var/tmp
 
  
*Continue extracting the file:
+
{{hc|PKGBUILD|<nowiki>
$ cd /var/tmp
+
# Contributor: Todd Partridge (Gen2ly) toddrpartridge (at) yahoo
$ rpmunpack fxlinuxprint-1.0.1-1.i386.rpm
 
$ gunzip fxlinuxprint-1.0.1-1.cpio.gz
 
  
*Move the cpio DST file (for convenience):
+
pkgname=cups-lexmark-Z2300-2600
$ mkdir /var/tmp/DST
+
pkgver=1
$ mv fxlinuxprint-1.0.1-1.cpio /var/tmp/DST
+
pkgrel=1
 +
pkgdesc="Lexmark Z2300 and 2600 Series printer driver for cups"
 +
arch=('i686')
 +
url="http://www.lexmark.com/"
 +
license=('custom')
 +
depends=('cups' 'glibc' 'ncurses' 'libusb' 'libxext' 'libxtst' 'libxi' 'libstdc++5' 'krb5' 'lua' 'java-runtime')
 +
conflicts=('z600' 'cjlz35le-cups' 'cups-lexmark-700')
 +
source=(lexmark-inkjet-08-driver-1.0-1.i386.tar.gz.sh)
 +
md5sums=(3c37eb87e3dad4853bf29344f9695134)
  
*Extract it:
 
$ cd /var/tmp/DST
 
$ cpio -id < fxlinuxprint-1.0.1-1.cpio
 
  
*Filter the relevant files:
+
package() {
$ cd /var/tmp
+
  # Extract installer
$ find /var/tmp/DST -type f |cat -n
+
  sh lexmark-inkjet-08-driver-1.0-1.i386.tar.gz.sh --target Installer-Files
    1 /var/tmp/DST/etc/cups/mimefx.convs
+
  cd Installer-Files
    2 /var/tmp/DST/etc/cups/mimefx.types
+
  mkdir Driver
    3 /var/tmp/DST/usr/lib/cups/filter/pdftopjlfx
+
  tar xvvf instarchive_all --lzma -C Driver/
    4 /var/tmp/DST/usr/lib/cups/filter/pstopdffx
+
  cd Driver
    5 /var/tmp/DST/usr/lib/cups/filter/pdftopdffx
+
  tar xv lexmark-inkjet-08-driver-1.0-1.i386.tar.gz -C $pkgdir
    6 /var/tmp/DST/usr/share/cups/model/FujiXerox/en/fxlinuxprint.ppd
+
}
 +
</nowiki>}}
  
*Copy the files found in the previous step to /
+
Keep in mind you can use the automated installer but doing so will leave the resulting changes untracked. The PPD will be installed into {{ic|/usr/local/lexmark/lxk08/etc/}} or similar, depending on the printer model.
{{Note|For the PPD use {{ic|/usr/share/cups/model/fxlinuxprint.ppd}}}}
 
  
*Access http://localhost:631/ and add the lpd://f.q.d.n/queue printer, aunthenticating as root.
+
==Oki==
  
*Go through "Manage Printer" and "Set Printer Options".
+
{| class="wikitable"
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|-
 +
| C110|| [[CUPS#Foomatic|foomatic]] ||
 +
|-
 +
| MC561|| [[CUPS#Foomatic|foomatic-db-nonfree]] ||
 +
|-
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|}
  
*Print a test page (substitue color103 with the assigned printer name):
+
==Samsung==
$ lpq -P color103
 
color103 is ready
 
no entries
 
  
==HP==
+
{{Accuracy|All the cnijfilter drivers appear to be for Canon printers - maybe the cnijfilter comment would be better off in the Canon section?}}
===Deskjet 700 Series===
 
====Printing does not work====
 
The solution is to install the [[Arch User Repository|AUR]] package {{AUR|pnm2ppa}}, which provides a printer filter of the same name for the HP Deskjet 700 series. Without this, the print jobs will be aborted by the system.
 
  
=== HP LaserJet 1010 ===
+
For printers requiring the ''cnijfilter'' drivers, search for the correct driver [https://aur.archlinux.org/packages.php?K=cnijfilter in the AUR]
A solution to make LaserJet 1010 work with CUPS may be to compile a newer version of GhostScript:
 
{{bc|
 
$ 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
 
}}
 
  
Setting {{ic|LogLevel}} may also need to be set in {{ic|/etc/cups/cupsd.conf}} to {{ic|debug2}}, this way the logs will show how to circumvent minor issues, such as missing fonts.  Search Google for [http://www.google.com/search?q=n019003l+filetype%3Apfb n019003l filetype:pfb]
+
{| class="wikitable"
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|-
 +
| ML-2010 || {{Pkg|splix}} ||
 +
|-
 +
| SCX-4200 || {{Pkg|splix}} ||
 +
|-
 +
| Newer printers? || {{AUR|samsung-unified-driver}} ||
 +
|-
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|}
  
The debug solution might work if getting errors similar to 'Unsupport PCL', etc. See: [http://linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1010 OpenPrinting database - Printer: HP LaserJet 1010]
+
==Xerox or FujiXerox==
  
===LaserJet 1020===
+
{| class="wikitable"
====Installation from AUR====
+
! Printer
Install the package {{AUR|foo2zjs}} from the [[Arch User Repository|AUR]] and modify the [[PKGBUILD]]. Change the line:
+
! Driver/filter
./getweb all
+
! Notes
to
+
|-
./getweb 1020
+
| DocuPrint 203A || {{Pkg|hplip}} || Using the '''DocuPrint P8e(hpijs)''' driver, or the Brother driver on FujiXerox's website (see [[#Brother]] for more information on how to install custom Brother drivers).
 +
|-
 +
| Phaser 3100MFP || Install Xerox's driver || See [[#Phaser 3100MFP]] for more instructions.
 +
|-
 +
| Phaser 6115MFP || [[CUPS#Foomatic|foomatic]] ||
 +
|-
 +
| Phaser 6121MFP || [[CUPS#Foomatic|foomatic]] ||
 +
|-
 +
| ? || {{AUR|fxlinuxprint}}{{Broken package link|{{aur-mirror|fxlinuxprint}}}} ||
 +
|-
 +
! Printer
 +
! Driver/filter
 +
! Notes
 +
|}
  
If getting errors with incorrect md5sums, the md5sum of {{ic|foo2zjs.tar.gz}} in the PKGBUILD should be changed to match the downloaded driver.
+
===Custom drivers===
  
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.
+
====Phaser 3100MFP====
  
====Manual installation====
 
This section details the setup of the HP Laserjet 1020 by manually downloading and compiling the '''foo2zjs''' driver.
 
 
{{Warning|This section involves installing packages without [[pacman]]. These directions should ideally be automated with a [[PKGBUILD]].}}
 
{{Warning|This section involves installing packages without [[pacman]]. These directions should ideally be automated with a [[PKGBUILD]].}}
=====Packages=====
 
Only {{Pkg|CUPS}} and {{Pkg|GhostScript}} are needed to set up the HP Laserjet 1020.
 
# pacman -S cups ghostscript
 
The [http://www.linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1020 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: [http://foo2zjs.rkkda.com/ foo2zjs: a linux printer driver for ZjStream protocol].
+
Once you have downloaded the drivers, execute the driver installer and accept the licence:
 +
# cd printer
 +
# ./XeroxPhaser3100.install
 +
Note that the driver is 32 bit, so some 32 bit libraries will be required on an x86_64 system.
  
Firstly, download the driver:
+
For the scanner, create an /etc/sane.d directory if it doesn't already exist, because it's need by the installer:
  $ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz
+
  # mkdir -p /etc/sane.d
And unpack it:
+
Now install the driver:
  $ tar zxf foo2zjs.tar.gz
+
  # cd scanner/
$ cd foo2zjs
+
  # ./XeroxPhaser3100sc.install
The driver is now compiled:
+
Again, on an x86_64 install, 32 bit libraries will be needed.
  $ make
 
$ ./getweb 1020
 
# make install
 
# make install-hotplug
 
# make cups
 
  
=====Configuration=====
+
====Phaser 6000B====
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 CUPS daemon is running and added to the {{ic|/etc/rc.conf}} file:
+
[[Install]] the [https://github.com/aur-archive/xerox-phaser-6010 xerox-phaser-6010] package (archived from the AUR).
# /etc/rc.d/cupsd start
+
The driver may require older versions of {{Pkg|nettle}} and {{Pkg|gnutls}} to be installed, since the binary blob linked against older versions of the shared libraries provided by those packages. The oldest known-good versions are {{ic|nettle-2.7.1-1}} and {{ic|gnutls-3.3.13-1}}.
{{hc|/etc/rc.conf|2=DAEMONS=(... '''cupsd''' crond ...)}}
 
  
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:
+
====Phaser 6125N====
# rmmod usblp
 
The printer can be added to the system with CUPS http://localhost:631/
 
{{Note|The '''usblp''' module must be removed '''after''' the firmware is loaded to the printer, and '''before''' any printing job is submitted.}}
 
The reason for this has been [https://bbs.archlinux.org/viewtopic.php?pid=639930#p639930 explained on the forum].
 
  
===Firmware for HPLIP===
+
{{Warning|This section involves installing packages without [[pacman]]. These directions should ideally be automated with a [[PKGBUILD]].}}
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==
+
FujiXerox does not support Linux on this model. An old rpm [http://onlinesupport.fujixerox.com/tiles/common/hc_drivers_download.jsp?system=%27Linux%27&shortdesc=null&xcrealpath=http://www.fujixeroxprinters.com/downloads/uploaded/dpc525a_linux_.0.0.tar_81c2.zip is available] but does not seem to work.
The first step is to scan the Airport Express station. It seems that there are different addresses depending on the model:
 
{{bc|
 
[root@somostation somos]# nmap 192.168.0.4
 
  
Starting Nmap 4.20 ( http://insecure.org ) at 2007-06-26 00:50 CEST
+
A slightly adapted [https://rickvanderzwet.nl/trac/personal/wiki/XeroxPhaser6125N custom driver] has been found to work out of the box.
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. Note the port of the '''jetdirect''' service, and edit {{ic|printer.conf}}. The '''DeviceURI''' entry should be '''socket://''', followed by your station IP address, a colon, and the '''jetdirect''' port number.
+
To install the tarball, run
{{hc|/etc/cups/printer.conf|# Printer configuration file for CUPS v1.2.11
+
# tar -C / --keep-newer-files -xvzf cups-xerox-phaser-6125n-1.0.0.tar.gz
# 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.
 

Latest revision as of 05:28, 20 April 2017

Related articles

This article contains printer or manufacturer-specific instructions for CUPS. See OpenPrinting if your printer is not already listed here, or if none of the listed drivers work.

Note: If you add a printer to this list, consider contributing your entry to OpenPrinting - that way users of other distributions will also benefit!

Brother

Printer Driver/filter Notes
DCP-135C brother-dcp135cAUR
DCP-150C brother-dcp150cAUR
DCP-7020 foomatic Or Brother's driver.
DCP-7030 brother-dcp7030AUR
DCP-7065DN brother-dcp7065dnAUR
FAX-2820 brother-cups-wrapper-laserAUR
FAX-2840 brother-fax2840AUR Or foomatic - works mostly with hpijs-pcl5e.ppd. Same as the HL-2170W.
HL-2030 foomatic Or brother-hl2030AUR
HL-2035 foomatic Should be compatible with any drivers for the HL-2030.
HL-2040 foomatic Or brother-hl2040AUR
HL-2130 foomatic (using the HL-2140 driver) Or hplip
HL-2140 foomatic Or brother-hl2140AUR
HL-2170W foomatic Or Brother's driver.
HL-2230 foomatic Same as HL-2170W. Select HL-2170W as the driver in CUPS admin when adding a printer.
HL-2250DN brother-hl2250dnAUR
HL-2270DW brother-hl2270dwAUR
HL-2280DW brother-hl2280dwAUR
HL-2340DW brother-hll2340dwAUR
HL-3045CN Install Brother's driver.
HL-3150CDW brother-hl3150cdwAUR
HL-3170CDW brother-hl3170cdwAUR
HL-5140 foomatic Or Brother's driver.
HL-5340 foomatic Using the Generic PCL 6/PCL XL Printer - CUPS+Gutenprint (gutenprint, foomatic-db-gutenprint[broken link: package not found] and foomatic-db-gutenprint-ppds). Or Brother's driver, which may result in failed prints with postscript errors.
HL-L2300D brother-hll2300dAUR
HL-L2380DW brother-hll2380dwAUR
MFC-420CN brother-mfc-420cnAUR[broken link: archived in aur-mirror]
MFC-440CN brother-mfc-440cnAUR
MFC-465CN brother-mfc-465cnAUR[broken link: archived in aur-mirror]
MFC-7360N Install Brother's driver.
MFC-9320CW Install Brother's driver.
MFC-9332CDW brother-mfc-9332cdwAUR
MFC-9840CDW foomatic Or Brother's driver. This printer also works with the generic PCL-6 driver from the gutenprint package. Use pcl_p1 for the printer's address when using the PCL-6 driver.
MFC-J470DW brother-mfc-j470dwAUR
MFC-J5520DW brother-mfc-j5520dwAUR
MFC-J5910DW brother-mfc-j5910dwAUR
MFC-J650DW Install Brother's driver.
MFC-J885DW brother-mfc-j885dwAUR
MFC-L2700DW brother-mfc-l2700dwAUR Please look also at the comments section of the AUR package page.
QL-500 brother-ql500AUR
QL-570 brother-ql570AUR
QL-580N brother-ql580nAUR
QL-650TD brother-ql650tdAUR
QL-700 brother-ql700AUR
QL-710W brother-ql710wAUR
QL-720NW brother-ql720nwAUR
QL-1050 brother-ql1050AUR
QL-1050N brother-ql1050nAUR
QL-1060 brother-ql1060nAUR
TD-2020 brother-td2020AUR
TD-2120N brother-td2120nAUR
TD-2130N brother-td2130nAUR
TD-4000 brother-td4000AUR
TD-4100N brother-td4100nAUR
Printer Driver/filter Notes

Network printers

For network printers, use ipp://printer_ip/ipp/port1 as printer address. For some older printers, this might not work. If not, try lpd://printer_ip/BINARY_P1 instead.

Some printers use the socket protocol. For these printers, use socket://printer_ip:9100. For http, use http://printer_ip/POSTSCRIPT_P1.

Custom drivers

Brother provides custom drivers on their website, either in source tarball, rpm, or deb form. Packaging Brother printer drivers covers creating PKGBUILDs from the existing RPM packages.

Note: The source packages might be a better alternative to the rpm packages, provided they contain all the needed files.

Manually installing from the RPM packages

Warning: This should ideally be automated in a PKGBUILD

Install the rpmextract package, and extract both rpm packages using rpmextract.sh. Extracting both files will create a var and a usr directory - move the contents of both directories into the corresponding root directories.

Run the cups wrapper file in /usr/local/Brother/cupswrapper. This should automatically install and configure your brother printer.

Multiple Copy Problem

Sometimes when using the latest drivers, the printer will print multiple copies (for instance a MFC-9330CDW printed 10 copies). The solution is to update the firmware (there is a windows tool, but it didn't work for me).

Install net-snmp and run:

snmpwalk -c public $PRINTER_IP | grep -A 1 3.6.1.4.1.2435.2.4.3.99.3.1.6.1.2

At this point, you will have the relevant data to get a valid firmware download link from Brother. The file should look similar to the one below:

request.xml
 <REQUESTINFO>
    <FIRMUPDATETOOLINFO>
        <FIRMCATEGORY>MAIN</FIRMCATEGORY>
        <OS>LINUX</OS>
        <INSPECTMODE>1</INSPECTMODE>
    </FIRMUPDATETOOLINFO>
 
    <FIRMUPDATEINFO>
        <MODELINFO>
            <SELIALNO></SELIALNO>
            <NAME>MFC-9330CDW</NAME>
            <SPEC>0401</SPEC>
            <DRIVER></DRIVER>
            <FIRMINFO>
                <FIRM>
                    <ID>MAIN</ID>
                    <VERSION>R1506121801:4504</VERSION>
                </FIRM>
                <FIRM>
                    <ID>SUB1</ID>
                    <VERSION>1.07</VERSION>
                </FIRM>
                <FIRM>
                    <ID>SUB2</ID>
                    <VERSION>L1505291600</VERSION>
                </FIRM>
            </FIRMINFO>
        </MODELINFO>
        <DRIVERCNT>1</DRIVERCNT>
        <LOGNO>2</LOGNO>
        <ERRBIT></ERRBIT>
        <NEEDRESPONSE>1</NEEDRESPONSE>
    </FIRMUPDATEINFO>
 </REQUESTINFO>

Post this file to Brother:

curl -X POST -d @request.xml https://firmverup.brother.co.jp/kne_bh7_update_nt_ssl/ifax2.asmx/fileUpdate -H "Content-Type:text/xml" > response.xml

In response.xml you will find a <PATH> tag that contains the firmware download URL. Next, download the firmware, push it to the printer, and let the printer process it. Before that is done, change the Admin password to something known, it will be used as the user to log into the FTP site (VERY bad practice, don't do this).

wget http://update-akamai.brother.co.jp/CS/LZ4266_W.djf
ftp $PRINTER_IP
 bin
 hash
 send LZ4266_W.djf
 bye

With that, the printer will restart, and the latest firmware will be installed and (hopefully) your printing woes will be solved.

Canon

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements.Tango-edit-clear.png

Reason: It would good if the driver table could be removed or somehow merged into the main table (Discuss in Talk:CUPS/Printer-specific problems#)
Driver Description
gutenprint Supports many Canon printers.
cndrvcups-lbAUR Canon UFR II /LIPSLX Printer Driver build from source for LBP, iR & MF printers
cndrvcups-lb-binAUR Canon UFR II/UFR II LT Printer Driver (including Canon imageCLASS MF4720w)
cnijfilter-mg4200AUR Canon IJ Printer Driver (for mg4200 series)
capt-srcAUR Canon CAPT Printer Driver (for Canon i-Sensys printers)
cups-bjnpAUR CUPS back-end for the canon printers using the proprietary USB over IP BJNP protocol
Printer Driver/filter Notes
iP4300 gutenprint Or use Canon's cnijfilter-ip4300AUR[broken link: archived in aur-mirror] driver, or the TurboPrint driver.
LBP810 capt-srcAUR
LBP1120
LBP1210
LBP2900
LBP3000
LBP3010
LBP3018
LBP3050
LBP3100
LBP3108
LBP3150
LBP3200
LBP3210
LBP3250
LBP3300
LBP3310
LBP3500
LBP5000
LBP5050 series
LBP5100
LBP5300
LBP6000
LBP6018
LBP6020
LBP6200
LBP6300
LBP6300n
LBP6310dn
LBP7010C
LBP7018C
LBP7200Cdn (network mode)
LBP7200C series
LBP7210Cdn
LBP9100C
Printer Driver/filter Notes

Some Canon printers will use a similar setup to the iP4500, so consider modifying the cnijfilter-ip4500AUR package for other, similar printers.

CARPS

Some of Canon's printers use Canon's proprietary Canon Advanced Raster Printing System (CARPS) driver. Rainbow Software have managed to reverse engineer the CARPS data format and have successfully created a CARPS CUPS driver, which is available as carps-cupsAUR. The project's GitHub page includes a list of working printers.

CAPT

See Canon CAPT.

Dell

Printer Driver/filter Notes
1250C foo2zjs-nightlyAUR See http://cybercom.net/~dcoffin/hbpl, the patch has been merged into upstream. The printer may also work with the Xerox Phaser 6000B driver.
E515,

E515dw

Install Dell's driver. Both e515dwcupswrapper-3.2.0-1.i386.deb and e515dwlpr-3.2.0-1.i386.deb need to be installed. You could either write a PKGBUILD, use debtapAUR, or use dpkgAUR (using dpkg is not recommended as the files will not be managed by pacman). The driver works on both the x86_64 and i386 platforms, but may require multilib.
Printer Driver/filter Notes

Epson

epson-inkjet-printer-escprAUR is a driver for the Epson Inkjet Printer Driver (ESC/P-R) for Linux.

There is a large selection of printer drivers/filters available in the AUR.

Printer Driver/filter Notes
AcuLaser CX11(NF) epson-alcx11-filterAUR
AcuLaser C900 This printer uses Epson's driver, with a device URI of 'usb://EPSON/AL-C900', and may need the pipsplus service to be running.
TX125 epson-inkjet-printer-n10-nx127AUR
LP-S5000 This printer requires a custom driver from Avasys.
Printer Driver/filter Notes

Utilities

escputil

escputil is part of the gutenprint package, and performs some utility functions on Epson printers such as nozzle cleaning.

mtink

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.

Stylus-toolbox

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.

Custom drivers

Avasys

Warning: This section involves installing packages without pacman. These directions should ideally be automated with a PKGBUILD.

"Source" code of the driver is available on the avasys website, in Japanese, however it includes a 32 bit binary which will cause problem on 64 bit system.

  • Download the source code of the driver.
  • Compile and install the driver.
$ ./configure --prefix=/usr
$ make
# make install

If you have any problems on a 64 system, some other lib32 libraries may be required. Please adjust this page if that is the case.

HP

See also CUPS/Troubleshooting#HP issues.

Most HP printers will use hplip, but some may use hpojAUR.

Printer Driver/filter Notes
Photosmart 2575 hplip Or use the hpijs driver in foomatic.
DeskJet 710C pnm2ppaAUR
DeskJet 712C
DeskJet 720C
DeskJet 722C
DeskJet 820se
DeskJet 820Cxi
DeskJet 1000Cse
DeskJet 1000Cxi
LaserJet P1606dn hplip + hplip-pluginAUR Or foo2zjs-nightlyAUR.
Printer Driver/filter Notes
HPLIP Driver

hplip provides drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet, and some LaserJet printers, and also provides an easy to use setup tool.

To run the setup tool with the GUI qt frontend:

# hp-setup -u

To run the setup tool with the command line frontend:

# hp-setup -i

To set up directly the configuration of a network connected HP printer:

# hp-setup -i <ip address>

To run systray spool manager:

$ hp-systray

To generate a URI for a given ip address:

# hp-makeuri <ip address>

PPD files are in /usr/share/ppd/HP/.

For printers that require the proprietary HP plugin (like the Laserjet Pro P1102w or 1020), install the hplip-pluginAUR package from AUR.

Note:

hplip depends on foomatic-db-engine which prevents the drivers list from appearing when a printer is added to CUPS via the web user interface (following error : "Unable to get list of printer drivers"). Possible workarounds:

  • Either: Install hplip first, then retrieve the PPD file that matches your printer from /usr/share/ppd/HP/. Next, remove hplip entirely as well as any unnecessary dependencies. Finally, install the printer manually using the CUPS web UI, selecting the PPD file you retrieved, and then re-install hplip. After a reboot, you should have a fully working printer.
  • Or: Remove hplip, foomatic-db and foomatic-db-engine along with any unnecessary dependencies. Reinstall hplip and restart CUPS. Install your printer using the CUPS web UI, which should now be able to find the drivers automatically. No reboot needed.

Konica

Printer Driver/filter Notes
Minolta Magicolor 1600W foomatic
Minolta Magicolor 1680MF
Minolta Magicolor 1690MF
Minolta Magicolor 2480MF
Minolta Magicolor 2490MF
Minolta Magicolor 2530DL
Minolta Magicolor 4690MF
Printer Driver/filter Notes

Lexmark

Utilities

Lexmark provides a utility called lexijtools with the drivers.

Custom drivers

Lexmark does provide Linux drivers for all their hardware. The following packages are required:

The drivers will need to be downloaded from Lexmark's website. Preferably, create a package (see Creating packages) and install it. Here is a basic PKGBUILD that still needs work but will give an idea of what is required.

PKGBUILD
# Contributor: Todd Partridge (Gen2ly) toddrpartridge (at) yahoo

pkgname=cups-lexmark-Z2300-2600
pkgver=1
pkgrel=1
pkgdesc="Lexmark Z2300 and 2600 Series printer driver for cups"
arch=('i686')
url="http://www.lexmark.com/"
license=('custom')
depends=('cups' 'glibc' 'ncurses' 'libusb' 'libxext' 'libxtst' 'libxi' 'libstdc++5' 'krb5' 'lua' 'java-runtime')
conflicts=('z600' 'cjlz35le-cups' 'cups-lexmark-700')
source=(lexmark-inkjet-08-driver-1.0-1.i386.tar.gz.sh)
md5sums=(3c37eb87e3dad4853bf29344f9695134)


package() {
  # Extract installer
  sh lexmark-inkjet-08-driver-1.0-1.i386.tar.gz.sh --target Installer-Files
  cd Installer-Files
  mkdir Driver
  tar xvvf instarchive_all --lzma -C Driver/
  cd Driver
  tar xv lexmark-inkjet-08-driver-1.0-1.i386.tar.gz -C $pkgdir
}

Keep in mind you can use the automated installer but doing so will leave the resulting changes untracked. The PPD will be installed into /usr/local/lexmark/lxk08/etc/ or similar, depending on the printer model.

Oki

Printer Driver/filter Notes
C110 foomatic
MC561 foomatic-db-nonfree
Printer Driver/filter Notes

Samsung

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: All the cnijfilter drivers appear to be for Canon printers - maybe the cnijfilter comment would be better off in the Canon section? (Discuss in Talk:CUPS/Printer-specific problems#)

For printers requiring the cnijfilter drivers, search for the correct driver in the AUR

Printer Driver/filter Notes
ML-2010 splix
SCX-4200 splix
Newer printers? samsung-unified-driverAUR
Printer Driver/filter Notes

Xerox or FujiXerox

Printer Driver/filter Notes
DocuPrint 203A hplip Using the DocuPrint P8e(hpijs) driver, or the Brother driver on FujiXerox's website (see #Brother for more information on how to install custom Brother drivers).
Phaser 3100MFP Install Xerox's driver See #Phaser 3100MFP for more instructions.
Phaser 6115MFP foomatic
Phaser 6121MFP foomatic
 ? fxlinuxprintAUR[broken link: archived in aur-mirror]
Printer Driver/filter Notes

Custom drivers

Phaser 3100MFP

Warning: This section involves installing packages without pacman. These directions should ideally be automated with a PKGBUILD.

Once you have downloaded the drivers, execute the driver installer and accept the licence:

# cd printer
# ./XeroxPhaser3100.install

Note that the driver is 32 bit, so some 32 bit libraries will be required on an x86_64 system.

For the scanner, create an /etc/sane.d directory if it doesn't already exist, because it's need by the installer:

# mkdir -p /etc/sane.d

Now install the driver:

# cd scanner/
# ./XeroxPhaser3100sc.install

Again, on an x86_64 install, 32 bit libraries will be needed.

Phaser 6000B

Install the xerox-phaser-6010 package (archived from the AUR). The driver may require older versions of nettle and gnutls to be installed, since the binary blob linked against older versions of the shared libraries provided by those packages. The oldest known-good versions are nettle-2.7.1-1 and gnutls-3.3.13-1.

Phaser 6125N

Warning: This section involves installing packages without pacman. These directions should ideally be automated with a PKGBUILD.

FujiXerox does not support Linux on this model. An old rpm is available but does not seem to work.

A slightly adapted custom driver has been found to work out of the box.

To install the tarball, run

# tar -C / --keep-newer-files -xvzf cups-xerox-phaser-6125n-1.0.0.tar.gz