プリントサーバー
2005/06/14 21:06
しばらくThinkPadをいじったりしてて、こちらは久しぶり。
前からやろうと思っていて、ほったらかしになっていた玄箱HGでのプリントサーバーに挑戦。
いろいろ調べてみると、cups+sambaという組み合わせがよさそう。
使うプリンタは、HPのDeskjet955C。今まではWindowsXPマシンにUSBでつないで共有して使ってましたが、これを玄箱にUSB接続で使うつもり。
USBを使うために必要らしいファイルをapt-get
# apt-get update
# apt-get upgrade
# apt-get install usbmgr
# apt-get install usbutils
プリンタをUSBでつないで、ちゃんと見えてるか確認。
# cat /proc/bus/usb/devices
~中略~
S: Manufacturer=Hewlett-Packard
S: Product=DeskJet 955C
S: SerialNumber=MY02K1H0PQKP
~中略~USBプリンタのデバイスノードを作成
# mkdir /dev/usb
# mknod /dev/usb/lp0 c 180 0
mknodというのは特殊なデバイスノードを作成するコマンドみたいで、cはキャラクタ型、180はメジャー番号でUSBを表しているようです。0はマイナー番号ということ(よくはわからないけど、そういうことらしい)。ここでcups関連のファイルをapt-get
# apt-get install cupsys cupsys-client cupsys-bsd cupsys-driver-gimpprint cupsomatic-ppd
途中、紙の標準は何?とか聞かれたけど、とりあえずデフォルトで設定。cupsの設定ファイルを編集
# vi /etc/cups/cupsd.conf
Browsing On #を取って有効に
<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.0/24 # これを追加。これで同じセグメントからアクセス許可
</Location>
<Location /admin>
~中略~
## Restrict access to local domain
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.0/24
これでネットワーク上からアクセス可能に。
# vi /etc/cups/mime.types
application/octet-stream #を取って有効に
これでデ-タを加工せずに直接スプ-ルに送る。
# vi /etc/cups/mime.convs
application/octet-stream application/vnd.cups-raw 0 - #を取って有効に
同様にデ-タを加工せずに直接スプ-ルに送る。ここでcupsを再起動
# /etc/init.d/cupsys restart
cupsのrootのパスワード設定
# lppasswd -g sys -a root
ブラウザから、http://玄箱のIP:631/ にアクセス。
管理画面に入って(ここでさっき設定したroot/パスワードを入力)プリンタの追加を行う。

プリンタ名を入力

デバイスにUSB Printer #1を選択

プリンタメーカーを選択

モデルを選択
これでプリンタが追加できました。
こんどはsambaにプリンタを追加。
# vi /etc/samba/smb.conf
[global]の中の
printcap name = cups
printing = cups
を修正
[printers]
comment = samba printer
path = /var/spool/samba
guest ok = Yes
printable = Yes
use client driver = Yes
browseable = No
を追加sambaのプリンタのスプールを作成
# mkdir /var/spool/samba
# chmod 777 /var/spool/samba
sambaを再起動
# /etc/init.d/samba restart
これでひとまず設定完了。
さっそくメインで使っているWindowsXPマシンにプリンタを追加。ドライバはHPからダウンロードしてあったものを入れました。
プリンタはちゃんと追加できたんですが、テスト印刷を行うと黙り込んでしまい、プリンタのプロパティのダイアログを閉じるとエクスプローラを全部巻き込んで落ちてしまう状態に。。。
cupsのページでテスト印刷をやっても、やっぱり出ない。。。
う~ん、困りました。
googleで検索していろいろ調べていると、modprobeでusb-ohciやprinterのモジュールを入れたりしているところもあったので、とりあえずやってみてもエラーになるし。。。cupsでプリンタ追加するときもちゃんとUSBにつながっているプリンタは見えてるのでこの辺は問題ないと思うんだけど。
dmesgコマンドを叩くと
usb-ohci.c: USB OHCI at membase 0xc9006000, IRQ 19
usb-ohci.c: usb-00:0e.1, NEC Corporation USB (#2)
usb.c: new USB bus registered, assigned bus number 3
hub.c: USB hub found
hub.c: 2 ports detected
usb.c: registered new driver usblp
printer.c: v0.11: USB Printer Device Class driver
とか表示されているので、問題ないと判断。結局原因がわからず、なんとなくWindows2000を入れてるThinkPadにプリンタを追加してみると、こちらからはテスト印刷が問題なくできた!
となるとWindowsXPのほうに問題あり?SP2も当ててあるし。。。
googleで検索してみると、ドライバをメーカーから最新のものを持ってきたほうがいい(SP2に対応したもの)とかあるので、HPのサイトにいくがDeskjet955Cのものは最新が2001年12月リリース。あとはWindowsが用意しているドライバでうまくいったという書き込みも見つけたので、早速ドライバをWindowsのものに変更。
ようやくテスト印刷が成功しました!(^^;;;
長かった。。。。
cupsのテスト印刷が出力されない問題が未解決だけど、ひとまずクライアントからsambaを通じて印刷できるのでよし。