2015年2月7日土曜日

Raspberry Piをプリントサーバーに・・・ならなかった(泣)

Athlon5350マシンにつないでいるブラザーHL-2240Dですが、プリンタを使う度にAthlon5350マシンを起動するのは面倒です。
そこで、OpenVPNを動かしているRaspberry PiのUSBポートで動かせないか試してみました。

1.とにかくつないでみる

つないで dmesg を見てみたらとりあえず認識してくれました。
[2146148.627562] usb 1-1.3: new high-speed USB device number 4 using dwc_otg
[2146148.728736] usb 1-1.3: New USB device found, idVendor=04f9, idProduct=0040
[2146148.728772] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[2146148.728787] usb 1-1.3: Product: HL-2240D series
[2146148.728801] usb 1-1.3: Manufacturer: Brother
[2146148.728817] usb 1-1.3: SerialNumber: M3Jxxxxxx
[2146148.797077] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 4 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0040
[2146148.800057] usbcore: registered new interface driver usblp

2.CUPSをインストールする

Raspberry Pi にリモートログインしてCUPSをインストールします。
$ sudo apt-get install cups
どかどかとたくさん入るかと思ったらエラーが。メッセージに従って、
$ sudo apt-get update
$ sudo apt-get upgrade
ってやってみたら、Raspberry Pi 2関連と思わるアップデートがたくさん入りました。
それはさておき、アップデート後に気を取り直してCUPSをインストールします。
$ sudo apt-get install cups

3.CUPSの設定

完了したら、ローカル側からRaspberryPiの画面をリモートデスクトップで開いて設定を行います。
$ rdesktop 192.168.xxx.xxx
ブラウザ(Netsurf)を開いてアドレスに「localhost:631」と入力します。
Cups-1
上の方の「Administration」を開きます。
cups-2
右下の
  • Share printer connected to this host
  • Allow printing from the Internet
  • Allow remote administration
  • Allow users to cancel any job
にチェックをつけて、下の「Change Setting」を押します。
(どうせルータで自宅外からのパケットは叩き落とされるので「Allow printing from the Internet」も許可しちゃいます)
cups-3
その後、リモートログインしたシェルでCUPSを再起動します。
$ sudo service cups restart
・・・が、設定が反映されません・・・。(泣)
仕方がないので、設定ファイルを直接編集します。
$ sudo vi /etc/cups/cupsd.conf
途中の、
# Only listen for connections from the local machine.
Listen localhost:631
Listen /var/run/cups/cups.sock
の真ん中の「localhost:631」を「631」だけにします。
さらに、もう少し下の方にある<Location>と<Location /admin>の部分を以下のように修正します。
# 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>
その後、CUPSを再起動します。
$ sudo service cups restart
これでローカルマシンから「IPアドレス:631」で管理画面にアクセスできます。
同様にプリンタの共有とインターネットからの印刷の許可、ジョブキャンセルの許可を設定します。
cups-4
うーん、やっぱり設定できません。
どうも、ユーザーがlpadminグループに入っていないといけないようなので、
$ sudo adduser pi lpadmin
Adding user `pi' to group `lpadmin' ...
Adding user pi to group lpadmin
Done.
$
とします。
これでブラウザから設定が変更できるようになりました。

4.プリンタの追加

Web管理画面から「プリンタの追加」を押します。
CUPS-10
 
ローカルプリンタのBrother HL-2240Dを選択して、「続ける」を押します。
CUPS-11
適当に場所を記入し、共有にチェックを入れて続けます。
CUPS-12
ドライバは存在しないのでとりあえずHL2140のPCL5eドライバを選択しておきます。
CUPS-13
デフォルトオプションを適当に設定しておきます。
CUPS-14
設定ができました。
この状態でPC上のUbuntuでプリンタを開くと、RaspberryPi上のプリンタが見えるようになっていました。
・・・・がしかし、テスト印刷を1枚試してみたところ明らかに汚いです。
さらに2枚目以降のテスト印刷はエラーが出るばかりで印刷すらできません・・・。
ブラザーのLinux用プリンタドライバのインストールも試してみましたが、途中で微妙なエラーがでていることと、テスト印刷してもジョブを抱えたままで出力されませんでした。
・・・・結局、諦めて元のAthlon5350マシンに接続を戻しました(泣)

0 件のコメント: