Gentoo Logo

Gentoo 印刷環境構築ガイド

Content:

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
    (システムが使用しているHCDを選択してください。どれを選べばよいのか分からないのなら、別のターミナルで"lspci -v | grep HCI"を実行します。)
    <*> 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

(例えば、CUPSのSAMBAサポートを有効にするならこのようにします)
# 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

(printserver.mydomainの部分を実際に使用するプリンタサーバ名に置き換えてくださ)
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

(HP LaserJet 5Pをデフォルトプリンタに設定します)
# lpoptions -d hpljet5p

4. プリンタの設定

初めに

設定したいプリンタが異なったプリンタサーバを通してリモートで使用する物なら、以下の作業は必要ありません。 その代わり、リモートプリンタの設定を読んでください。

プリンタの検出

USBプリンタを持っているか、パラレルポートプリンタの電源がLinuxシステム起動時にONになっていたのなら、カーネルからプリンタの検出が完了したという情報を受け取るでしょう。 ですが、これは単に目安のためだけであり、必要ではありません。

Code Listing 4.1: カーネル情報の取得

(パラレルポートプリンタ用)
$ dmesg | grep -i print
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series

(USBプリンタ用)
$ 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フラグ(cupsppdsなど)に反応することに注意してください。 少なくともこれら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の技術です。 これを使うことにより、プリンタを安価にすることが出来ますが、より多くのリソースを消費します。

LinuxPrintingpnm2ppaドライバが最適であると表示されたのなら、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 nameprintingcupsに設定します。

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


Print

Updated September 9, 2005

Summary: このドキュメントでは、CUPSとSambaを用いたプリンタのインストールとメンテナンスを説明します。 ローカルとネットワーク両方のインストールをカバーしており、他のOSからのプリンタの共有方法についても知ることが出来ます。

Sven Vermeulen
Author

hibou
翻訳

小林弘樹
翻訳

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

php|architect

php|architect

Copyright 2001-2005 Gentoo Foundation, Inc. Questions, Comments? Email [email protected].