我が家にはちょっと古めのレーザープリンタがあります。モノクロ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)は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から管理画面が見れるようにします。このあたりの設定方法は下記サイトで分かりやすく解説されおり参考になるかと思います。
- はじめての自宅サーバ構築 - Fedora/CentOS - プリントサーバの構築(cups)
http://kajuhome.com/cups.shtml
ここでは以下のように修正しました。
/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> ・・・・・・・
設定を書き換えたらCUPSを再起動します。これで設定画面にアクセス出来るはずです。以下のURLをブラウザで開いてみてください。
- https://<serverアドレス>:631/
なお、SSLの証明書が設定されていないので、おそらくブラウザでアクセスする際に警告が表示されると思います。Chromeの場合は以下のようにするとアクセス出来ます。
- 警告画面の左下側にある"詳細設定"をクリック
- <アドレス>にアクセスする(安全ではありません)をクリック
プリンタを登録する
次にCUPSにプリンタを登録して設定していきます。あらかじめプリンタはOrangePiPCに接続して電源を入れて、念のため認識しているか確認しておきます。
$ lsusb ・・・ Bus 002 Device 003: ID 05ca:0403 Ricoh Co., Ltd Printing Support ・・・
ブラウザからCUPS設定画面にアクセスして、管理タブを開きます。IDとパスワードをきいてくると思いますので以下ように入力すると管理画面が表示されます。ここからプリンタの追加を行います。
- ID:root
- PASS:LinuxのRootユーザパスワード
プリンタ登録の手順
- 管理画面の"プリンターの追加"をクリック
- ネットワーク共有したいプリンタを選択して"続ける"をクリック
ここではRICOH IPSIO SP4000を選択しています。表示されていない場合はUSBの接続とプリンタの電源をもう一度確認してください。
-
"このプリンターを共有する"を選択して"続ける"をクリック
-
メーカーから"Raw"を選択して"プリンターの追加"をクリック
プリンタ機種を選択します。ここではPCから直接プリントするので”Raw"を選択します。
(Linuxから印刷を行う場合には対応機種を一覧から選択するか、プリンタメーカから提供されているCUPS用PPDファイルを指定します。Ghostscriptを使って印刷する場合はプリンタに対応するモジュールをあらかじめインストールしておくと一覧に表示されると思います)
-
設定完了
次のような画面が表示されれば作業完了です(プリンタードライバーの項がPostScriptになっていますが、Raw Printerの誤りです)。
実は、最初は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の無い古い機種を使っておられる方で家庭内/社内で共有したいという方は一度試されては如何でしょうか。
参考
この記事は以下のサイトを参考に記載させていただきました。
- Qiita - SambaとCUPSと各種プリンター(Samba編)
http://qiita.com/yyano/items/8cfc4a1d05f367d6e2de - Pinewell's Farmer blog - CUPS PPD 印刷領域 IPSiO SP 4000 共有プリンタ MS Publisher Color Printer
http://www.pinewell.jp/wordpress/?p=1145 - Netsphere Laboratories - CUPSでLinuxのプリンタ (PIXUS) を共有する
http://www.nslabs.jp/linux-printing.rhtml - Hatena::Diary - rubikitch - [linux][ハードウェア]格安業務用レーザープリンタIPSiO SP 4000を買ってLinuxで動かした
http://d.hatena.ne.jp/rubikitch/20101026/printer - ORCA愉快日記 - レーザプリンタRicoh SP4000を格安で購入の巻
http://hitaki.net/diary/20090730.html - はじめての自宅サーバ構築 - Fedora/CentOS - プリントサーバの構築(cups)
http://kajuhome.com/cups.shtml - パソコンおやじ - プリントサーバ(cups)の構築(SuSE編)
http://www.aconus.com/~oyaji/suse/cups_suse.htm - 水銀室 - WindowsからopenSUSE共有のプリンタを使う
http://hp.vector.co.jp/authors/VA022911/tec/suse/printw_l.htm - インフラまわりのプロになりたい - CUPS 印刷システムって?
http://ayufishing.blog.fc2.com/blog-entry-8.html