Installing Epson printer on Arch Linux

When it came time to buy a printer, I was not at all looking forward to it. I kept putting it off, because I knew for sure that trying to configure and install the needed software for a newer printer would be hell. I came to find out that it would not be that bad at all.

First and foremost, I will say again, I am convinced that there is nothing that the Arch Wiki does not have information on. Sure enough, it was ready to provide me more information in regards to setting up a printer. Most of what you need to know can be found there, specifically here.

I was well into this article and my faith was slowly building; I might just be able to install my new printer (an Epson XP-520). It was convenient to take advantage of the printers Wifi capabilities thus putting it on the network. Once that was complete, I started CUPS and volia, I could access and configure printers by going to http://localhost:631/. While trying to add the printer, it was easily discovered on the network and added. The trouble came about when trying to select the right driver for this printer. “XP-520” It was not listed in the dropdown provided by the default installation of CUPS.

This is the point that stop and mentally flash over what comes next:

  • there is no driver for this printer
  • there is a driver but it’s on some obsure link from 1999, on a site that is only cached by a cached search hit on some search engine that no longer exist.
  • this printer is not supported
  • this printer is supported but you have to use an outdated driver that causes the pages to be printed in 1pt Comic Sans
  • this printer will have to be returned and I will just have to pick on that works
  • guess it’s time to install windows

It turns out none of these were close. According to the almighty Arch Wiki there is indeed a driver for this printer: (https://aur.archlinux.org/packages/epson-inkjet-printer-escpr/). Immediately I noticed thats this package had been “Flagged out-of-date (2015-10-01)”. Great.

Now, this means I will have to do a bit of work, but if it gets the printer installed, sure. I go to install this, and it turns out the source it pull leads to a 404 … … … sigh.

What are the chances that I could search and find the correct file directly from the manufacter? Well, pretty good. Epson did indeed have an updated file: https://download3.ebz.epson.net/dsc/f/03/00/04/16/68/f1aa….

Idea: what if I just update the PKGBUILD file to reflect the new package? internal happy dance. That worked. There are a few things you will have to update, the pkgname, the pkgver, the source url, and the SHA256SUM of the new package.

The new PKGBUILD looks like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Maintainer:  Hyacinthe Cartiaux <hyacinthe.cartiaux@free.fr>
# Contributor: James An <james@jamesan.ca>
# Contributor: Stefano Bergamini <bergs at live dot it>
# Contributor: Heiko Baums <heiko@baums-on-web.de>
# Contributor: Quentin Foussette <quentinf7@gmail.com>

pkgname=epson-inkjet-printer-escpr
pkgver=1.6.0
pkgrel=1
pkgdesc=“Epson Inkjet Printer Driver (ESC/P-R) for Linux”
arch=(‘i686’ ‘x86_64’)
url=http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX"
license=(‘GPL2’)
depends=(‘cups’ ‘ghostscript’)
options=(‘!libtool’)
source=(https://download3.ebz.epson.net/dsc/f/03/00/04/16/68/f1aa2a3f8c10f209b09be5761b523a277cff932d/$pkgname-$pkgver-1lsb3.2.tar.gz”)
sha256sums=(‘745aa837edfca269800d3c5fd2b81b40f4e3e9a316bc0c1a3e265260e3184f95’)

prepare() {
tar zxf $pkgname-$pkgver-1lsb3.2.tar.gz”
}

build() {
cd $pkgname-$pkgver
./configure –prefix=/usr \
–with-cupsfilterdir=/usr/lib/cups/filter \
–with-cupsppddir=/usr/share/ppd
make
}

package() {
cd $pkgname-$pkgver
make DESTDIR=$pkgdir install
}

After installing that, CUPS was able to find the correct driver, and allowed me to select this printers exact model from the dropdown. This printer says it is IPP enable, so that was the protocol used to connect to it. Once all that was saved, I printed a test page. The results were amazing.

Printer test page

Update

I put this package together in my own repo: http://git.splodycode.net/epson-inkjet-printer-escpr.git/