RaspberryPiをプリントサーバにしたかった


RaspberryPiのリソースが余りまくってます

NTP/DNSしか動かしていないのでLAが0.05とかそんな感じ。
せっかく買ったのにもったいないね!!


と、いうことでRaspberryPiにCUPSをインストールしてプリントサーバとして使って見るお話。
プリンタが既に数台あって今回使用したの以外全てネットワーク印刷に対応してる訳ですね。

必要なもの

  • RaspberryPi
  • Raspbian
  • プリンタ

(後々)root権限が必要になるのでrootユーザをセットアップ。
本当は権限細かく振ったユーザの方がいいです。

$ sudo su -
# passwd
新しいUNIXパスワードを入力してください:
新しいUNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました
# exit

USBポートにプリンタを繋ぎ、確認

$ dmesg
~(略)~
[6633435.212206] usb 1-1.3: new full-speed USB device number 6 using dwc_otg
[6633435.323792] usb 1-1.3: New USB device found, idVendor=04b8, idProduct=0005
[6633435.323830] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[6633435.323850] usb 1-1.3: Product: USB Printer
[6633435.323867] usb 1-1.3: Manufacturer: EPSON
[6633435.323885] usb 1-1.3: SerialNumber: L41010405310917410
[6633435.335535] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 6 if 0 alt 0 proto 2 vid 0x04B8 pid 0x0005

CUPSをインストール

$ sudo apt-get install cups

設定ファイルを編集

$ sudo nano /etc/cups/cupsd.conf

16行目を変更

Listen 631

<Location /> / <Location /admin> 内の Order allow,deny の次の行に以下を追加

Allow from @LOCAL

保存後、サービス再起動

$ sudo service cups restart

ブラウザで https://サーバのIP:631 にアクセス。 管理 -> プリンターの追加 からプリンタを追加。
この際にパスワード要求をされるので先程のrootユーザでログイン。権限不足だと蹴られます。

Add

プリンタ名等を設定します。この際 このプリンターを共有する にチェックを入れておきます

Add2

モデル名を選択し プリンターの追加 をクリックします

Add3

プリンター -> プリンタ名 -> テストページの印刷 でテスト印刷が可能です。

Test

コントロールパネルのデバイスとプリンターからプリンタを追加します
追加する際は http://192.168.0.4:631/printers/EPSON_PX-V500 のような形式で追加します。(そうじゃないとシステムダイアログから印刷不可)
ちなみにChromeからシステムダイアログを交わさず印刷するとサイズがおかしくなる場合があるみたいです(複雑なCSSが使われてるページ?)

コントロールパネルから追加されたことを確認。お疲れ様でした
ちょっと厄介なのがプリンタのインク残量等がうまく取得できないことですかねー…