3. Windows マシンへプリント

3.1. Windows マシンへの接続

Figure 2. ネットワーク上でのプリント

SMB と CIFS は、Windows のファイルおよびプリンタ共有プロトコルです。 Samba を使って、これらのプロトコルを実装した Windows マシンと通信します。 CUPS の設定作業に取り組む前に、Samba SMB/CIFS クライアント Figure 2 である smbclient コマンドで Windows マシンに接続できることを確認してください。

Windows マシンへの接続例と、その実行結果を以下に示します。
/usr/bin/smbclient -L rice -U fred

added interface ip=10.6.7.234 bcast=10.6.7.255 nmask=255.255.255.0
Got a positive name query response from 10.6.7.8 ( 10.6.7.8 )
Password: (not shown)

Sharename  Type  Comment
PRINTER$   Disk
INKJET     Printer
STUFF      Disk
IPC$       IPC    Remote Inter Process Communication 

上記の smbclient コマンドは、ある Windows マシンで 利用できる共有リソースを要求しています。-L オプションで "rice" という調べたいマシン名を指定し、 -U オプションで "fred" というユーザ名を指定しています。 実行結果には "INKJET" というプリンタが提示されています。

Windows ネーミングサービス が使えない場合、-I オプションで Windows マシンの IP アドレスを指定します。使用例は以下のとおりです。
/usr/bin/smbclient -I 10.6.7.8 -L rice -N

smbclient コマンドに関する詳しい情報は Samba のドキュメントをご覧ください。

3.2. CUPS 設定

Windows プリンタを見つけたら、次は CUPS の設定です。まず初めに、 インストールされた CUPS に smb backend ファイルが用意されているかを次のコマンドで確認します。
ls -l /usr/lib/cups/backend/smb 

このファイルが見つからない場合、次のコマンドでファイルを作ります。
ln -s `which smbspool` /usr/lib/cups/backend/smb

3.1項で、例として用いたプリンタの設定手順を以下に示します。
/usr/sbin/lpadmin -p RicePrinter -v smb://fred:mypass@rice/INKJET -P /root/inkjet.ppd
/usr/bin/enable RicePrinter
/usr/sbin/accept RicePrinter
/usr/sbin/lpadmin -d RicePrinter

前にも述べましたが、bash には enable というビルトインコマンドがあり、 プリンタを使用可能にするにはフルパス (/usr/bin/enable) で実行してください。

一行目の "lpadmin" コマンドは、共有される Windows プリンタ の設定を行います。パラメータには、ユーザ名、パスワード、netbios 名、 プリンタ名を与えます。他のコマンドについての解説は Section 2.3 を参照してください。

これで、プリンタのテスト準備ができました。lp コマン ドから、または適当なアプリケーションからテストプリントを行ってください。