Gentoo 印刷環境構築ガイド
1. 印刷とGentoo Linux
適切なツールを使う
Linuxには素晴らしいプリンタのサポートがあります。印刷を行うための適切なツールはCUPS(Common Unix Printing System)と呼ばれています。
プロジェクトが始まった1999年から、CUPSのインストールとメンテナンスは劇的に改善されました。
このドキュメントではCUPSを使ってローカルやネットワーク上のプリンタをセットアップする方法を説明します。
プロジェクトがより進んだ使用法に関する素晴らしいドキュメントを提供しているので、細かい部分までは説明しません。
2. カーネルの設定
初めに
プリンタをシステムにインストールしたいのなら、プリンタがどのようにしてシステムと接続されているかを知る必要があります。
LPTやUSBの様にローカルポートで接続されていますか?それともネットワークでですか?
そしてもしネットワークで接続されているのなら、Internet Printing Protocol(IPP)を使っていますか?
それともMicrosoft Windows SMB-CIFS Protocol(Microsoft Windows Sharing)を通して接続されていますか?
次の数章で必要となる最小限のカーネル設定を説明します。
もちろん、これはプリンタの接続方法によって異なるので、分かり易いように説明を別けています。
/usr/src/linuxへ移動して、カーネル設定を行うためにmake menuconfigを実行します。
カーネル設定にgenkernelを使用したのなら、抜けがないか確認するためだけにこれらの段階を行うべきです。
次の設定例では、必要なサポートをモジュールではなく、カーネル内部に追加します。
これは強制ではなく、モジュールでのサポートを簡単に扱うことが出来るのならそちらでも構いません。
その後で適切なモジュールを読み込むことを忘れないでください。
また、これは2.6カーネルでの設定例です。
2.4ユーザはどこかにある適切な設定を探さなければなりません。
ではカーネルを設定(もしくは確認)するために、適切な章へ進みましょう。
ローカル接続のプリンタ(LPT)
LPTポートは一般的にパラレルプリンタポートを識別するために使用されます。
まずパラレルポートサポートを有効にし、パラレルプリンタサポートを有効にした後に、(SPARCユーザで無いのならば)PC-styleパラレルポートサポートを有効にします。
Code Listing 2.1: パラレルポートプリンタの設定 |
Device Drivers -->
<*> Parallel port support
<*> PC-style hardware
Device Drivers -->
Character Devices -->
<*> Parallel printer support
|
Parallel port supportで他のオプションを有効にしなければならないユーザが居るかもしれません。
より詳しい情報はカーネル設定のヘルプ機能を確認してください。
これだけです。
カーネル設定を終了し、カーネルを再構築します。
忘れずに新しいカーネルイメージを/bootにコピー(そして必要なら/bootをマウント)し、再起動する前にブートローダーの設定を更新してください。
ではCUPSのインストールと設定に進みましょう。
ローカル接続のプリンタ(USB)
USBでの印刷を行うには、USBサポートとUSBプリンタサポートが必要です。
Code Listing 2.2: USBポートプリンタサポート |
Device Drivers -->
USB Support -->
<*> Support for Host-side USB
--- USB Host Controller Drivers
<*> EHCI HCD (USB 2.0) support
<*> OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support
<*> USB Printer support
|
これだけです。
カーネル設定を終了し、カーネルを再構築します。
忘れずに新しいカーネルイメージを/bootにコピー(そして必要なら/bootをマウント)し、再起動する前にブートローダーの設定を更新してください。
ではCUPSのインストールと設定に進みましょう。
リモート接続のプリンタ(IPP)
Internet Printing Protocolを通してのネットワーク印刷を行いたいのなら、カーネルはネットワークサポートを有効にしているだけでよいのです。
既に設定済みであると仮定して、CUPSのインストールと設定に進みましょう。
リモート接続のプリンタ(SMB-CIFS)
カーネルがSMB CIFSをサポートしなければなりません。
Code Listing 2.3: SMB-CIFSプリンタ設定 |
File systems -->
Network File Systems -->
<*> SMB file system support (to mount Windows shares etc.)
<*> CIFS support (advanced network file system for Samba, Windows and other CIFS compliant servers)
|
これだけです。
カーネル設定を終了し、カーネルを再構築します。
忘れずに新しいカーネルイメージを/bootにコピー(そして必要なら/bootをマウント)し、再起動する前にブートローダーの設定を更新してください。
ではCUPSのインストールと設定に進みましょう。
3. CUPSのインストールと設定
インストール
GentooでのCUPSのインストールはとても簡単です。
CUPSにはあなたが興味を示すかもしれないいくらかの追加機能があります。
これらの機能を有効化したり無効化したりするには、関係するUSEフラグを使用します。
USEフラグ |
CUPSへの影響 |
nls |
多言語サポートを有効化します。nlsを利用すると、現地語化の成果を利用できるようになります。そのため、CUPSをあなたの母国語で利用することが出来ます。
|
pam |
印刷ジョブ認証をPluggable Authentication Modules(PAM)を通して行いたいのなら、CUPSでPAMサポートを有効にすることにより実現できます。
|
samba |
ローカル接続のプリンタをSMB-CIFSプロトコルを通してネットワーク上のWindowsシステムと共有したいのなら、もしくはWindowsシステムに接続されている共有プリンタを利用したいのなら、SAMBAサポートを有効にする必要があります。
|
slp |
管理された環境下では、プリンタを他人にサービスとして提供したいと思うかもしれません。Service Location Protocolを使用することによって、システムのサービスを簡単に検索したり設定したりすることが出来ます。プリンタがサービスとして利用できるか、そのようにしたいのならこのUSEフラグを有効にします。
|
ssl |
リモート認証やプライバシー保護を行いたいのなら、暗号化された印刷セッションを行うSecure Socket Layerを有効にする必要があります。SSLのサポートはネットワークに参加している全てのシステムが利用できなければなりません。
|
現在のUSEフラグを確認してください。
現在のUSEフラグとは別の設定をCUPSのみに行いたいのなら、適当なUSEフラグを/etc/portage/package.useに追加します。
Code Listing 3.1: CUPSのUSEフラグ設定 |
# emerge -pv cups
[ebuild N ] net-print/cups-1.1.23-r1 +nls +pam -samba -slp +ssl 0 kB
# vim /etc/portage/package.use
net-print/cups samba
|
満足のいく結果になったのなら、Portageを使ってCUPSをインストールします。
Code Listing 3.2: CUPSのインストール |
# emerge cups
|
USBプリンタを使用していてカーネルモジュールとしてサポートが必要な場合は、ビルド工程でrc-update add coldplug defaultを実行するように伝えられるでしょう。
これは起動時にどんなUSBカーネルモジュールでも自動的にロードされるようにします。
プリンタがシステムに直接接続されているのなら、CUPSが起動時に自動的に読み込まれるようにする必要があります。
CUPSを起動する前にプリンタが接続されていて電源が入っていることを確認してください。
Code Listing 3.3: CUPSが自動起動するようにする |
# /etc/init.d/cupsd start
# rc-update add cupsd default
|
設定
/etc/cups/cupsd.confにあるCUPSサーバの初期設定は、ほとんどのユーザにとっては十分です。
ですが、いくらかのユーザはCUPS設定にいくつかの変更が必要かもしれません。
次の章では時々使用されるいくつかの変更を紹介します。
-
リモートプリンタ接続では、現在のLinuxワークステーションに接続されているプリンタを他のシステムから使用できるようにします。
-
CUPSリモート管理では、リモートシステムからCUPSの管理を行うことが出来るようにします。
-
Windows PCLドライバサポートの有効化では、Windows PCLドライバをサポートするようにCUPSを設定します。WindowsシステムでSamba共有プリンタを使用したいのならこれが役に立ちます。
-
リモートプリンタの設定では、他のシステムに接続されたプリンタ(Windows共有を除く)を使用するようにシステムを設定します。
リモートプリンタ接続
IPPを通して他のシステムからプリンタを使用できるようにしたいのなら、/etc/cups/cupsd.confでプリンタへのアクセスを明確に許可する必要があります。
もしSAMBAを使ってプリンタを共有したいのなら、この変更は不要です。
お気に入りのエディタで/etc/cups/cupsd.confを開き、システムがプリンタに接続できるようにAllow行を追加します。
次の例では、IPアドレスが192.168.0で始まる全てのシステムにプリンタへのアクセスを許可します。
Code Listing 3.4: プリンタへのリモートアクセスの許可 |
<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.*
</Location>
|
CUPSリモート管理
もしリモート管理に興味があるのなら、CUPS管理へのアクセスをlocalhostだけでなく他のシステムからも許可する必要があります。
/etc/cups/cupsd.confを編集し、必要なシステムのアクセスを許可します。
例えば、IPアドレスが192.168.0.3のシステムのアクセスを許可するには以下のようにします
Code Listing 3.5: /etc/cups/cupsd.confでリモートアクセスを許可 |
<Location /admin>
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.3
</Location>
|
/etc/cups/cupsd.confを変更した後は、忘れずに/etc/init.d/cupsd restartを実行してCUPSを再起動してください。
Windows PCLドライバサポートの有効化
PCLドライバはプリンタサーバにrawデータを送信します。
CUPSでraw印刷を有効にするには、/etc/cups/mime.typesを編集してapplication/octet-streamの行をコメント解除する必要があります。
その後/etc/cups/mime.convsを編集しapplication/octet-streamの行をコメント解除する必要があります。
Code Listing 3.6: raw印刷サポートの有効化 |
# vim /etc/cups/mime.types
application/octet-stream
# vim /etc/cups/mime.convs
application/octet-stream application/vnd.cups-raw 0 -
|
/etc/cups/cupsd.confを変更した後は、忘れずに/etc/init.d/cupsd restartを実行してCUPSを再起動してください。
リモートプリンタの設定
プリンタがリモートのCUPSサーバに接続されているのなら、/etc/cups/client.confを変更することによって簡単にリモートプリンタを使用できるように設定することが出来ます。
プリンタがprintserver.mydomainというシステムに接続されていると仮定し、/etc/cups/client.confをお気に入りのエディタで開いてServerNameを設定します。
Code Listing 3.7: client.confの編集 |
# vim /etc/cups/client.conf
ServerName printserver.mydomain
|
リモートシステムにはあなたが使用するデフォルトの印刷設定があります。
もしデフォルトの印刷設定を変更したいのなら、lpoptionsを使用します。
Code Listing 3.8: デフォルトプリンタの変更 |
# lpstat -a
hpljet5p accepting requests since Jan 01 00:00
hpdjet510 accepting requests since Jan 01 00:00
# lpoptions -d hpljet5p
|
4. プリンタの設定
初めに
設定したいプリンタが異なったプリンタサーバを通してリモートで使用する物なら、以下の作業は必要ありません。
その代わり、リモートプリンタの設定を読んでください。
プリンタの検出
USBプリンタを持っているか、パラレルポートプリンタの電源がLinuxシステム起動時にONになっていたのなら、カーネルからプリンタの検出が完了したという情報を受け取るでしょう。
ですが、これは単に目安のためだけであり、必要ではありません。
Code Listing 4.1: カーネル情報の取得 |
$ dmesg | grep -i print
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series
$ lsusb
Bus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse
|
プリンタのインストール
プリンタをシステムにインストールするには、ブラウザを起動してhttp://localhost:631へアクセスします。
CUPSウェブインターフェースが表示されるでしょう。
ここでCUPSに関する全ての管理作業を行うことが出来ます。
Administrationに行き、rootのログインとパスワード情報を入力します。
管理インターフェースにたどり着いたら、Add Printerをクリックします。
以下の情報を入力する新しい画面が表示されるでしょう。
-
spooler nameは、システムがプリンタを識別するために使用される、短くて分かり易い名前です。この名前にはスペースや特殊記号を含めるべきではありません。例えば、HP LaserJet 5Pではhpljet5pのようにします。
-
locationは、プリンタが物理的に存在する場所です(例えば、部屋の中や、キッチンの右手にある皿洗い機のとなり、等)。これはそれぞれのプリンタを管理するのに役立ちます。
-
descriptionにはプリンタの詳細を記述します。一般的には完全なプリンタ名("HP LaserJet 5P"など)が使われます。
次の画面ではプリンタが接続されているデバイスを尋ねられます。
いくつかのデバイスを選択することが出来ます。
次の表ではいくつかの利用可能なデバイスを紹介しますが、リストは完全ではありません。
デバイス |
詳細 |
AppSocket/HP JetDirect |
この特別なデバイスはHP JetDirectソケットを通したネットワークプリンタを利用できるようにします。特定のプリンタのみがサポートしています。
|
Internet Printing Protocol (IPP or HTTP) |
直接(IPP)もしくはHTTPのIPPプロトコルを通してリモートプリンタへアクセスするにはこれを使用します。
|
LPD/LPR Host or Printer |
プリンタがリモートのLPD/LPRサーバに接続されているのならこれを選択します。
|
Parallel Port #1 |
プリンタがローカルのパラレルポート(LPT)に接続されているのならこれを選択します。プリンタが自動検出されれば、プリンタ名がデバイスに追加されます。
|
USB Printer #1 |
プリンタがローカルのUSBポートに接続されているのならこれを選択します。プリンタ名が自動的にデバイス名に追加されているでしょう。
|
リモートプリンタをインストールするのなら、プリンタのURIを尋ねられるでしょう。
-
LPDプリンタサーバはlpd://hostname/queueを必要とします。
-
HP JetDirectプリンタはsocket://hostnameを必要とします。
-
IPPプリンタはhttp://hostname:631/ipp/queueもしくはipp://hostname/ipp/queueを必要とします。
次に、隣の画面にあるプリンタの製造元とモデルタイプ、そしてモデルナンバーを選択します。
多くのプリンタでは複数のドライバがあるでしょう。
どれか1つを選択するか、LinuxPrinting.org's Printer Listで最適なドライバを検索します。
ドライバは後で簡単に変更することが出来ます。
ドライバが選択されたら、プリンタが正常にシステムに追加されたと表示されるでしょう。
管理インターフェースのプリンタ管理ページに行ってConfigure Printerを選ぶことにより、プリンタ設定(解像度、用紙サイズなど)を変更することが出来ます。
プリンタのテストと再設定
プリンタが正常に動作しているか確認するために、プリンタ管理ページへ行き、プリンタを選択してPrint Test Pageをクリックします。
プリンタが正常に動作していないようなら、Modify Printerをクリックしてプリンタを再設定します。
最初のインストールと同じ画面が表示されますが、デフォルトは現在の設定になっています。
何故プリンタが動作しないのかさっぱり分からないのなら、/var/log/cups/error_logを見ることによって手がかりが掴めるかもしれません。
次の例ではパーミッションエラーがあることが分かります。
もしかすると/etc/cups/cupsd.confでのAllow設定が間違っているのかもしれません。
Code Listing 4.2: CUPSエラーの検索 |
# tail /var/log/cups/error_log
E [11/Jun/2005:10:23:28 +0200] [Job 102] Unable to get printer status (client-error-forbidden)!
|
最適なドライバのインストール
多くのプリンタドライバがあります。
プリンタ用の最も最適なドライバを捜すために、LinuxPrinting Printer Listを訪れてください。
どのドライバがサイトの推奨なのか知るために、ブランドと機種を選択します。
例えば、HP LaserJet 5Pでは、サイトの推奨はljet4ドライバです。
サイトからPPDファイルを/usr/share/cups/modelへダウンロードします。
これはドライバをCUPSウェブインターフェースから利用できるようにします。
では上で述べたようにしてプリンタを再設定しましょう。
5. 特別なプリンタドライバを使用する
初めに
いくらかのプリンタでは特別なドライバが必要か、上で説明した一般的な設定過程では有効にならない追加機能を提供します。
この章ではプリンタの選択とGentoo Linuxでの利用法を説明します。
以下のプリンタやドライバについて説明します。
Gimp-Printドライバ
gimp-printドライバは高品質、オープンソースなプリンタドライバです。
これはCUPS、ghostscript、The Gimp、そして他のアプリケーションをサポートする様々なCanon、Epson、HP、Lexmark、Sony、Olympus、そしてPCLプリンタをサポートしています。
GentooのPortageツリーにはgimp-printドライバのebuildが含まれています。
emergeを使用するだけでインストールすることが出来ます。
ebuildはかなり多くのUSEフラグ(cupsやppdsなど)に反応することに注意してください。
少なくともこれら2つのフラグは有効にしなければなりません。
Code Listing 5.1: gimp-printドライバのインストール |
# emerge gimp-print
|
emergeが完了したら、Gimp-PrintドライバはCUPSウェブインターフェースで利用できるようになります。
HPLIPドライバ
HPLIP Projectはhpijsドライバを含み、スキャナサポートや様々な複合機器用のサービスツールを含んでいます。
印刷をサポートするために、ppdsUSEフラグを有効にしなければなりません。
Code Listing 5.2: hplipドライバのインストール |
# emerge hplip
|
emergeが完了したら、プリンタドライバはCUPSウェブインターフェースで利用できるようになります。
PNM2PPAドライバ
PPAとは、プリンタの代わりにlow-levelプロセスをシステムに送信することに焦点を置いたHPの技術です。
これを使うことにより、プリンタを安価にすることが出来ますが、より多くのリソースを消費します。
LinuxPrintingでpnm2ppaドライバが最適であると表示されたのなら、pnm2ppaフィルタをインストールする必要があります。
Code Listing 5.3: pnm2ppaフィルタのインストール |
# emerge pnm2ppa
|
インストールが完了すれば、上で述べた手順に従ってプリンタを設定します。
6. Microsoft Windowsとの印刷
WindowsクライアントをIPPに設定
Microsoft WindowsはIPPをサポートしています(Windows 9xとMEユーザはこれをインストールする必要があります)。
Linuxに接続されたプリンタをWindowsにインストールするには、プリンタの追加ウィザードを起動してネットワークプリンタを選択します。
URIを尋ねられたら、http://hostname:631/printers/queueを使用します。
システムがプリンタに到達できるか確かめてください。
WindowsクライアントをSamba共有プリンタに設定
プリンタをSMB-CIFSネットワークで共有するには、SAMBAがインストールされていて正しく設定されている必要があります。
この設定方法はこのドキュメントの範囲外ですが、SAMBAでプリンタを共有する設定について簡単に説明します。
/etc/samba/smb.confをお気に入りのエディタで開いて[printers]を以下のように追加します。
Code Listing 6.1: [printers]の追加 |
[printers]
comment = All printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
public = yes
printer name = hpljet5p
|
ではsmb.confファイル内の[global]の一番上まで移動しましょう。
printcap nameとprintingをcupsに設定します。
Code Listing 6.2: [global]の変更 |
[global]
printcap name = cups
printing = cups
|
CUPSでWindows PCLドライバのサポートを有効にしたか確認してください。
では、smbサービスを再起動して変更を有効にします。
LinuxクライアントをWindowsプリントサーバに設定
何よりもまず、プリンタがWindowsシステムで共有されているか確認してください。
次に、CUPSウェブインターフェースで、上で説明したようにしてプリンタを設定します。
CUPSがWindows Printer via SAMBAという別のドライバを追加したことに気がつくでしょう。
これを選択し、URIにsmb://username:password@workgroup/server/printernameもしくはsmb://server/printernameを使用します。
7. 印刷関連のアプリケーション
初めに
プリンタの設定を手伝ってくれたり、追加の印刷フィルタを使ったり、印刷能力に新しい機能を追加したりと行ったことを行う多くのツールが存在します。
この章ではそれらの内のいくつかを紹介します。
この一覧は完全ではなく、それぞれのツールについて事細かく議論することもしません。
Gtk-LP - Gtkによって作られたプリンタ設定ツール
Gtk-LPを使えば、スタンドアロンのGtkアプリケーションからプリンタのインストール、修正、そして設定を行うことが出来ます。
これはCUPSを使用し、CUPSの標準的な機能を全て提供します。
CUPSウェブインターフェースが嫌いだったり、毎日の印刷ルーチンのためのスタンドアロンアプリケーションが欲しいのなら、使ってみる価値はあります。
インストールするには、gtklpをemergeします。
Code Listing 7.1: Gtk-LPのインストール |
# emerge gtklp
|
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|