Linuxには素晴らしいプリンタのサポートがあります。印刷を行うための適切なツールはCUPS(Common Unix Printing System)と呼ばれています。 プロジェクトが始まった1999年から、CUPSのインストールとメンテナンスは劇的に改善されました。
このドキュメントではCUPSを使ってローカルやネットワーク上のプリンタをセットアップする方法を説明します。 プロジェクトがより進んだ使用法に関する素晴らしいドキュメントを提供しているので、細かい部分までは説明しません。
プリンタをシステムにインストールしたいのなら、プリンタがどのようにしてシステムと接続されているかを知る必要があります。 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ポートは一般的にパラレルプリンタポートを識別するために使用されます。 まずパラレルポートサポートを有効にし、パラレルプリンタサポートを有効にした後に、(SPARCユーザで無いのならば)PC-styleパラレルポートサポートを有効にします。
コード表示 2.1: パラレルポートプリンタの設定 |
Device Drivers -->
<*> Parallel port support
<*> PC-style hardware
Device Drivers -->
Character Devices -->
<*> Parallel printer support
[*] IEEE 1284 transfer modes)
|
注意: Parallel port supportで他のオプションを有効にしなければならないユーザが居るかもしれません。 より詳しい情報はカーネル設定のヘルプ機能を確認してください。 |
これだけです。 カーネル設定を終了し、カーネルを再構築します。 忘れずに新しいカーネルイメージを/bootにコピー(そして必要なら/bootをマウント)し、再起動する前にブートローダーの設定を更新してください。
ではCUPSのインストールと設定に進みましょう。
USBでの印刷を行うには、USBサポートとUSBプリンタサポートが必要です。
コード表示 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のインストールと設定に進みましょう。
Internet Printing Protocolを通してのネットワーク印刷を行いたいのなら、カーネルはネットワークサポートを有効にしているだけでよいのです。 既に設定済みであると仮定して、CUPSのインストールと設定に進みましょう。
カーネルがSMB CIFSをサポートしなければなりません。
コード表示 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のインストールと設定に進みましょう。
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に追加します。
コード表示 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をインストールします。
コード表示 3.2: CUPSのインストール |
# emerge cups
|
USBプリンタを使用していてカーネルモジュールとしてサポートが必要な場合は、ビルド工程でrc-update add coldplug defaultを実行するように伝えられるでしょう。 これは起動時にどんなUSBカーネルモジュールでも自動的にロードされるようにします。
プリンタがシステムに直接接続されているのなら、CUPSが起動時に自動的に読み込まれるようにする必要があります。 CUPSを起動する前にプリンタが接続されていて電源が入っていることを確認してください。
コード表示 3.3: CUPSが自動起動するようにする |
# /etc/init.d/cupsd start # rc-update add cupsd default |
/etc/cups/cupsd.confにあるCUPSサーバの初期設定は、ほとんどのユーザにとっては十分です。 ですが、いくらかのユーザはCUPS設定にいくつかの変更が必要かもしれません。
次の章では時々使用されるいくつかの変更を紹介します。
IPPを通して他のシステムからプリンタを使用できるようにしたいのなら、/etc/cups/cupsd.confでプリンタへのアクセスを明確に許可する必要があります。 もしSAMBAを使ってプリンタを共有したいのなら、この変更は不要です。
お気に入りのエディタで/etc/cups/cupsd.confを開き、システムがプリンタに接続できるようにAllow行を追加します。 次の例では、IPアドレスが192.168.0で始まる全てのシステムにプリンタへのアクセスを許可します。
コード表示 3.4: プリンタへのリモートアクセスの許可 |
<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.*
</Location>
|
また、ネットワーク上の別マシンから送られてくる印刷要求に応答できるよう、 CUPSが待ち受けるポートを指定する必要もあるでしょう。
コード表示 3.5: /etc/cups/cupsd.confでポートの設定 |
Port 631
(次の2行を必ずコメントアウトします)
#Listen 127.0.0.1:631
#Listen localhost:631
|
もしリモート管理に興味があるのなら、CUPS管理へのアクセスをlocalhostだけでなく他のシステムからも許可する必要があります。 /etc/cups/cupsd.confを編集し、必要なシステムのアクセスを許可します。 例えば、IPアドレスが192.168.0.3のシステムのアクセスを許可するには以下のようにします
コード表示 3.6: /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を再起動してください。
PCLドライバはプリンタサーバにrawデータを送信します。 CUPSでraw印刷を有効にするには、/etc/cups/mime.typesを編集してapplication/octet-streamの行をコメント解除する必要があります。 その後/etc/cups/mime.convsを編集しapplication/octet-streamの行をコメント解除する必要があります。
コード表示 3.7: 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を設定します。
コード表示 3.8: client.confの編集 |
# vim /etc/cups/client.conf (printserver.mydomainの部分を実際に使用するプリンタサーバ名に置き換えてくださ) ServerName printserver.mydomain |
リモートシステムにはあなたが使用するデフォルトの印刷設定があります。 もしデフォルトの印刷設定を変更したいのなら、lpoptionsを使用します。
コード表示 3.9: デフォルトプリンタの変更 |
(まず利用可能なプリンタの一覧を表示します) # lpstat -a hpljet5p accepting requests since Jan 01 00:00 hpdjet510 accepting requests since Jan 01 00:00 (HP LaserJet 5Pをデフォルトプリンタに設定します) # lpoptions -d hpljet5p |
設定したいプリンタが異なったプリンタサーバを通してリモートで使用する物なら、以下の作業は必要ありません。 その代わり、リモートプリンタの設定を読んでください。
USBプリンタを持っているか、パラレルポートプリンタの電源がLinuxシステム起動時にONになっていたのなら、カーネルからプリンタの検出が完了したという情報を受け取るでしょう。 ですが、これは単に目安のためだけであり、必要ではありません。
コード表示 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をクリックします。 以下の情報を入力する新しい画面が表示されるでしょう。
次の画面ではプリンタが接続されているデバイスを尋ねられます。 いくつかのデバイスを選択することが出来ます。 次の表ではいくつかの利用可能なデバイスを紹介しますが、リストは完全ではありません。
| デバイス | 詳細 |
| 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を尋ねられるでしょう。
次に、隣の画面にあるプリンタの製造元とモデルタイプ、そしてモデルナンバーを選択します。 多くのプリンタでは複数のドライバがあるでしょう。 どれか1つを選択するか、LinuxPrinting.org's Printer Listで最適なドライバを検索します。 ドライバは後で簡単に変更することが出来ます。
ドライバが選択されたら、プリンタが正常にシステムに追加されたと表示されるでしょう。 管理インターフェースのプリンタ管理ページに行ってConfigure Printerを選ぶことにより、プリンタ設定(解像度、用紙サイズなど)を変更することが出来ます。
プリンタが正常に動作しているか確認するために、プリンタ管理ページへ行き、プリンタを選択してPrint Test Pageをクリックします。
プリンタが正常に動作していないようなら、Modify Printerをクリックしてプリンタを再設定します。 最初のインストールと同じ画面が表示されますが、デフォルトは現在の設定になっています。
何故プリンタが動作しないのかさっぱり分からないのなら、/var/log/cups/error_logを見ることによって手がかりが掴めるかもしれません。 次の例ではパーミッションエラーがあることが分かります。 もしかすると/etc/cups/cupsd.confでのAllow設定が間違っているのかもしれません。
コード表示 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へダウンロードし、 rootで/etc/init.d/cupsd restartを実行します。 これはドライバをCUPSウェブインターフェースから利用できるようにします。 では上で述べたようにしてプリンタを再設定しましょう。
いくらかのプリンタでは特別なドライバが必要か、上で説明した一般的な設定過程では有効にならない追加機能を提供します。 この章ではプリンタの選択とGentoo Linuxでの利用法を説明します。
以下のプリンタやドライバについて説明します。
gimp-printドライバは高品質、オープンソースなプリンタドライバです。 これはCUPS、ghostscript、The Gimp、そして他のアプリケーションをサポートする様々なCanon、Epson、HP、Lexmark、Sony、Olympus、そしてPCLプリンタをサポートしています。
GentooのPortageツリーにはgimp-printドライバのebuildが含まれています。 emergeを使用するだけでインストールすることが出来ます。 ebuildはかなり多くのUSEフラグ(cupsやppdsなど)に反応することに注意してください。 少なくともこれら2つのフラグは有効にしなければなりません。
コード表示 5.1: gimp-printドライバのインストール |
# emerge gimp-print
|
emergeが完了したら、Gimp-PrintドライバはCUPSウェブインターフェースで利用できるようになります。
HPLIP Projectはhpijsドライバを含み、スキャナサポートや様々な複合機器用のサービスツールを含んでいます。 印刷をサポートするために、ppdsUSEフラグを有効にしなければなりません。
コード表示 5.2: hplipドライバのインストール |
(ppds USEフラグが有効になっているか確認してください) # emerge -vp hplip These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] net-print/hplip-0.9.5 +X +cups +foomaticdb +ppds -qt -scanner -snmp +usb 9,255 kB Total size of downloads: 9,255 kB # emerge hplip # /etc/init.d/hplip start # /etc/init.d/cupsd restart # rc-update add hplip default |
emergeが完了したら、プリンタドライバはCUPSウェブインターフェースで利用できるようになります。
PPAとは、プリンタの代わりにlow-levelプロセスをシステムに送信することに焦点を置いたHPの技術です。 これを使うことにより、プリンタを安価にすることが出来ますが、より多くのリソースを消費します。
LinuxPrintingでpnm2ppaドライバが最適であると表示されたのなら、pnm2ppaフィルタをインストールする必要があります。
コード表示 5.3: pnm2ppaフィルタのインストール |
# emerge pnm2ppa
|
インストールが完了したら、プリンタに適したPPDファイルをLinuxPrintingサイトからダウンロードし、/usr/share/cups/modelに置きます。次に、上で述べた手順に従ってプリンタを設定します。
Microsoft WindowsはIPPをサポートしています(Windows 9xとMEユーザはこれをインストールする必要があります)。 Linuxに接続されたプリンタをWindowsにインストールするには、プリンタの追加ウィザードを起動してネットワークプリンタを選択します。 URIを尋ねられたら、http://hostname:631/printers/queueを使用します。
システムがプリンタに到達できるか確かめてください。
プリンタをSMB-CIFSネットワークで共有するには、SAMBAがインストールされていて正しく設定されている必要があります。 この設定方法はこのドキュメントの範囲外ですが、SAMBAでプリンタを共有する設定について簡単に説明します。
/etc/samba/smb.confをお気に入りのエディタで開いて[printers]を以下のように追加します。
コード表示 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に設定します。
コード表示 6.2: [global]の変更 |
[global] (...) printcap name = cups printing = cups |
CUPSでWindows PCLドライバのサポートを有効にしたか確認してください。 では、smbサービスを再起動して変更を有効にします。
何よりもまず、プリンタがWindowsシステムで共有されているか確認してください。
次に、CUPSウェブインターフェースで、上で説明したようにしてプリンタを設定します。 CUPSがWindows Printer via SAMBAという別のドライバを追加したことに気がつくでしょう。 これを選択し、URIにsmb://username:password@workgroup/server/printernameもしくはsmb://server/printernameを使用します。
プリンタの設定を手伝ってくれたり、追加の印刷フィルタを使ったり、印刷能力に新しい機能を追加したりと行ったことを行う多くのツールが存在します。 この章ではそれらの内のいくつかを紹介します。 この一覧は完全ではなく、それぞれのツールについて事細かく議論することもしません。
Gtk-LPを使えば、スタンドアロンのGtkアプリケーションからプリンタのインストール、修正、そして設定を行うことが出来ます。 これはCUPSを使用し、CUPSの標準的な機能を全て提供します。 CUPSウェブインターフェースが嫌いだったり、毎日の印刷ルーチンのためのスタンドアロンアプリケーションが欲しいのなら、使ってみる価値はあります。
インストールするには、gtklpをemergeします。
コード表示 7.1: Gtk-LPのインストール |
# emerge gtklp
|
Error: Unable to convert file 0 to printable format
印刷にトラブルがあり、/var/log/cups/error_logに以下のメッセージがあるとします。
コード表示 8.1: エラーログ |
Unable to convert file 0 to printable format |
この場合には、cups USEフラグを付けてghostscript-espを再emergeする必要があります。 /etc/make.confのUSEフラグにcupsを追加するか、以下のようにしてghostscript-espのみに有効にすることが出来ます。
コード表示 8.2: cupsをghostscript-espに追加 |
# echo "app-text/ghostscript-esp cups" >> /etc/portage/package.use
|
その後ghostscript-espをemergeします。 終了したら、cupsdを忘れずに再起動してください。
コード表示 8.3: cupsdの再起動 |
# /etc/init.d/cupsd restart
|
このドキュメントの内容は Creative Commons - Attribution / Share Alikeライセンスです。