作業中のメモ

よく「計算機」を使って作業をする.知らなかったことを中心にまとめるつもり.

Raspberry Pi 3 Model B でファイルサーバーとプリンタサーバーを構築する(その 2) CUPS とプリンタドライバのインストール

どうも,筆者です.

前回の続きである. workspacememory.hatenablog.com

使用しているプリンタは,「EPSON PX-501A」である.これは,USB 接続であるので,Raspberry Pi に接続し設定をする事で,スマホやノート PC などから印刷を出来るようにするのが目的である.history を参考にしつつ,思い出しながら書いていくので,この通りにやって上手くいくかが怪しい.

CUPS のインストール

まず,CUPS をインストールする.CUPS だけでは足りないらしいので,必要そうなものも一緒にインストールする.

sudo apt-get install -y cups cups-devel cups-pdf python-cups avahi-discover

後から,CUPS の設定の際に,ユーザーが必要になるらしいので,以下のようにして,対応するグループに追加しておく.そして,サービスを開始する.

# ユーザーの追加
sudo usermod -aG lpadmin pi
# サービスの開始
sudo /etc/init.d/cups start
sudo /etc/init.d/avahi-daemon start

次に,CUPS の設定ファイル「/etc/cups/cupsd.conf」を以下のように変更する.

#
#
# Sample configuration file for the CUPS scheduler.  See "man cupsd.conf" for a
# complete description of this file.
#

# Log general information in error_log - change "warn" to "debug"
# for troubleshooting...
###LogLevel warn
LogLevel debug

# Deactivate CUPS' internal logrotating, as we provide a better one, especially
# LogLevel debug2 gets usable now
MaxLogSize 0

# Only listen for connections from the local machine.
#Listen localhost:631 ### コメントアウト
Port 631              ### 追加する
Listen /var/run/cups/cups.sock

# Show shared printers on the local network.
Browsing On
BrowseLocalProtocols dnssd

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Web interface setting...
WebInterface Yes 

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow @local        ### 追加する
</Location>
 Restrict access to the admin pages...                                                                                                                                
<Location /admin>
  Order allow,deny
  Allow @local        ### 追加する
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow @local        ### 追加する
</Location>

書き換えが終わったら,サービスを再起動する.

sudo /etc/init.d/cups restart

ここまでは,Raspberry Pi をプリントサーバ化 を参考にした.

これで,CUPS の設定は半分終わった.次に,プリンタを CUPS に追加すればよいのだが,CUPS に「EPSON PX-501A」のドライバが無かったので,この段階でインストールしておく.このドライバのインストールでかなり苦労した.

プリンタドライバのインストール

まず,Raspberry Pi 用のドライバが見つからない.自分で書くわけにはいかないので,EPSON Download Center から頑張ってソースコードを探す.PX-501A の場合は,モジュール名が,「ESC/P-R Driver (generic driver)」であるものをダウンロードする.設定を行っている段階では,「epson-inkjet-printer-escpr-1.6.11-1lsb3.2.tar.gz」であった.今は,1.6.12 が出ているらしい.

次に,make で止まるので,あらかじめ以下をインストールしておく.これは,EpsonのプリンタドライバをRasPi用にビルドしたよー を参考にした.

# configure 用
sudo apt-get install libtool autoconf
# cups/cups.h が見つからないときの対策
sudo apt-get install libcups2-dev
# cups/raster.h が見つからないときの対策
sudo apt-get install libcupsimage2-dev

後は,解凍して,インストールの準備を行う.この時,PPD ファイルを該当するディレクトリにコピーしておく.

tar zxvf epson-inkjet-printer-escpr-1.6.11-1lsb3.2.tar.gz
pushd epson-inkjet-printer-escpr-1.6.11/

# PPD ファイルのコピー
sudo cp -f ppd/Epson-PX-501A-epson-escpr-en.ppd /usr/share/ppd/cupsfilters/

# configure を行う
./configure --prefix=/usr

# make を行う(しばらく時間がかかる)
make

# install を行う
sudo make install
popd

これで,ドライバがインストールされたことになる.後は,Web ブラウザから,プリンタの設定を行えばよい.

CUPS からプリンタを追加

ウェブブラウザ(WindowsLinux など Raspberry Pi 以外でもよい)で「http://[Raspberry Pi の IP アドレス]:631」にアクセスする.ここでは,Raspberry Pi の IP アドレスを「192.168.33.12」にしたので,

http://192.168.33.12:631

とすれば良い.プリンタの電源を入れて,「管理」メニューから「プリンタの追加」からプリンタを追加する.USB で接続されたプリンタ(EPSON PX-501A)が表示されるはずなので,選択し,続ける.

次のページでは,「このプリンターを共有する」にチェックを入れて続ける.

次のページで,ドライバを追加したので,「または PPD ファイルを提供」から,「/usr/share/ppd/cupsfilters/」にある PPD ファイルを選択する.

最後に自動設定を選択し,設定が完了する.試しに,テストページを印刷しておこう.

次回

次回は,Samba の設定を行い,Windows 側で共有が行えるようにする.また,SD にアクセスし続けると寿命が縮むので,外付け HDD にアクセスするよう設定する. このとき,一箇所だけ設定を間違え,Windows で PDF が印刷できない問題が生じたので,そのことについても別の記事で説明する予定である.