このページでは自宅サーバーWindowsファイルサーバーとして利用するためのSambaプリンタサーバーとして使用する方法について解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
Sambaサーバーの構築

Sambaサーバーについて

Sambaの構成と設定の方法

SWATの準備と設定

Sambaのコントロール

Sambaの全体動作の設定

ユーザーアカウントの設定

共有ポイントの基本的な設定

ホームディレクトリの利用

特殊な共有ポイントの設定

プリンタサーバーの設定

Sambaについてその他


LinuxOSは印刷が苦手?

LinuxOS クライアント 用途で利用したい場合、一番ネックになるのは プリンタ 環境、正確には プリンタドライバ でしょう。

例えば家庭用プリンタの場合、100%近くが WindowsOS での使用ですから、プリンタのメーカーにしてみればお金にならないWindowsOS以外の デバイスドライバ を準備するわけにはいかないという事情があります。

Linuxの ディストリビューター 側にしてみれば、できるだけ多くのプリンタが使えるように独自にデバイスドライバを準備するように働いてくれてはいるものの、各メーカーから数ヶ月おきに新製品が発表されるような現状では、開発が追いつかないのも当然です。

とはいえLinuxOSは、世の中で旧来から使われている基本的なプリントの プロトコル はほぼカバーしていますから、 WBEL CentOS に標準で インストール されている cups cupsデーモンについて(WBEL3) cupsデーモンについて(CentOS3) cupsデーモンについて(WBEL4) cupsデーモンについて(CentOS4) cupsデーモンについて(CentOS5) などのプリンタ デーモン を使い、予め準備されているプリンタドライバを利用すれば、大抵のプリンタで とりあえず 印刷できるようにはなるでしょう。

ただし最近のプリンタは、用紙設定や印刷品質などの「機種依存の設定」が非常に多く、画一的なデバイスドライバではその性能を充分に生かしきれないケースがほとんどです。

LinuxOSは、その操作環境も アプリケーション も一時期に比べれば飛躍的に「実用クライアント OS 」に近づきつつあります。

また、例えば CPU メモリモジュール ハードディスク のインターフェースなどの規格は、コンピュータ業界全体で歩調を合わせながら比較的ゆっくりと変化するため、LinuxOSの カーネル ディストリビューション の対応が遅れるということはまずありません。

しかし家庭用プリンタのように、「WindowsOSで使えればそれでいい」とばかりに機種依存の機能が次々に取り替えられ、しかもライフサイクルが短い デバイス にはとても対応しきれないというのが現実の姿というわけです。

Sambaをプリンタサーバーとして使うには

とはいえ、現在 WBEL CentOS で構築中の ホスト機 クライアント ではなく サーバー です。

サーバーはそれ自身を直接操作することは前提になっていませんから、実際のところ 「サーバーから直接印刷する」 というケースは考えないでも良いはずです。

だとすれば、 構築中のLinuxサーバー は、

LAN 内の WindowsOS クライアント機 からの印刷のときだけ動作させる。」

という使用方法に限定してしまっても一向に構わないはずです。

そういう割り切り方ができるのであれば、 Samba を利用することで「そこそこ実用的な」プリンタ サーバー として 構築中のLinuxサーバー を利用できる可能性が高くなります。

どういうことかというと、

構築中のLinuxサーバー にはプリンタドライバを インストール せず、ただの「印刷データの中継点」として使用する。

という手段を取るわけです。

具体的には、印刷データの処理をすべてWindowsOSであるクライアント側で行い、Sambaを介して印刷データをそのまま 構築中のLinuxサーバー に送るように設定します。

この方法を使えばプリンタの機種が何であれ、 構築中のLinuxサーバー ハードウェア 的にプリンタを認識していれば大丈夫というわけです。

ただ、最近の家庭用プリンタの多くは USB 接続になっていて、インクの残量などプリンタの状態をパソコン側に送って管理するものが多くなっています。

しかし、WBELやCentOSは印刷データをプリンタ側に送る仕組みしかなく、逆方向の情報をクライアント側に送ることはできませんから、プリンタを運用するための情報は不十分になりがちです。

またこのことが、しばしば印刷動作の不具合の原因となることがあります。

LinuxOSをプリンタサーバーとして利用する場合、以上のような理由から、WindowsOSでプリンタサーバーを設置する場合と同じように運用できると期待すると、必ずがっかりします。

という訳ですから、WBELやCentOSをプリンタサーバーとして使用する場合は、ある程度「ダメで元々」という気持ちで取り組み、「うまくいかなければWindowsOSに直接繋いで印刷すればいい」という程度の期待度でチャレンジしても良いように思います。

このページの先頭へ↑

プリンタの準備をする

ここでは設定例として、 キヤノン PIXUS560i をUSB接続する場合で解説しますが、他のプリンタでも基本的には設定は変わらないはずですので参考にしてください。

サーバー機 がクローゼットの中に設置してあるので お便利管理人宅のサーバーについて 、事実上プリンタを設置してもかえって不便、という事情もあります。

実をいうと、お便利サーバーの管理人宅にはプリンタサーバーはありません。

プリンタは滅多に使用しませんし、 クライアント はすべてノートパソコンですから、印刷したいときにはパソコンをプリンタのところにもって行けばいい、という考え方からプリンタサーバーを設置していないわけです。

今回は解説のために敢えてプリンタサーバーを構築してみましたが、はっきり言って検討は不十分です。本当はもっと良い方法があるはずですからご自身で充分に検討してみることをお勧めします。

さて、本来 WindowsOS 向けのプリンタの多くは パラレル接続 が一般的だったのですが、 最近の家庭用のプリンタは USB 接続しかできないものも多くなってきました。

もしもお使いのプリンタがパラレル接続可能であれば、プリンタインターフェースとしての歴史が長い分、パラレル接続を利用したほうが問題は少ないでしょう。

比較的新しいコンパクトなホスト機 ケースの種類について や、ノートパソコン ノートパソコンをサーバーに使用する には、パラレルポートが実装されていない場合があります。

ただ、プリンタ側にUSBポートしか準備されていない場合や、 サーバー機 にパラレルポートが実装されておらず、USB以外には利用できない場合はUSBを使用するしかありません。

まず 構築中のLinuxサーバー にプリンタを接続する前に、サーバー機がUSBポートを実装し、利用可能かどうかを確認してみましょう。

サブネット 内の適当な クライアント機 から SSHクライアント 構築中のLinuxサーバー ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4) SSHクライアントでサーバーに接続する(CentOS5)

lspci は、WBELやCentOSのカーネルが検出した有効なインターフェースを一覧するコマンドです。

それから su コマンド アカウント "root" に変更し、 lspci というコマンドで利用可能なUSBポートが存在するかどうかを確認します。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# lspci | grep USBEnter grepコマンドについて
00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)
[root@web1 ~]#   USBコントローラが検出されました↑。

WBEL CentOS がUSBポートを認識できていない場合は何もメッセージは表示されません。

もしも 不要デーモンの停止(WBEL3) 不要デーモンの停止(CentOS3) 不要デーモンの停止(WBEL4) 不要デーモンの停止(CentOS4) 不要デーモンの停止(CentOS5) kudzu デーモン を停止している場合には、 ntsysv コマンドで稼動状態に切り替えておく必要があります。

サーバー機にUSBポートがあるにも係わらず、有効なUSB接続が検出されない場合、 BIOS の設定でUSB デバイス の利用が 無効 になっている可能性がありますので、お使いのパソコンや マザーボード のマニュアルを参考に、 有効 に設定しなおしてください。

また他にUSBか検出されない可能性としては、例えばUSBが オンボード ではなく PCIスロット に拡張カードとして供給されている場合に、取り付け方法の間違いやマザーボードとの相性の問題が起こっていることも考えられるでしょう。

もちろん、Linux カーネル が認識不可能な仕様のUSBが実装されている場合や、コントローラーの根本的な故障というケースもあり得ますので、実際にはケースバーケースで対処が必要になるかもしれません。

USBポートが確認できたらサーバー機にプリンタを接続してプリンタの電源を入れます。

printconf コマンドは、 CUI 用のプリンタ基本設定ツールです。
本来枠線として表示されるべき部分が盛大に文字化けして画面が見にくいかもしれませんが、動作上はなんら問題ありませんので気にしないでください。
また printconf CentOS5 からは実装されなくなってしまっていますので、ここから先の説明はそれ以前の ディストリビューション を対象としています。
CentOS5をプリンタサーバーとして利用するには右に示すような CUI 環境でのプリンタ設定ツールを使うのではなく、 X-Window を起動して 「システム」 「管理」 「印刷」 を開いて GUI 環境から設定することになるはずです。
お便利サーバー.com宅には現在プリンタ環境がなく、設定の説明ができなくて申し訳ないのですが...。

プリンタの初期動作が終わったら、引き続きプロンプトから printconf コマンドを実行します。すると以下のようにプリンタの登録のための設定画面が開きます。

[root@web1 ~]# printconfEnter
Alchemist編集環境を初期化中...
Linux印刷データベースを初期化中...


printconf設定初期画面
"printconf"設定初期画面

設定画面が開いたら、 TAB キーでカーソルを "新規" に移動して Enter キーを押してください。すると以下のように "新規プリンタの作成" パネルが開きます。

新規プリンタの作成画面
"新規プリンタの作成"画面

まず、 プリンタ名: の右側に、適当なプリンタ名を入力します。後からプリンタ ドライバ インストール しやすいように、プリンタの機種名がわかりやすいように名前を設定しておきましょう。

名前を設定したら、その下の プリンタデバイス: の中で ローカルプリンタデバイス LOCAL が選ばれていることを確認して、 TAB キーでカーソルを "次" に移動して Enter キーを押してください。

プリンタ名を設定して次へ
プリンタ名を設定して次へ

すると、自動的に検出されたプリンタが以下のように表示されるはずです。

検出されたPIXUS560i
検出された"PIXUS560i"

もしもここで自動的にプリンタが検出されない場合は、 カスタム を選んで手動で設定を行うことになりますが、普通の家庭用プリンタであればまず検出されないということはありません。

検出されたプリンタを キーで選び、 TAB キーでカーソルを "次" に移動して Enter キーを押してください。

プリンタを選択して次へ
プリンタを選択して次へ

すると、以下のように "プリンタドライバ" 画面が表示されます。

プリンタドライバ画面
"プリンタドライバ"画面

ここでは冒頭で説明したとおり、 構築中のLinuxサーバー は印刷データの中継点として利用するだけですから、 "直接印刷キュー" を選び、 TAB キーでカーソルを "次" に移動して Enter キーを押してください。

直接印刷キューを選んで次へ
"直接印刷キュー"を選んで次へ

すると最後に設定の確認画面が表示されますので、間違いがなければそのまま Enter キーを押してください。内容を修正する必要がある場合は、 TAB キーでカーソルを "戻る" に移動して Enter キーを押してください。

プリンタの設定内容の確認画面
プリンタの設定内容の確認画面

設定が完了すると以下のようにプリンタが追加された状態が確認できます。

プリンタの追加確認画面
プリンタの追加確認画面

TAB キーでカーソルを "終了" に移動して Enter キーを押してください。再確認画面でもう一度 Enter を押すと設定ツールが終了します。

これで 構築中のLinuxサーバー にプリンタが登録されました。

このページの先頭へ↑

プリンタデーモン"cups"の自動起動設定

WBEL CentOS は標準のプリンタ デーモン として cups cupsデーモンについて(WBEL3) cupsデーモンについて(CentOS3) cupsデーモンについて(WBEL4) cupsデーモンについて(CentOS4) cupsデーモンについて(CentOS5) を利用します。

printconf コマンドからプリンタの登録を行うと、cupsは自動的に起動されます。
しかし、自動起動設定していない場合には、 サーバー機 を再起動すると稼動しなくなります。

cupsはプリンタ ドライバ を利用した印刷だけではなく、今回のように単純な印刷データの中継として動作するときも働きます。

もしも 不要デーモンの停止について(WBEL3) 不要デーモンの停止について(CentOS3) 不要デーモンの停止について(WBEL4) 不要デーモンの停止について(CentOS4) 不要デーモンの停止について(CentOS5) で、 サーバー機 の起動時にcupsを起動しないように設定を変更している場合は、自動的に起動するように設定を変更しておく必要があります。

構築中のLinuxサーバー が起動したときに自動的にcupsの デーモン が起動するように設定するには、 ntsysv コマンド で設定画面を開き、 "cups" にチェックを入れておきます。

cupsをntsysvで自動起動登録する
"cups"を"ntsysv"で自動起動登録する

これでサーバー機を再起動しても、 構築中のLinuxサーバー は自動的にプリンタサーバーとして稼動するようになりました。

このページの先頭へ↑

Sambaのプリンタ設定

Samba のプリンタ設定は、 SWAT から行いますので、まず サブネット 内の接続可能な ホスト からSWATに接続してください SWATの利用について

そして、前に行ったプリンタ登録を有効にするために、設定を行う前にSambaの再起動を行ってください Sambaのコントロールについて

続いてSWATの任意のメニューから "PRINTERS" を左クリックしてください。

PRINTERSメニューを開く
"PRINTERS"メニューを開く

するとプリンターの設定メニューに切り替わりますので、 印刷共有の選択 ボタンの右側のプルダウンメニューを開きます。

この段階ではまだ "PIXUS560i" のプリンタ設定は "/etc/samba/smb.conf" には保存されていません。
設定が保存されてSambaを再起動すると、共有ポイントの先頭の自動設定記号である "[*]" はなくなります。

すると以下のように、先ほど "printconf" コマンドで追加したプリンタが選択できるようになっているはずですので、これを選択して 印刷共有の選択 ボタンを左クリックしてください。

すると選択したプリンタの設定画面が開きますので、必要に応じて設定を修正します。

"comment" ディレクティブ には、初期値として先に使用した "printconf" コマンド の一般名が設定されていますが、これはわかりやすいように適当な名前に修正してしまいましょう。もちろん動作には無関係ですのでそのままでも構いません。

この部分の判断は、お便利サーバー管理人からはなんとも言いようがありません。ご自宅の家庭環境なりに応じて設定してください。

"guest ok" ディレクティブは、 デフォルト では "No" になっていますので、このままではSambaに登録されているユーザーアカウントしかプリンタを利用できません。

これを、Sambaに接続可能な LAN 内のすべてのユーザーからの利用を許可するには "Yes" と設定してください。

また、プリンタの種類によっては、本来プリンタの管理権限を与えるために準備されている "printer admin" ディレクティブにユーザーアカウント名を記述しておかなければ、後で WindowsOS クライアントにプリンタ ドライバ インストール するときに不具合が出たり、印刷そのものがうまくいかないことがあります。

またプリンタによっては、プリンタドライバをインストールした後にWindowsOS側で追加設定を行わなければならず、設定がきちんとできるまではこのディレクティブにユーザーアカウント名を記述したままにしておかなれけばならない場合もあります。

実は最近の家庭用プリンタは非常に多機能で、常に管理権限でなければ使えないものが多くなってきています。

管理上の問題は残りますが、 "printer admin" にユーザーアカウント名を記述しておかなければ動作しないタイプのプリンタの場合は永続的な設定もやむを得ないでしょう。

設定が終わったら、 Samba の同じ設定画面から 設定を反映 ボタンを左クリックし、Sambaの再起動などを行って設定を有効化してください Sambaのコントロール

設定が有効になったら、印刷を許可している ユーザーアカウント から、 サブネット 内の任意の WindowsOS クライアント で、適当な方法でSambaサーバーに接続してみてください。

これまでフォルダのアイコンだったプリンタが、以下のようにプリンタのアイコンに変わっていることが確認できるはずです。

プリンタの表示例
プリンタの表示例

以上でサーバー側の設定は終了しましました。

このページの先頭へ↑

WindowsOSクライアントへのプリンタドライバの導入

Samba にプリンタが登録されたら、 クライアント機 上で WindowsOS のクライアント用のプリンタ ドライバ (インストーラ)を準備し、Samba上のプリンタアイコンを右クリックして 接続(N) を選択します。

プリンタドライバのインストールを行う
プリンタドライバのインストールを行う

すでにクライアント機上に該当機種のプリンタドライバが過去 インストール されたことがあれば、程なくプリンタの設定は完了します。

初めて利用するプリンタの場合は、ここでWindowsOSからドライバを要求されますので、指示に従ってドライバをインストールしてください。

ドライバのインストールが終わったら、プリンタアイコンを右クリックして 開く(O) を選択し、開いた印刷キューの ダイアログ プリンタ(P) メニューから プロパティ(R) を選び、プロパティのダイアログから テストページの印刷(T) を実行してみてください。

共有プリンタを開く
共有プリンタを開く

プリンタのプロパティを開く
プリンタのプロパティを開く

テスト印刷を実行する
テスト印刷を実行する

これでテスト印刷が正常に行われれば基本的な設定はOKと判断してよいでしょう。

もしもテスト印刷がうまくいかないときは、例えばプリンタから ホスト 側に情報を送る機能などの「プリンタ固有の機能」が邪魔になっているケースが多いようです。

こういうケースが疑われるときは、例えばプリンタプロパティ画面から、以下の図の中の 双方向サポートを有効にする(E) の部分の設定を無効にしてみるのも一つの解決方法です。

テスト印刷を実行する
テスト印刷を実行する

また、Sambaの "printer admin" に記述されていないユーザーアカウントで接続してプリンタドライバをインストールすると、プリンタポートが正常に設定されないことがあります(上の図は正常にインストールされた場合です)。


ムックですが管理人の
イチオシテキストです↓

こういう場合はWindowsOSのコントロールパネルからプリンタを削除し、 "printer admin" にユーザーアカウントを登録してSambaの設定を有効化 Sambaのコントロール した後、改めてプリンタドライバをインストールする必要があるかもしれません。

LinuxOS でプリンタを利用するのは、このように「試行錯誤的」になることが多いので、それなりに大変な作業になります。

という訳ですから、お便利サーバー管理人のように、ある程度チャレンジしてみてどうしても動作に納得がいかないときは「すっぱりあきらめる」ことも必要だと思います。

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System