1. net/sambaをインストール
2. /usr/pkg/etc/samba/smb.confで、wins server = xxx.xxx.xxx.xxxを指定する。wins supportはコメントアウトする。
3. /etc/rc.confで、
lpd=YES
nmbs=YES
とし、lpdとnmbdを起動しておく
4. smbclientコマンドで、接続できるかテストする。
$ smbclient //machinename/printername
必要なら、-U usernameでユーザー名を指定する。
5. print/ghostscriptをインストール。
6. smbprintを/usr/local/bin/に置き、実行パーミッションの設定をする。
7. 素のsmbprintだとユーザー名をsmbclientに正しく渡してくれないので、
| smbclient "\\\\$server\\$service" $password -U $server -N -c 'print -' >> $logfile
を、
| smbclient "\\\\$server\\$service" $password -U $username -N -c 'print -' >> $logfile
と書き換える。
8. printcapを書く。
lp|lufer|hplj4:\
:mx#0:sh:lp=/dev/null:sd=/var/spool/lpd/lufer:\
:af=/etc/lpd/lufer/acct:if=/usr/local/bin/smbprint:
lpはプリンタ名、その後ろのluferとhplj4は何でもいいみたい。よくわからんけど。
sdはスプールディレクトリ。mkdirしておこう。
afは設定ファイルを置くディレクトリ。何でも良い。この場合は、/etc/lpd/lufer/に設定ファイルを置く事になる(acct部は無視される)。
9. 設定ファイルを書く。
server=lufer // サーバー名
service=hp // 共有名
username= // ユーザー名
password= // パスワード
device=ljet4 // ghostscriptでのデバイス名
gs_options=-r300x300 // ghostscriptに渡すオプション
スペースを含む時は、""でくくってやる事。service="printer for 3F"
gs_options="-r300x300 -sPAPERSIZE=a4"
のように。10. テスト
うまく行けば、
$ lpr -P lp chess.ps
のようにすると、印刷される。11. トラブルシューティング
- lprをした直後に
$ lpq -P lp
として、何も表示されなければ、スプールディレクトリが変なのかも。- smbprintは/tmp/smb-print.logにログを作るので、lprの後しばらくたってもこのファイルが無い場合、smbprintが呼ばれていない。smbprintのpermissionやprintcapや設定ファイルを見直そう。
- あとは、/tmp/smb-print.logを見て、エラーメッセージを参考に。
12. windows 2000の場合の注意
windows 2000の場合、
ERRDOS - ERRbadaccess (Invalid open mode.) opening remote file stdin-2348
というエラーが出る事がある。windows側で、スプールを使わずにプリンタに直接データを送り込むように設定していると、そうなる。スプールを使うようにwindows側の設定を変えましょう。
参考
http://www.netbsd.org/docs/misc/smbprint/
http://www.mail-archive.com/samba@lists.samba.org/msg01621.html
0 件のコメント:
コメントを投稿