EPSON LP-S120をCUPSで共有してみた

## EPSON LP-S120をCUPSで共有してみた

我が家にはモノクロ印刷しかできないEPSON LP-S120しかプリンタが無いのですが、我が家のMacをBig Surにバージョンアップしてしまったら、ドライバがなくて使えない状況となります。実はCatalinaの段階でも印刷エラーになってしまう状況でして、印刷が必要なときは妻のMojaveにファイルを転送して印刷をしていたのですが、滅多に印刷などしなくても面倒な作業です。
ある事情から家で24時間稼働のLinuxサーバを入れることになり、NUC6CAYHにUbuntu 20.04をいれました。これにLP-S120をつなげてCUPSで共有すれば、macOSのバージョンアップに対応できると思い早速セットアップを行いました。

#### サーバにプリンタドライバをインストール

ドライバのインストールは以下の方のページを参考にさせていただきました。
[Epson LP-S120をDebian 64bitで印刷 | 見よう見まねのブログ](https://ameblo.jp/miyou55mane/entry-12440394738.html)
ありがとうございます。

EPSON LP-S120はXEROXからのOEM品らしく、XEROX Phaser 3040のプリンタドライバを使います。

サーバにログインし、適当な作業用ディレクトリを作成し、cdしてください。
そしてプリンタドライバのmake用ファイル一式をダウンロードします。

```terminal
$ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz
```
ダウンロードができたら解凍し、cdします。

```terminal
$ tar zxf foo2zjs.tar.gz
$ cd foo2zjs
```
makeの前に以下の依存パッケージをインストールします。

```terminal
$ sudo apt install make
$ sudo apt install build-essential
$ sudo apt install ghostscript
$ sudo apt install dc
```
忘れてmakeしても怒ってもらえます。
makeします。

```terminal
$ make
```
makeが終わったらmake installしますが、依存パッケージをインストールします。これも忘れてもmake installが怒ってくれます。

```terminal
$ sudo apt install cups-filters
```
make installします。

```terminal
$ sudo make install
```

以上でドライバインストールは完了です。

#### CUPSのインストールと設定

続いてCUPSをインストールします。

```terminal
$ sudo apt install cups
```

インストールが終わったら設定ファイルを変更します。

```terminal
$ sudo vi /etc/cups/cupsd.conf
```
私はviが好みですが、お好きなエディタをお使いください。

```conf:cups.conf
Listen localhost:631
を
Port 631
に変更

Browsing Off
を
Browsing On
に変更

<Location />
  Order allow,deny
</Location>
を
<Location />
  Order allow,deny
  Allow @LOCAL
</Location>
に変更

<Location /admin>
  Order allow,deny
</Location>
を
<Location /admin>
  Order allow,deny
  Allow @LOCAL
</Location>
に変更
```
CUPSを起動・有効化してください。そして正しく動いているかを確かめてください。

```terminal
$ sudo systemctl start cups
$ sudo systemctl enable cups
$ sudo systemctl status cups
```
次の段落でプリンタ設定を行うLinuxユーザをlpadminグループに追加します。

```terminal
$ sudo usermod -a -G lpadmin 管理Webページを使用するLinuxユーザ
```

#### Webブラウザでプリンタ設定

macOSのWebブラウザでプリンタ設定をおこないます。以下のアドレスをアドレスバーに打ち込んでください。

```
https://UbuntuサーバのIPアドレス:631/admin
```
セキュリティ警告が表示されますが、表示させてください。
ユーザ名とパスワードを聞かれたら先程lpadminグループに登録したLinuxユーザとそのパスワードを入力してください。

以下のようなページが表示されます。
![cups-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31696/ce8e6ca1-1dd8-0b06-7a4a-7173527667f7.png)
プリンタの追加ボタンを押下してください。

![cups-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31696/58704fa8-844f-7216-d34c-28029ee6d46b.png)
発見されたネットワークプリンターにすでに実際に私が使用しているLP-S120が現れていますが、無視してください。この記事を書くためにVirutalBoxにインストールしたUbuntuがUSBに接続されているプリンタがローカルプリンターに表示されているので、それを選択し続けるボタンを押下してください。

![cups-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31696/19976e59-848a-09e5-cf47-54912fbfa44a.png)
名前、説明、場所にあとでわかりやすい入力を行って、共有にチェックを入れて続けるボタンを押下してください。

![cups-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31696/ebd9ffe9-dea1-fcbd-5610-462da7ee50a1.png)
最初の表示でメーカーがEpsonになっていますが、他のメーカー/製造元を選択ボタンを押下してください。

![cups-05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31696/badd0580-bfe5-3de8-356c-450d58cae1b3.png)
メーカーにXeroxを選んで続けるボタンを押下してください。

![cups-06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31696/f1e6ff70-2955-e305-a7af-07f27ac0d604.png)
モデルにXerox Phaser 3040を選択してプリンターの追加ボタンを押下してください。

![cups-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31696/a101e579-2c87-8f4e-5eff-d6bd305ea00a.png)
日本ではPage SizeをLetterからA4に変更したほうが良いかもしれません。

管理に戻ってプリンターの管理ボタンを押下して以下のようになっていればmacOSのシステム環境設定でプリンタを追加できるはずです。
![cups-08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31696/c2f0fdcd-07bd-f843-20fc-39066f5b27b8.png)
2行目に出ているものは他のLinuxサーバにつながっているプリンタですので無視してください。

#### その他のLinuxについて少々…

実は過去にRaspberry Pi 2 B(OSはwheezy)で同じように設定したのですが、何回か印刷するとOSがハングする事象に見舞われて断念しました。私のやり方になにか問題があったかもしれません。Ubuntu 20.04以外でもうまくいくと思いますので、試してみてください。