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 のドキュメントをご覧ください。
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 コマン ドから、または適当なアプリケーションからテストプリントを行ってください。