CUPS/Printer-specific problems - ArchWiki

Jump to content
From ArchWiki
< CUPS

Related articles

- CUPS
- CUPS/Troubleshooting

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

Note: Some printer models can be found in several entries because there are several packages or drivers for them.

Drivers for several models:

Printers | Driver/filter | Notes
--- | --- | ---
DCP-1510 series (DCP-1510, DCP-1510r, DCP-1511, DCP-1512, DCP-1512r, DCP-1518) | brother-dcp1510AUR |
DCP-7010, DCP-7020, DCP-7025, DCP-8060, DCP-8065DN, FAX-2820, FAX-2920, HL-2030, HL-2040, HL-2070N, HL-5240, HL-5250DN, HL-5270DN, HL-5280DW, MFC-7220, MFC-7225N, MFC-7420, MFC-7820N, MFC-8460N, MFC-8660DN, MFC-8860DN, MFC-8870DW | brother-cups-wrapper-laserAUR |
HL-4040CN, HL-4040CDN, HL-4050CDN, HL-4070CDW, MFC-9440CN, MFC-9450CDN, MFC-9840CDW, DCP-9040CN, DCP-9042CDN, DCP-9045CDN | brother-cups-wrapper-acAUR |
DCP-1510 series, DCP-1600 series, DCP-7030, DCP-7040, DCP-7055, DCP-7055W, DCP-7060D, DCP-7065DN, DCP-7080, DCP-L2500D series, DCP-L2520D series, DCP-L2540DW series, HL-1110 series, HL-1200 series, HL-2030 series, HL-2140 series, HL-2220 series, HL-2270DW series, HL-5030 series, HL-L2300D series, HL-L2320D series, HL-L2340D series, HL-L2360D series, MFC-1910W, MFC-1919NW, MFC-7240, MFC-7360N, MFC-7365DN, MFC-7840W, Lenovo M7605D | brlaserAUR brlaser-gitAUR | Unofficial driver, may be compatible with more models

Drivers for one model:

Printer | Driver/filter | Notes
--- | --- | ---
DCP-135C | brother-dcp135cAUR |
DCP-150C | brother-dcp150cAUR |
DCP-150C | brother-dcp150cAUR |
DCP-2550DW | brother-dcp-l2550dwAUR |
DCP-B7500D | brother-dcpb7500dAUR |
DCP-L3550CDW | brother-dcpl3550cdwAUR | Use IPP driver as described here and here.
DCP-7020 | foomatic | Or Brother's driver.
DCP-7030 | brother-dcp7030AUR |
DCP-7065DN | brother-dcp7065dnAUR |
DCP-7090DW | brother-dcp7090dwAUR |
DCP-9020CDW | brother-dcp-9020cdwAUR |
DCP-J515W | brother-dcp-j515wAUR |
DCP-J4110DW | brother-dcpj4110dwAUR |
DCP-J1200W | brother-dcpj1200wAUR | "DCPJ1200W" is added automatically to cups when installing this aur package. multilib not required. SANE drivers for this model: brscan5AUR
FAX-2820 | brother-cups-wrapper-laserAUR |
FAX-2840 | brother-fax2840AUR | Or foomatic - works mostly with `hpijs-pcl5e.ppd`. Same as the HL-2170W.
FAX-2940 | brother-fax2940AUR |
HL-1110 | brlaser-gitAUR | Tested and it works
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-2135W | brother-brgenml1AUR |
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-brgenml1AUR | brother-hl2250dnAUR is broken?
HL-2270DW | brother-hl2270dwAUR |
HL-2280DW | brother-hl2280dwAUR |
HL-3045CN | Install Brother's driver or brother-hl3040cnAUR. |
HL-3140CW | brother-hl3140cwAUR | Use IPP and Brother's driver to avoid page-shrinking and endless blank printouts
HL-3150CDW | brother-hl3150cdwAUR |
HL-3170CDW | brother-hl3170cdwAUR |
HL-4150CDN | brother-hl4150cdnAUR |
HL-5140 | foomatic | Or Brother's driver.
HL-5340 | foomatic | Using the Generic PCL 6/PCL XL Printer - CUPS+Gutenprint (gutenprint and foomatic-db-gutenprint-ppds). Or Brother's driver, which may result in failed prints with postscript errors.
HL-L2300D | brother-hll2300dAUR | brlaser-gitAUR works better. Using the brother driver, only defaults are honored and print-specific settings are ignored.
HL-L2340DW | brother-hll2340dwAUR |
HL-L2350DW | brother-hll2350dwAUR |
HL-L2360DN | brother-hll2360dAUR | Or brlaser-gitAUR
HL-L2360DW | brother-hll2360dAUR | brlaser-gitAUR should works.
HL-L2365DW | brother-hll2360dAUR | brlaser-gitAUR should works.
HL-L2380DW | brother-hll2380dwAUR |
HL-L2395DW | brother-hll2395dwAUR | Use the `socket` protocol as described in #Network printers
HL-L3230CDW | brother-hll3230cdwAUR | Or https://github.com/splitbrain/archlinux-brother-hll3230cdw
HL-L3270CDW | brother-hll3270cdwAUR | Use the `lpd` protocol as described in #Network printers.
HL-L5100DN | HP LaserJet Foomatic driver | This model will emulate a HP LaserJet. Use the `lpd` protocol as described in #Network printers.
HL-L8360CDW | brother-hll8360cdw-cups-binAUR |
MFC-420CN | brother-mfc-420cnAUR |
MFC-440CN | brother-mfc-440cnAUR |
MFC-7360N | brother-mfc7360nAUR | Or brlaser-gitAUR
MFC-7460DN | Gutenprint | Use the Generic PCL 6 Printer wide margin - CUPS+Gutenprint driver, with address `ipp://hostname-or-ip/pcl_p1`.
MFC-7840W | brother-mfc-7840wAUR | Or brlaser-gitAUR
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-J1300DW | brother-mfc-j1300dwAUR | Use the `ipp` protocol as described in #Network printers.
MFC-J435W | brother-mfc-j435wAUR | Use `lpd://[printer_addr]/BINARY_P1` or `http://[printer_addr]/POSTSCRIPT_P1` as described in the comments section of the AUR package page.
MFC-J470DW | brother-mfc-j470dwAUR | Use the `ipp` protocol as described in #Network printers.
MFC-J4710DW | brother-mfc-j4710dwAUR |
MFC-J480DW | brother-mfc-j480dwAUR | Use the `ipp` protocol as described in #Network printers.
MFC-J5520DW | brother-mfc-j5520dwAUR |
MFC-J5845DW | brother-mfc-j5845dwAUR | Use the `ipp` protocol as described in #Network printers.
MFC-J5910DW | brother-mfc-j5910dwAUR |
MFC-J650DW | Install Brother's driver. |
MFC-J885DW | brother-mfc-j885dwAUR |
MFC-J985DW | brother-mfc-j985dwAUR |
MFC-L2700DN | brother-mfc-l2700dnAUR | Please look also at the comments section of the AUR package page.
MFC-L2700DW | brother-mfc-l2700dwAUR | Please look also at the comments section of the AUR package page.
MFC-L2710DN | brother-mfc-l2700dnAUR | Use the `ipp` protocol as described in #Network printers.
MFC-L2710DW | brother-mfc-l2710dwAUR | Use the `lpd` protocol as described in #Network printers.
MFC-L2720DW | brother-mfc-l2720dwAUR | Please look also at the comments section of the AUR package page.
MFC-L2730DW | brother-mfc-l2730dwAUR | Please look also at the comments section of the AUR package page.
MFC-L2740DW | brother-mfc-l2740dwAUR | Please look also at the comments section of the AUR package page.
MFC-L5800DW | brother-mfc-l5750dwAUR |
MFC-L8600CDW | brother-mfc-l8600cdwAUR | Please follow the instructions on the AUR 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 |
QL-1110NWB | brother-ql1110nwbAUR |
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.

For some of the drivers 32 bit libraries may need to be installed from multilib.

### Updating the firmware

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

Or alternatively:

    $ snmpwalk -v 2c -c public 192.168.23.11 iso.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, do not do this).

    $ wget http://update-akamai.brother.co.jp/CS/LZ4266_W.djf[dead link 2023-07-30 ⓘ]
    $ ftp $PRINTER_IP|
    ftp> bin
    ftp> hash
    ftp> send LZ4266_W.djf
    ftp> bye

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

### IPP-over-USB

You might experience some trouble while using the USB port on certain models.

Brother provides a shell script to create udev rules to prevent the use of IPP-over-USB. This might solve USB printing problems but means that you need to use the legacy LPR driver. See the FAQ article.

## Canon

There are many possible drivers for Canon printers. Many Canon printers are supported by Gutenprint and foomatic-db-ppds. Some of Canon's LBP, iR, and MF printers use a driver supporting the UFR II/UFR II LT/LIPSLX protocols, #UFRII . Others use the #CARPS, or #cnijfilter (cnijfilter2AUR / cnijfilter2-binAUR), or Canon CAPT drivers.

Printer | Driver/filter | Notes
--- | --- | ---
iP4300 | Gutenprint | Or use the TurboPrint driver.
PIXMA G4000 series | Misidentifies itself as Canon G3010 Series. Use Canon PIXMA G4000 - CUPS+Gutenprint driver instead.
LBP810 | Canon CAPT |
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 |
LBP7110cw (network mode) | cnrdrvcups-lbAUR v 5.00
MF216n (network over ldp) | cndrvcups-lb-binAUR |
MF635Cx |
MF4720w |
MF4770n |
MF8080Cw | See CUPS#Network for discovery.
MG4200 series | cnijfilter-mg4200AUR | Avoid the web interface when adding the printer as it will not find the PPD file.
MB2350 | cnijfilter2AUR cnijfilter2-binAUR |
MX490 |
MX492 |
TR8500 series |
TS202 |
TS3100 series |
TS8050 | Without cnijfilter2AUR printing will fail with a filter error or you might get "Rendering Completed" and nothing will print
TS9020 | canon-ts9020AUR |
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.

### UFRII

Many LBP, iR, and MF printers use a protocol that has had several names over the years: UFR II, UFR II LT, LIPSLX. There are multiple packages for these printers in AUR, and at least the imageCLASS MF4570dn and i-sensys MF633C are reported to only work with the older v3.70 version.

cnrdrvcups-lbAUR v 5.00: latest version built from source

cndrvcups-lbAUR 3.70 and cndrvcups-common-lbAUR 4.10: older version built from source

cndrvcups-lb-binAUR v3.70: uses Canon provided binaries with location/config adjustments to make them work on Arch Linux

### CARPS

Some of Canon's printers use Canon's proprietary CARPS (Canon Advanced Raster Printing System) 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-cups-gitAUR. The project's GitHub page includes a list of working printers.

### USB over IP (BJNP)

Some Canon printers use Canon's proprietary USB over IP BJNP protocol to communicate over the network. There is a CUPS backend for this, which is available as cups-bjnpAUR.

### cnijfilter

Some printers using the cnijfilter drivers support the `cnijnet` protocol. To find the printer URI run

    $ cnijnetprn --search auto

and use the `cnijnet:/` URI in the output.

Other driver versions, as is the case for the current version of cnijfilter2AUR, provide the `cnijlgmon3` binary to search for available printers.

    $ cnijlgmon3

    network cnijbe2://Canon/?port=net&serial=60-12-81-A7-7D-34 "Canon MB2300 series" "Canon-MB2300-series_60-12-81-A7-7D-34"

The printer can be added to cups using the `cnijbe2` url and an appropriate `.ppd` file, which should be shipped with your driver.

    $ lpadmin -p CustomPrinterNameMB2300 -P /usr/share/cups/model/canonmb2300.ppd -v "cnijbe2://Canon/?port=net&serial=60-12-81-A7-7D-34" -E

The argument `serial` in the cnijbe2 url corresponds to the MAC address of the printer.

### IPP Everywhere

For recent Canon printers, like the G7000 series, it can be hard to find a valid driver. However, it is possible to use a driverless installation using IPP Everywhere.

If you have installed avahi, CUPS should be able to detect your printer automatically.

However, if it fails, you can always enter your printer settings manually. In CUPS web interface select `Internet Printing Protocol (ipp)` and enter the IPP URL of the printer. Then at the driver selection screen select`Generic > {current_make_and_model} - IPP Everywhere ™`.

For the G7000 series the IPP URL is `ipp://<printer_ip>` or `ipps://<printer_ip>`.

## Dell

Printer | Driver/filter | Notes
--- | --- | ---
1250C | foo2zjs-nightlyAUR | The printer may also work with the Xerox Phaser 6000B driver.
C1660NW
E515 | 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 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.
E515dw
S1130n | dell-unified-driverAUR | Driver conflicts with samsung-unified-driver-printer (as the dell-unified-driver appears to be based on the Samsung one, and they create several of the same files)
1130
1133
1135n
1815
2145cn
2335dn
2355dn
5330
B1160
B1160w
B1165nfw
B1260dn
B1265dfw
B1265dnf
B2365dnf
Printer | Driver/filter | Notes

## Epson

epson-inkjet-printer-escprAUR and epson-inkjet-printer-escpr2AUR are sets of drivers using the Epson Inkjet Printer Driver (ESC/P-R) for Linux.

Printer | Driver/filter | Notes
--- | --- | ---
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.
EC-4020 | epson-inkjet-printer-escpr2AUR |
EC-4030 |
EC-4040 |
EC-C7000 |
EP-50V | epson-inkjet-printer-escpr2AUR |
EP-879A |
EP-880A |
EP-881A |
EP-882A |
EP-883A |
EP-884A |
EP-885A |
EP-982A3 |
ET-2700 | epson-inkjet-printer-escprAUR |
ET-2750 |
ET-2830 | epson-inkjet-printer-escpr2AUR |
ET-2840 |
ET-3700 |
ET-3710 |
ET-3750 |
ET-3760 |
ET-3800 |
ET-3830 |
ET-3840 |
ET-3850 |
ET-4750 |
ET-4760 |
ET-4810 |
ET-4850 |
ET-5150 |
ET-5170 |
ET-5180 |
ET-5800 |
ET-5850 |
ET-5880 |
ET-8500 |
ET-8550 |
ET-8700 |
ET-14100 |
ET-15000 |
ET-16150 |
ET-16600 |
ET-16650 |
ET-16680 |
ET-18100 |
ET-M1140 |
ET-M1170 |
ET-M1180 |
ET-M2140 |
ET-M2170 |
ET-M3140 |
ET-M3170 |
ET-M3180 |
ET-M16600 |
ET-M16680 |
EW-M571T | epson-inkjet-printer-escprAUR |
EW-M530F | epson-inkjet-printer-escpr2AUR |
EW-M630T |
EW-M634T |
EW-M670FT |
EW-M674FT |
EW-M752T |
EW-M754T |
EW-M873T |
EW-M973A3T |
EW-M5610FT |
L380 | epson-inkjet-printer-201601wAUR |
L382 |
L3150 | epson-inkjet-printer-escprAUR |
L3550 | epson-inkjet-printer-escpr2AUR |
L3560 |
L4150 | epson-inkjet-printer-escprAUR |
L4160 |
L5590 | epson-inkjet-printer-escpr2AUR |
L6160 |
L6170 |
L6190 |
L6260 |
L6270 |
L6290 |
L6460 |
L6490 |
L6550 |
L6570 |
L6580 |
L8050 |
L8160 |
L8180 |
L11050 |
L11160 |
L14150 |
L15150 |
L15160 |
L15180 |
L18050 |
LP-S5000 |  | This printer requires a custom driver from Avasys.
M1050 | epson-inkjet-printer-escpr2AUR |
M1140 |
M1170 |
M1180 |
M2050 |
M2140 |
M2170 |
M3140 |
M3170 |
M3180 |
M15140 |
M15180 |
PM-520 | epson-inkjet-printer-escpr2AUR |
PX-M270FT | epson-inkjet-printer-escpr2AUR |
PX-M270T |
PX-M380F |
PX-M381FL |
PX-M382F |
PX-M680F |
PX-M730F |
PX-M780F |
PX-M781F |
PX-M791FT |
PX-M880FX |
PX-M884F |
PX-M885F |
PX-M886FL |
PX-M887F |
PX-M5080F |
PX-M5081F |
PX-M6010F |
PX-M6011F |
PX-M6711FT |
PX-M6712FT |
PX-M7070FX |
PX-M7080FX |
PX-M7090FX |
PX-M7110F |
PX-M7110FP |
PX-S270T |
PX-S380 |
PX-S381L |
PX-S382 |
PX-S383L |
PX-S730 |
PX-S880X |
PX-S884 |
PX-S885 |
PX-S887 |
PX-S5010 |
PX-S5080 |
PX-S6010 |
PX-S6710T |
PX-S7070X |
PX-S7090X |
PX-S7110 |
PX-S7110P |
ST-3000 | epson-inkjet-printer-escpr2AUR |
ST-4000 |
ST-C4100 |
ST-C5000 |
ST-C5500 |
ST-C8000 |
ST-C8090 |
ST-M1000 |
ST-M3000 |
TX125 | epson-inkjet-printer-n10-nx127AUR |
WF-2860 | epson-inkjet-printer-escpr2AUR |
WF-2880 |
WF-2960 |
WF-3620 | epson-inkjet-printer-escprAUR |
WF-3720 | epson-inkjet-printer-escpr2AUR |
WF-3730 |
WF-3820 |
WF-4720 |
WF-4730 |
WF-4740 |
WF-4820 |
WF-4830 |
WF-7210 |
WF-7310 |
WF-7710 |
WF-7720 |
WF-7820 |
WF-7830 |
WF-7840 |
WF-C529RB |
WF-C529RBAM |
WF-C529R |
WF-C579RB |
WF-C579RBAM |
WF-C579R |
WF-C869R |
WF-C878RB |
WF-C878R |
WF-C879RB |
WF-C879RBAM |
WF-C879R |
WF-C4310 |
WF-C4810 |
WF-C5210 |
WF-C5290BA |
WF-C5290BAM |
WF-C5290 |
WF-C5310 |
WF-C5390BAM |
WF-C5390 |
WF-C5710 |
WF-C5790BA |
WF-C5790BAM |
WF-C5790 |
WF-C5810 |
WF-C5890BAM |
WF-C5890 |
WF-C8190B |
WF-C8190 |
WF-C8610 |
WF-C8690B |
WF-C8690 |
WF-M4119 |
WF-M4619 |
WF-M5298 |
WF-M5299BAM |
WF-M5299 |
WF-M5399BAM |
WF-M5399 |
WF-M5799BAM |
WF-M5799 |
WF-M5899BAM |
WF-M5899 |
XP-205 | epson-inkjet-printer-escprAUR |
XP-207 |
XP-446 |
XP-630 |
XP-970 | epson-inkjet-printer-escpr2AUR |
XP-5100 |
XP-5150 |
XP-5200 |
XP-6000 |
XP-6100 |
XP-8500 |
XP-8600 |
XP-8700 |
XP-15000 |
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

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: This section involves installing packages without pacman. These directions should ideally be automated with a PKGBUILD. (Discuss in Talk:CUPS/Printer-specific problems)

"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.

- Install the psutils, bc, libstdc++5AUR packages (lib32-libstdc++5AUR on 64bit).
- 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.

### Adding missing paper sizes

Some of the PPD files in epson-inkjet-printer-escpr2AUR are missing paper size definitions for media that is supported by the printers and the filter. It is relatively straightforward to add the missing media types to the PPD files.

To begin, download the PKGBUILD for the epson-inkjet-printer-escpr2AUR package, either with an AUR helper or from a snapshot tarball. Once in the directory with the PKGBUILD, download and extract the source of the package by running `makepkg --nobuild`.

Change directory to to `src/epson-inkjet-printer-escpr2-$PKGVER`. Open the file `src/optBase.h` in a text editor for reference.

Identify the PPD used by your printer in the `ppd` directory. For example, a Workforce 7710 printer uses `Epson-WF-7710_Series-epson-escpr2-en.ppd`. Let us call it `your_ppd_filename`. Convert the relevant PPD to a PPD compiler source file using the `ppdi` utility from the cups package.

    $ ppdi -o your_ppd_filename.drv ppd/your_ppd_filename.ppd

Open the newly-created `your_ppd_filename.drv` in a text editor. Identify the section of the file with a lot of lines starting with `CustomMedia`. Duplicate one such line to modify. For example:

    CustomMedia "Legal/US Legal" 612.00 1008.00 8.40 8.40 8.40 8.40 "<</PageSize[612.00 1008.00]/ImagingBBox null>>setpagedevice" "<</PageRegion[612.00 1008.00]/ImagingBBox null>>setpagedevice"

The pair of numbers `612.00 1008.00` represents the width and height of the paper in inches, multiplied by 72. Replace all three instances of these numbers with the dimensions of the paper you want to add. For example to add 11"x17" paper, replace the numbers with `792.00 1224.00`.

The string `"Legal/US Legal"` identifies the paper. On the left side of the slash, `Legal` is a magic identifier that the filter uses to identify the paper size. Replace it with the one you want to use. Refer to the `mediaSizeData` array in `optBase.h` for a list of possible values. The string to the right of the slash can be set to any human-readable value.

If you want to enable borderless printing for a paper size, prefix the magic identifier string you just found with the letter T. So `Letter` would become `TLetter`. Additionally, change the four numbers `8.40 8.40 8.40 8.40` to `0.00 0.00 0.00 0.00`.

For example, I was able to add 11x17 paper to the PPD for a Workforce 7710 by adding the following lines:

    CustomMedia "USB/US B(11x17 in)" 792.00 1224.00 8.40 8.40 8.40 8.40 "<</PageSize[792.00 1224.00]/ImagingBBox null>>setpagedevice" "<</PageRegion[792.00 1224.00]/ImagingBBox null>>setpagedevice"
    CustomMedia "TUSB/US B(11x17 in) (Borderless)" 792.00 1224.00 0.00 0.00 0.00 0.00 "<</PageSize[792.00 1224.00]/ImagingBBox null>>setpagedevice" "<</PageRegion[792.00 1224.00]/ImagingBBox null>>setpagedevice"

Once you have added your custom size, recompile `your_ppd_filename.drv` into a PPD file with ppdc (also from cups):

    $ ppdc your_ppd_filename.drv

This will create a ppd file in the `ppd` directory with a file name derived from the `PCFileName` parameter in `your_ppd_filename.drv`. You can test this file by uploading it to the CUPS web interface, or install it permanently by overwriting the original PPD file and making the package with `makepkg`.

## HP

See also CUPS/Troubleshooting#HP issues.

Most HP printers will use hplip, some may use hpojAUR, while for multifunction laser printers hpuldAUR might be required. Some laser printers are also supported by foo2zjs-nightlyAUR.

Notice that if `lpinfo -m` tells you that the driver "requires proprietary plugin", you need to install hplip-pluginAUR.

Printer | Driver/filter | Notes
--- | --- | ---
DeskJet 710C | pnm2ppaAUR |
DeskJet 712C |
DeskJet 720C |
DeskJet 722C |
DeskJet 820se |
DeskJet 820Cxi |
DeskJet 1000Cse |
DeskJet 1000Cxi |
Envy 6452 series | hplip | Search using mDNS/Bonjour
Envy 7800 series | hplip | Have not tried foomatic yet
LaserJet P1606dn | hplip + hplip-pluginAUR | Or foo2zjs-nightlyAUR, or AirPrint.
LaserJet Pro MFP M126nw |
LaserJet Pro MFP M281fdw | hplip | No proprietary drivers as of 2019-04-18
Photosmart 2575 | Or use the hpijs driver in foomatic.
LaserJet MFP M433 | hpuldAUR |
LaserJet MFP M436 |
LaserJet MFP M72625 72630 |
Laser 10x Series |
Laser MFP 13x Series |
Color Laser 15x Series |
Color Laser MFP 17x Series |
Printer | Driver/filter | Notes

### HPLIP

Note:

- As of hplip v3.17.11, hpijs is no longer available. If you have printers using hpijs they will fail to print. You must modify them and select the new hpcups driver instead.
- Since at least with hplip v3.22.10, hp-setup crashes when it uses `hpfax://` to access a printer, with the message `Unable to communicate with the device. Please check the device and try again`. This is likely due to the missing hplip-pluginAUR, but can be bypassed by disabling fax support on the printer itself.

hplip provides drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet, and some LaserJet printers, and also provides an easy to use setup tool. See https://developers.hp.com/hp-linux-imaging-and-printing/supported_devices/index for the list of supported printers.

hplip requires python-pyqt5 to run the GUI qt frontend. hp-setup requires CUPS to be installed and `cups.service` to be started to save the printer. hp-setup also requires the lsusb software, which is provided by the usbutils package.

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/`.

If your printer is listed as requiring a binary plugin, install the hplip-pluginAUR package from AUR. If the binary plugin hplip-pluginAUR is a requirement you will need to start the `cups.service` before the PPD is recognized by hplip. If that does not work, reboot and log in with the printer off. Then switch it on and run a test print.

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 (`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.

### HPULD

See Debian:CUPSPrintQueues#hpuld for more information.

The package hpuldAUR collects the sparse "HP + ULD" packages into one single package.

### foo2zjs

foo2zjs supports some HP LaserJet printers. As of June 2018 the hplip package interferes with foo2zjs-nightlyAUR, as described at this forum post and FS#58815.

## Kodak

c2espAUR is free software. Upstream notes it is likely to work on all ESP and Hero printers/scanners.

## Konica Minolta

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

### foo2zjs

#foo2zjs, mentioned above for supporting some HP printers, also support some Minolta printers.

## Lexmark

Note that most Lexmark printers are now supported by CUPS without needing further installation. See also SANE/Scanner-specific problems#Lexmark for Lexmark scanners issues.

### Utilities

Lexmark provides a utility called lexijtools with the drivers.

### Custom drivers

This article or section is out of date.

Reason: This section was written before the i686 architecture stopped being supported. As such, it provides only an example with an i686 packages and needs to be updated by taking 32-bit package guidelines into consideration. (Discuss in Talk:CUPS/Printer-specific problems)

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

- cups
- sane
- ncurses
- libusb
- libxext
- libxtst
- libxi
- libstdc++5AUR
- krb5
- lua (for the automated installer)
- Java (for the automated installer, and some of the Lexmark tools)

The drivers will need to be downloaded[dead link 2022-09-17 ⓘ] 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

## Ricoh

Install openprinting-ppds-pxlmono-ricohAUR if your device is black and white, or openprinting-ppds-pxlcolor-ricohAUR if it is color. Note that Ricoh copiers are sometimes branded as Savin, Gestetner, Lanier, Rex-Rotary, Nashuatec, and/or IKON. So, if you have a device bearing one of these brands, it may be supported by these drivers as well.

- List of supported black and white models
- List of supported color models

For cheap GDI-only winprinters, which do not support PCL (Ricoh series SP100 and SP200) try out ricoh-sp100-gitAUR.

Printer | Driver/filter | Notes
--- | --- | ---
SP 112 | ricoh-sp100-gitAUR |
SP 201n | ricoh-sp100-gitAUR |
213W | Generic PCL Laser | Obtain a WPS code by holding down the wifi button for 2 seconds, then hitting the stop/start button.
Printer | Driver/filter | Notes

## Samsung

Since 2016, or 2017, Samsung is no longer in the printers/scanners business. As of 2019, HP partially support some of Samsung printers/scanners. Before 2016, Samsung was a major player. Which is why there are still many Samsung machines around. In addition, Linux, and cups, keep evolving. The bottom line of all this is that supporting Samsung products is at a flux.

A major site for information about Samsung printers/scanners is Samsung Unified Linux Driver Repository. Despite its name, it is not affiliated by Samsung. Neither it is devoted only to samsung-unified-driverAUR. `samsung-unified-driver`, on the other hand, is close source by Samsung. It also encompass Windows and Mac. It might be the first stop to get a driver for a Samsung printer and scanner as it, or was, claim to support practically every one of these. Note that `samsung-unified-driver` includes software that can stand on its own, not tied to cups. If you can not get the printer to work with cups, you might try this route.

That said, there are more options. An overview is at alternatives.

- Out of CJX-XXX series, at least CJX-1000, CJX-1050W, and CJX-2000FW are reported to work with c2espAUR, even though `c2esp` is supposedly for Kodak products.
- For Samsung Printer Language, there is splix. For a list of models that are supported, see its home page[dead link 2023-04-22 ⓘ]. Other SPL Samsung printers, even tough not in that list, might work with `splix`.
- QPDL (Quick Page Description Language) printers, some of which are supported by `splix`, are also supported by by `foo2qpdl`, provided by the #foo2zjs package. A list of known to work models is here.

All of `c2esp`, `splix` and `foo2zjs` are free software.

You should also note that many Samsung printers support PostScript. Chances are that it will work with CUPS generic postscript printer, especially if it is only black & white and only printer, without a scanner added to it. Generic driver may be missing functionality or limited, for example in their support for duplex, color control, and resolution settings, and print quality may be lower.

## 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 3020 | xerox-phaser-3020AUR | Also supports Phaser 3052, 3117, 3140, 3155, 3160, 3200MFP, 3250, 3260, 3300MFP, 3320, 3435, 3600, 6110MFP, WorkCentre 3025, 3210, 3215, 3220, 3225, 3315, 3325, 3550, 4118, PE120, PE220, FaxCentre 2218.
Phaser 3100MFP | Install Xerox's driver | See #Phaser 3100MFP for more instructions.
Phaser 6115MFP | foomatic |
Phaser 6121MFP | foomatic |
Xerox Workcentre 3119 | splix | Since Samsung SCX-4200 is the rebranded Xerox 3119, splix package works for both
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: lib32-libpng12, lib32-zlib, lib32-libjpeg6-turbo, lib32-libcups, lib32-libxext, lib32-libx11, lib32-gcc-libs, lib32-libstdc++5AUR

For the scanner, create an `/etc/sane.d` directory if it does not already exist, because it is needed 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[dead link 2022-09-17 ⓘ] 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

Category:

- Printers

Hidden categories:

- Pages with dead links
- Pages or sections flagged with Template:Style
- Pages or sections flagged with Template:Out of date