OrangePiでプリンタサーバを構築する

我が家にはちょっと古めのレーザープリンタがあります。モノクロA4でスペック的に最新機種と比べるべくもありませんが、印刷速度が速くてデータシート等のボリュームのあるテキスト印刷にとても便利です。ただ、このプリンタはLANポートありません。折角なので、OrangePi PCにプリンタサーバを構築して家庭内で共有できるようにしたいと思います。

 

環境

  • Server:Orange Pi PC(ARM Coretex-A9)
  • OS:armbian (jessie) 3.4.112-sun8i
  • Printer server:CUPS 1.7.5
  • Printer:RICOH IPSIO SP4000(両面印刷オプション付き)
RICOH IPSIO SP4000
RICOH IPSIO SP4000(安くてとてもコストパフォーマンスの良いプリンタです)

 

RICOH IPSION SP4000 背面のパネル
残念ながらUSBとパラレルポートのみ(LANボードはオプション)

 

OrangePi PC
OrangePi PCをプリンタサーバにします(HDDはファイルサーバ用)

プリンタサーバ構築手順

今回プリンタサーバを構築するにあたって、我が家のレーザープリンタ(Ricoh IPSIO SP4000)はPostScriptに対応していないことが判明しました。そのため、印刷に関する処理をPC側(のドライバ)で行い、それを直接ネットワーク経由でプリンタに送る方法を取ります。

 

プリンタサーバ(CUPS)のインストール

まずはプリンタサーバであるCUPSをインストールします。


$ sudo apt-get install cups

インストール完了後、念のためCUPSが起動しているか確かめます。”active”となっていれば大丈夫です。


$ sudo service cups status
● cups.service - CUPS Printing Service
Loaded: loaded (/lib/systemd/system/cups.service; enabled)
Active: active (running) since Thu 2016-12-08 04:00:12 CET; 1min 13s ago
Docs: man:cupsd(8)
man:cupsd.conf(5)
Main PID: 3234 (cupsd)
CGroup: /system.slice/cups.service
└─3234 /usr/sbin/cupsd -f

 

CUPSの設定

CUPSにプリンタを登録するにはブラウザから管理画面にアクセスする必要がありますが、インストール直後は他のPCから管理画面にアクセス出来ないよう制限がかかっています。

そこで設定ファイルを修正してローカルネットワーク内のPCから管理画面が見れるようにします。このあたりの設定方法は下記サイトで分かりやすく解説されおり参考になるかと思います。

ここでは以下のように修正しました。

/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

# 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  #コメントアウト
Listen /var/run/cups/cups.sock
Listen 631  #ここを追加

# 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

# ここを修正(ローカルと192.168.1.xからのアクセスを許可)
# Restrict access to the server...
<Location />
# Order allow,deny
Order deny,allow
Deny from All
Allow from 127.0.0.1
Allow from 192.168.1.0/24
</Location>

# ここを修正(ローカルと192.168.1.xからのアクセスを許可)
# Restrict access to the admin pages...
<Location /admin>
# Order allow,deny
Order deny,allow
Deny from All
Allow from 127.0.0.1
Allow from 192.168.1.0/24
</Location>

・・・・・・・

&nbsp;

設定を書き換えたらCUPSを再起動します。これで設定画面にアクセス出来るはずです。以下のURLをブラウザで開いてみてください。

  • https://<serverアドレス>:631/

なお、SSLの証明書が設定されていないので、おそらくブラウザでアクセスする際に警告が表示されると思います。Chromeの場合は以下のようにするとアクセス出来ます。

  1. 警告画面の左下側にある”詳細設定”をクリック
  2. <アドレス>にアクセスする(安全ではありません)をクリック
CUPSの管理画面
CUPSの管理画面

プリンタを登録する

次にCUPSにプリンタを登録して設定していきます。あらかじめプリンタはOrangePiPCに接続して電源を入れて、念のため認識しているか確認しておきます。


$ lsusb
・・・
Bus 002 Device 003: ID 05ca:0403 Ricoh Co., Ltd Printing Support
・・・

ブラウザからCUPS設定画面にアクセスして、管理タブを開きます。IDとパスワードをきいてくると思いますので以下ように入力すると管理画面が表示されます。ここからプリンタの追加を行います。

  • ID:root
  • PASS:LinuxのRootユーザパスワード

プリンタ登録の手順

  1. 管理画面の”プリンターの追加”をクリック
    CUPSの管理画面
    CUPSの管理画面
  2. ネットワーク共有したいプリンタを選択して”続ける”をクリック
    ここではRICOH IPSIO SP4000を選択しています。表示されていない場合はUSBの接続とプリンタの電源をもう一度確認してください。
    CUPS設定(プリンタの追加)
    共有するプリンタを選択する
  3. “このプリンターを共有する”を選択して”続ける”をクリック

    CUPS設定(プリンタの追加)
    共有するのチェックいれて次へ

  4.  メーカーから”Raw”を選択して”プリンターの追加”をクリック
    プリンタ機種を選択します。ここではPCから直接プリントするので”Raw”を選択します。
    (Linuxから印刷を行う場合には対応機種を一覧から選択するか、プリンタメーカから提供されているCUPS用PPDファイルを指定します。Ghostscriptを使って印刷する場合はプリンタに対応するモジュールをあらかじめインストールしておくと一覧に表示されると思います)

    CUPS設定画面(プリンタメーカの選択)
    プリンタのメーカーはRawを選ぶ

  5.  設定完了
    次のような画面が表示されれば作業完了です(プリンタードライバーの項がPostScriptになっていますが、Raw Printerの誤りです)。

    CUPS設定画面(プリンターの管理)
    プリンタの追加完了

実は、最初はghostscriptを使って印刷する方法を取ろうとしたのですが、Linuxからのテスト印刷は問題無いもののWindows環境からネットワーク越しに印刷しようとすると上手く印刷出来ませんでした(RPDLスクリプトがそのまま印字されている?)。ですので、今回は”RAW”を選択してWindowsから直接プリンタにイメージを送るようにしました。

 

Sambaの設定

最後に、Windowsのプリンタ共有と同じようにエクスプローラからネットワークに接続したプリンタが見えるようにします。こうすればPC側でドライバさえ用意しておけば簡単にネットワークプリンタに接続することが出来ます。

設定ファイルの以下の行がデフォルトではコメントアウトされていますので、これを有効にしてやります。ここではSambaアカウントのあるユーザからのみアクセス出来るようにしています。誰からでも見えるようにするには”guest ok = yes”としてください。

/etc/samba/samba.conf


[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700

# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no

設定ファイルからプリンタを有効にしたあと再起動すると、Windowsのエクスプローラからプリンタが見えるはずです。


$ sudo service samba restart

エクスプローラ上から見る共有プリンタ
エクスプローラから共有プリンタが見える

テスト印刷

エクスプローラの共有プリンタを右クリックして”接続”とするとドライバのインストールが始まります。恐らくプリンタドライバを要求してくると思いますのであらかじめ用意しておいてください。

設定が完了したらローカルプリンタと同じようにテストページ印刷を行い、正常に出力されていれば作業完了です。

 

所感

CUPSのプリンタ設定で”Raw”を選びPCから直接印刷するのであれば、簡単にプリンタサーバが構築出来ました。これもapt-get等のパッケージ管理システムでインストール出来るおかげですね。

同じようにLANの無い古い機種を使っておられる方で家庭内/社内で共有したいという方は一度試されては如何でしょうか。

 

参考

この記事は以下のサイトを参考に記載させていただきました。

コメントを残す

メールアドレスが公開されることはありません。

This blog is kept spam free by WP-SpamFree.