印刷

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Printing and the translation is 98% complete.

このドキュメントでは、CUPSとSambaを用いたプリンタのインストールとメンテナンスをカバーしています。これは、ローカルインストールやネットワークインストールをカバーし、他のオペレーティングシステムから共有プリンタを使用する手順が含まれています。文書を印刷するためのlpまたはlprコマンドの使用についての詳細は、CUPSの優れた上流のマニュアルを参照してください。

印刷と Gentoo Linux

適切なツールを使う

Linuxには、プリンタの素晴らしいサポートがあります。仕事のための適切なツールはCUPSと呼ばれています(Common Unix Printing System)。プロジェクトが始まった1999年から、CUPSのインストールとメンテナンスは劇的に改善されました。

この文書では、ローカルまたはネットワークプリンタをセットアップするためにCUPSを使用する方法を説明します。プロジェクトがより進んだ使用法に関する 素晴らしいドキュメントを持っているので、ここではあまり詳細には立ち入りません。

インストール

カーネル

ユーザーがシステムにプリンタをインストールしたい場合、最初のステップは、プリンタがシステムに接続する方法を知ることです。それは、LPTやUSBなどのローカルポートを介して接続されていますか?それがネットワーク接続されている場合は、それがインターネット印刷プロトコル(IPP)またはMicrosoft Windows CIFSプロトコル(Microsoft Windowsの共有)を使用していますか?

次のいくつかのセクションでは、プリンターをGentooに接続するためにはどのようなカーネルの設定が最低限必要かについて説明します。もちろん、これはどのようにプリンタがシステムに接続されるかに依存するので、便宜のため、手順は分離して説明します。

/usr/src/linuxに移動し、カーネルコンフィグに入るためにmake menuconfigを実行します。カーネルの設定にgenkernelを使用した場合でも、誤りがないか確認するため、これらのステップを行うべきです。genkernelにシステム全体を自動的に設定させて頼らないようにしてください;印刷は、構成設定を自動的に設定することが難しい分野です。

次の設定例では、必要なサポートをモジュールではなくカーネルの中に追加しています。カーネルをこの方法で構築することは必須ではありません;もしモジュールでのサポートを簡単に追加できると判断したならば、適切なモジュールを読み込むのを忘れないようにしましょう!

それでは、カーネルを設定(あるいはチェック)するため、適切な項に移動してください。

ローカルで接続されたプリンタ (LPT)

LPTポートは、パラレルプリンターポートを表すために一般的に使用されています。まず、パラレルポートのサポートを有効化し、それから(SPARCシステムを使っているのでなければ)PC形式のパラレルポートのサポートを有効化する必要があります。そしてその後、パラレルプリンターサポートを有効にします。

カーネル パラレルポートプリンタの設定
Device Drivers --->
  <*> Parallel port support  --->
    <*> PC-style hardware
    [*] IEEE 1284 transfer modes
  Character devices  --->
    <*> Parallel printer support
メモ
ユーザーによっては、Parallel port supportセクションの中の、その他のオプションを有効化するかもしれません。詳しくは、カーネルコンフィグのHelp機能をチェックしてください。

これで終わりです! カーネルコンフィグを終了して、カーネルを再ビルドしてください

CUPSの設定を続けて行いましょう。

ローカルで接続されたプリンタ (USB)

USB での印刷は、USB USE フラグが有効化された CUPS でサポートされています。これは、libusb ライブラリをユーザースペースでの USB サポートのため使用しています。

いくつかの古いソフトウェアは、今でもカーネル内でのUSBプリンターサポートを要求します。モジュールとしてビルドされた場合、そのモジュールはusblpと呼ばれます:

カーネル USB プリンタサポート
Symbol: USB_PRINTER [=n]
Type  :tristate
Prompt: USB Printer support
  Location:
    -> Device Drivers
      -> USB support (USB_SUPPORT [=y])
(1)     -> Support for Host-side USB (USB [=y])
  Defined at drivers/usb/class/Kconfig:21
  Depends on: USB_SUPPORT [=y] && USB [=y]

しかしながら、カーネル内でのUSBプリンターサポートは、obsolete扱いです。必要な場合に限り、使用を続けてください。

メモ
USB パラレルポートアダプタを使用している場合、CUPS はプリンタを検出できないでしょう。回避策として、printers.conf に異なる接続タイプを使用したプリンタを追加して、DeviceURI ディレクティブを変更して、cupsd サービスを再起動してください:
ファイル /etc/cups/printers.confDeviceURI を変更する
# DeviceURI usb:/dev/usb/lp0  この行を以下の内容で置き換える
DeviceURI parallel:/dev/usb/lp0

リモートで接続されたプリンタ (IPP と LPD)

Internet Printing Protocol、あるいは Line Printer Daemon protocol を通じてリモートで接続されたプリンターに接続可能にするには、カーネルのネットワークサポートが必要です。カーネルには既にそれがあると仮定して、CUPS の設定を続けます。

リモートで接続されたプリンタ (CIFS)

カーネルが CIFS をサポートしている必要があります:

カーネル CIFS プリンタの設定
File systems -->
  Network File Systems -->
    <*> SMB3 and CIFS support (advanced network filesystem)

CIFSの設定が完了したら、カーネルコンフィグを終了してカーネルを再ビルドします。システムを再起動する前に、(必要なら/bootをマウントしてから)新しいカーネルイメージを/bootへコピーし、ブートローダーの設定を更新するのを忘れないようにしましょう。これらのステップをどのように実行するかについては、上のLPTプリンターの設定にあるrootコマンドを参照してください。

それでは、CUPSのインストールにおける次のステップに進みましょう。

USE フラグ

一部のパッケージは cups USE フラグを持っています。 CUPS には、いくつかの関心を持つかもしれない任意の機能があります。それらの機能を有効化あるいは無効化するには、それらに関連付けられた USE フラグを利用します。

USE flags for net-print/cups The Common Unix Printing System

X Add support for X11
acl Add support for Access Control Lists
dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
kerberos Add kerberos support
openssl Use dev-libs/openssl instead of net-libs/gnutls for TLS support
pam Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
static-libs Build static versions of dynamic libraries as well
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
usb Add USB support to applications that have optional USB support (e.g. cups)
xinetd Add support for the xinetd super-server
zeroconf Support for DNS Service Discovery (DNS-SD)

現在のUSEフラグの設定を確認します。CUPSのみについて現在のUSEの設定から外すには、適切なUSEフラグを/etc/portage/package.useファイルに追加します。

user $emerge -pv net-print/cups
[ebuild N     ] net-print/cups-1.7.3  USE="X acl dbus pam ssl threads usb -debug -gnutls -java -kerberos -lprng-compat -python (-selinux) -static-libs -systemd -xinetd -zeroconf" ABI_X86="(64) (-32) (-x32)" LINGUAS="ca es fr it ja pt_BR ru" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" 0 kB

Emerge

結果に満足したら、PortageにCUPSをインストールするよう要求します:

root #emerge --ask net-print/cups

追加のソフトウェア

Samba

SAMBAサポートを有効にするには、net-fs/sambaがCUPSサポートとともにインストールされている必要があります。/etc/portage/package.useファイルまたはディレクトリを更新して、cups USEフラグを有効にします:

ファイル /etc/portage/package.usesamba で、cups の USE フラグを有効にする
net-fs/samba cups

そして、Sambaを(再)インストールします:

root #emerge --ask --changed-use net-fs/samba

Avahi

zeroconf USE フラグ付きでビルドされた CUPS は、ローカルネットワーク上のプリンタを探すために内部で Avahi を使用します。Avahi ホスト名を使用してネットワークプリンタに接続するためには、.local ホスト名の解決をセットアップし、CUPS サービスを再起動してください。CUPS と cups-filters も zeroconf USE フラグ付きでビルドする必要があります。利用可能なプリンタを一覧表示するには driverless コマンドを使用してください。

user $driverless list

設定

印刷グループ

印刷をする必要があるすべてのユーザーは、lpグループに追加されていなければなりません:

root #gpasswd -a username lp

CUPSのウェブインターフェースを使ってプリンターを追加したり編集したりするためには、これらの設定を編集することが許可されているすべてのシステムユーザーがlpadminグループに所属していなければなりません:

root #gpasswd -a username lpadmin

サービス

OpenRC

プリンターがシステムにローカルで接続されており、かつプリンターがブートの度に利用可能でなければならない場合には、CUPSデーモンが起動時に自動的に読み込まれる必要があります。CUPSデーモンを開始する前に、プリンターが接続され、電源が入っていることを確認してください。

root #rc-service cupsd start
root #rc-update add cupsd default

systemd

CUPSデーモンを直ちに開始し、またシステムが起動したときに開始されるようにするには:

root #systemctl start cups.service
root #systemctl enable cups.service

HTTP インターフェース

サービスがいったん開始されると、認証されたユーザーはプリンターを追加することができます。root(デフォルト)およびlpadminグループのすべてのユーザーが利用可能です。ウェブブラウザーで以下のURLを開いてください:

http://localhost:631/

ファイル

/etc/cups/cupsd.confにあるデフォルトのCUPSサーバー設定は、ほとんどのユーザーにとって十分です。しかしながら、一部のユーザーはCUPSの設定に変更を加える必要があるでしょう。

次の項では、しばしば必要になるいくつかの変更を扱います:

  • 他のシステムに、このLinuxワークステーションに接続されているプリンターの使用を許可する。
  • リモートシステムからCUPS管理へのアクセスを許可する。
  • CUPSを、Windows PCLドライバーをサポートするように設定する。これは、WindowsシステムがSAMBAで共有されたプリンターを使用する場合に推奨されます。WindowsのドライバーのほとんどはPCLドライバーです。
  • このシステムを、他のシステムに接続されたプリンターを(Windows共有でなく)使用するように設定する。

リモートでのプリンターアクセス

IPPを通じて他のシステムにプリンターを使用させるには、/etc/cups/cupsd.confファイルでプリンターへの明示的なアクセスを許可する必要があります。SAMBAを使用してプリンターを共有する場合には、この変更は不要です。

お好みのテキストエディターで/etc/cups/cupsd.confを開き、プリンターに到達できる必要があるシステムについてAllow行を追加します。次の例では、localhostおよびIPアドレスが192.168.0で始まるすべてのシステムからプリンターへのアクセスを許可しています。

ファイル /etc/cups/cupsd.confプリンターへのリモートアクセスを許可する
<Location />
  Order allow,deny
  Allow localhost
  Allow from 192.168.0.*
</Location>

この行は、ネットワークのクライアントに対してブラウジング情報をブロードキャストします;これにより、プリンターが利用可能な時にネットワークユーザーに通知がなされます:

ファイル /etc/cups/cupsd.conf情報をブロードキャストする
BrowseAddress 192.168.0.*:631

ネットワーク上の他のマシンからの印刷リクエストに反応するため、CUPSがリッスンするポートも指定する必要があります:

ファイル /etc/cups/cupsd.confポートの設定
Listen *:631
#Listen localhost:631

CUPS サーバは HTTP リクエスト内にホスト名またはサーバのエイリアスがあると、"Bad Request"メッセージとともにリクエストを拒否します。デフォルトでは IP アドレスでのみ動作します。ですので、ホスト名またはドメインを使用して印刷したり CUPS インターフェースをブラウズしたりしたい場合は、ServerAlias パラメータを追加してください:

ファイル /etc/cups/cupsd.confサーバエイリアス設定
ServerAlias *

CUPSのリモート管理

リモートでの管理が必要なら、localhostだけでなく、それ以外のシステムからCUPSの管理画面へのアクセスを許可する必要があるでしょう。/etc/cups/cupsd.confを編集し、アクセスを必要とする各システムに対して明示的にアクセスを許可します。たとえば、IPアドレスが192.168.0.3であるシステムに対してアクセスを許可するには:

ファイル /etc/cups/cupsd.confリモートアクセスを許可する
<Location /admin>
(...)
  Encryption Required
  Order allow,deny
  Allow localhost
  Allow 192.168.0.3
</Location>

/etc/cups/cupsd.confに変更を加えた後、/etc/init.d/cupsd restartコマンド(OpenRC)あるいはsystemctl restart cupsd.service(systemd)を実行してCUPSデーモンを再起動することを忘れないでください。

Windows PCLドライバーのサポートを有効化する

PCLドライバーは、生の(raw)データをプリントサーバーに送信します。CUPSでraw印刷を有効にするには、/usr/share/cups/mime/mime.typesを編集して、もしまだアンコメントされていなければ、application/octet-streamという行をアンコメントします。そして、/usr/share/cups/mime/mime.convsを編集して、もしまだアンコメントされていなければ、同じようにします。

ファイル /usr/share/cups/mime/mime.typesraw 印刷サポートを有効にする
application/octet-stream
ファイル /usr/share/cups/mime/mime.convs
application/octet-stream     application/vnd.cups-raw    0    -

これらの変更を加えたら、/etc/init.d/cupsd restart(OpenRC)あるいはsystemctl restart cupsd.service(systemd)を実行してCUPSデーモンを再起動することを忘れないでください。

リモートのプリンターをセットアップする

プリンターがCUPSを使用しているリモートサーバーに接続されている場合、/etc/cups/client.confを変更することによってシステムをリモートプリンターを使用するように簡単に設定できます。

プリンターがprintserver.mydomainというシステムに接続されているとすると、お好みのテキストエディターで/etc/cups/client.confを開き、ServerNameディレクティブをセットします:

ファイル /etc/cups/client.conf
# (printserver.mydomain を、あなたのプリントサーバー名に置き換えてください)
ServerName printserver.mydomain

リモートシステムには、使用されるデフォルトのプリンター設定があります。デフォルトのプリンターを変更するには、lpoptionsコマンドを使用します。

まず、使用可能なプリンターをリストします:

root #lpstat -a
hpljet5p accepting requests since Jan 01 00:00
hpdjet510 accepting requests since Jan 01 00:00

HP LaserJet 5Pをデフォルトのプリンターとしてセットします:

root #lpoptions -d hpljet5p

プリンターを設定する

はじめに

設定しようとしているプリンターが (CUPS を実行している) 異なるプリントサーバーを介して利用可能ならば、以下の説明は不要です。代わりに、リモートのプリンターをセットアップするを読んでください。

プリンターの検出

Linuxシステムが起動した時にUSBプリンターやパラレルポートプリンターの電源が入っていれば、カーネルからプリンターを正常に検知したことを表す情報を得ることができるでしょう。これは単にプリンターが検出されたことを表すものに過ぎず、必要条件ではありません。

user $dmesg | grep -i print
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series

USB 接続のプリンターの場合:

user $lsusb
(...)
Bus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse


The lpinfo command can be used in order to list all connected printers:

root #lpinfo -v
network ipp
network http
network socket
network https
network ipps
network lpd
network lpd://BRW67890ABCDEF/BINARY_P1

Running lpinfo -l -v will give a more verbose output.


利用可能なドライバの一覧表示

利用可能なドライバーをリストするには、以下のコマンドを実行します:

user $lpinfo -m

lpinfoは饒舌ではなく、やや使いこなすのが難しいかもしれません。何か問題が起こったら、man lpinfoを見てより詳細な情報を確認してください。

プリンターをインストールする

プリンターをシステムにインストールするには、ブラウザーを起動してhttp://localhost:631を表示してください。あらゆる管理作業が行える、CUPSのウェブインターフェースが表示されるはずです。

メモ
インターフェースにアクセスする際に初めてHTTPS接続を使用した場合、ページが表示されるまでに非常に長い時間がかかることがあります。これは、最初のリクエストによって、時間のかかる処理であるCUPSのSSL証明書の生成が引き起こされるためです。

Administrationに移動し、ボックスにrootログインおよびパスワード情報を入力してください。そして、管理インターフェースに入ったら、Add Printerをクリックします。新しい画面が表示され、以下の情報が入力できるようになります:

  • spooler name システムでプリンターを識別するのに使われる、短く、しかしわかりやすい名前。この名前には、スペースやあらゆる特殊文字を含めないようにすべきです。たとえば、HP LaserJet 5Pはhpljet5pのように名付けることができます。
  • location プリンターが物理的に設置されている場所の説明(たとえば、"bedroom"(寝室)あるいは"in the kitchen right next to the dish washer"(キッチンの食器洗い機の右隣)など)。これは、複数のプリンターを保守する場合に役立ちます。
  • description プリンターの完全な説明。一般的な使用法は、("HP LaserJet 5P"のような)プリンターのフルネームです。

次の画面では、プリンターがリッスンするデバイスを尋ねられます。複数のデバイスの選択肢が提供されるでしょう。次の表はいくつかの考えられるデバイスを示していますが、リストは網羅的ではありません。

デバイス 説明
AppSocket/HP JetDirect この特殊なデバイスは、ネットワークプリンターを、HP JetDirectソケットを通じてアクセス可能にします。特定のプリンターのみがこのオプションへのサポートを含みます。
Internet Printing Protocol (IPPまたはHTTP) 直接(IPP)、あるいはHTTP経由でのIPPプロトコルを使用してリモートプリンターへ到達します。
LPD/LPR Host or Printer プリンターがリモートで、かつLPD/LPRサーバーに接続されている場合にはこのオプションを選択します。
Parallel Port #1 プリンターがローカルのパラレルポート(LPT)に接続されている場合に選択します。プリンターが自動的に検知されたら、その名前がデバイスに追加されます。
USB Printer #1 プリンターがローカルのUSBポートに接続されている場合に選択します。プリンターの名前が、デバイス名に自動的に追加されます。

リモートプリンターをインストールする場合には、プリンターへのURLを尋ねられます:

  • LPDプリンターサーバーは、lpd://hostname/queueという構文を必要とします。
  • HP JetDirectプリンターは、socket://hostnameと言う構文を必要とします。
  • IPPプリンターは、ipp://hostname/printers/printernameまたはhttp://hostname:631/printers/printernameという構文を必要とします。

そして、次の画面でプリンターの製造元を、その後の画面でモデルタイプとナンバーを選択します。多くのプリンター向けに、複数のドライバーが利用可能です。一つを選択するか、あるいはOpenPrinting Printer Listで適切なドライバーを検索してください。ドライバーは後で簡単に変更できます。

ドライバーが選択されたら、CUPSはプリンターが正常に追加されたことをシステムに通知します。プリンターの設定(解像度、ページフォーマットなど…)を変更するには、管理インターフェースのプリンター管理ページに移動して、Configure Printerを選択してください。

プリンターをテスト・再設定する

プリンターが正しく動作しているか確認するには、プリンター管理ページに行き、プリンターを選択してPrint Test Pageをクリックします。

プリンターが正しく動作していないと思われる場合、Modify Printerをクリックしてプリンターを再設定します。最初のインストールの時と同じ画面が表示されますが、デフォルト値は現在の設定になっています。

プリンターが機能しない場合、/var/log/cups/error_logにあるCUPSのエラーログを見ることで手がかりが見つかるかもしれません。次の例ではパーミッションエラーが見つかっており、これはおそらく/etc/cups/cupsd.confファイルで間違ったAllowの設定をしているためです。

root #tail /var/log/cups/error_log
(...)
E [11/Jun/2005:10:23:28 +0200] [Job 102] Unable to get printer status (client-error-forbidden)!

最適なドライバーをインストールする

数多くのプリンタードライバーがあります;最適なパフォーマンスで仕事をするものを探すには、OpenPrinting Printer Listを参照してください。そのサイトがどのドライバーを推奨しているか調べるには、プリンターのブランド名とタイプ/モデルを選択します。たとえば、HP LaserJet 5Pについては、そのサイトはljet4ドライバーを推奨しています。

PPDファイルをサイトからダウンロードし、それを/usr/share/cups/modelに配置してから、rootで/etc/init.d/cupsd restart(OpenRC)かsystemctl restart cupsd.service(systemd)を実行します。これにより、CUPSウェブインターフェースでドライバーが利用可能になります。そうしたら、プリンターを上で説明したように再設定しましょう。

Enabling job accounting in for Xerox printers

High-end Xerox printers (often a gray, cabinet sized device) use XCPT PDL, and XML based, and poorly documented XPIF ticketing instruction format.

XCPT filter in Cups never made it to a release grade, and the work on it was eventually dropped and all XPIF must be input into a PPD manually. Luckily, it's largely a direct copy of IPP, using XML syntax. After peeking into docs available online, we can craft an arbitrary XPIF command using corresponding IPP attributes.

To configure XPIF solely for ticketing/accounting, drop the following into any PPD:

コード XPIF code for inserting a user id
*JCLBegin:"<1B>%-12345X@PJL JOB<0A>"

*% Base JCL key code option
*JCLOpenUI JCLPasscode/Key Code: PickOne
*OrderDependency: 10 JCLSetup *JCLPasscode
*JCLPasscode None/No Code: ""
*JCLCloseUI: *JCLPasscode

*% Custom JCL key code option
*CustomJCLPasscode True: "@PJL XCPT <?xml version=<22>1.0<22> encoding=<22>UTF-8<22>?>
  @PJL XCPT <!DOCTYPE xpif SYSTEM <22>xpif-v02074.dtd<22><3E>
  @PJL XCPT <xpif version=<22>1.0<22> cpss-version=<22>2.07<22> xml:lang=<22>en-US<22><3E>
  @PJL XCPT          <job-template-attributes>
  @PJL XCPT <09><09><3C>job-accounting-user-id syntax=<22>name<22> xml:space=<22>preserve<22><3E>\1<3C>/job-accounting-user-id>
  @PJL XCPT          </job-template-attributes>
  @PJL XCPT </xpif>"
*ParamCustomJCLPasscode Code/Key Code: 1 password 0 16

*JCLEnd:"<1B>%-12345X@PJL EOJ<0A><1B>%-12345X<0A>"

It will draw a dropdown box in any printing ui compliant with CUPS PPD extensions to enter the id.

The long term solution would still be for Xerox to fully publish XPIF, and XCPT specifications, to allow for a proper XPIF cups filter to be developed.

特別なプリンタードライバーを使用する

はじめに

いくつかのプリンターは、特定のドライバーを必要としたり、(上で説明したような)通常の設定作業では有効にならない追加機能を提供していたりします。この章では、プリンターの選択とそれらがGentoo Linuxで動くようにする方法を説明します。

Gutenprint ドライバー

Gutenprintドライバーは、さまざまなキヤノン、エプソン、HP、Lexmark、ソニー、オリンパス、PCLの、CUPSをサポートするプリンター向けの、高品質でオープンソースなプリンタードライバーです。ghostscript、Gimpやその他のアプリケーションもサポートしています。

GentooのPortageツリーはgutenprintドライバーのebuildを含んでいます。それらをインストールするにはemerge gutenprintを実行してください。このebuildはきわめて少数のUSEフラグを要求することに注意してください。gutenprintドライバーが正しく動作するためには、少なくともcupsおよびppdsが有効になっていなければなりません。

root #emerge --ask net-print/gutenprint

emergeの作業が終了すると、gutenprintドライバーがCUPSウェブインターフェースを通じて利用可能になります。

HPLIP ドライバー

HPLIP Driver を参照してください。

Lexmark ドライバー

ほとんどの Lexmark プリンタは、彼らの "Universal Printer Driver" によって処理されます:

root #emerge --ask net-print/lexmark-upd-ppd

これをインストールが完了すれば、CUPS セットアップウィザードで利用できる単一の Lexmark ドライバが現れ、これがほとんどのプリンタと複合機とともに機能するはずです。

PNM2PPA ドライバー

PPAは、低レベルな処理をプリンターではなくシステムに送信することに焦点を置き、プリンターをより安価に、しかしより資源を消費するようにするHPの技術です。

OpenPrintingのサイトが、pnm2ppaドライバーが最適な選択肢であると伝えている場合、net-print/pnm2ppaフィルターをシステムにインストールする必要があるでしょう:

root #emerge --ask net-print/pnm2ppa

インストールされたら、そのプリンター用のPPDファイルをOpenPrintingからダウンロードし、それを/usr/share/cups/modelフォルダーに配置します。それから、上で説明した方法でプリンターを設定してください。

SpliX ドライバー

SpliXは、SPL(Samsung Printer Language)プリンター用のCUPSプリンタードライバーのセットです。SpliXドライバーは、同様にOpenPrintingから利用可能ですが、net-print/splixパッケージを使うとこれらのドライバーをすばやくportageの管理下でインストールすることができます。インストールするには次のコマンドを実行してください:

root #emerge --ask net-print/splix

を実行し、cupsdを再起動します。

Brother プリンタードライバー

Brother networked printer を参照してください。

キヤノン プリンタードライバー

以下のページを参照してください:

Microsoft Windowsへ/から印刷する

メモ
CUPS を Samba とともにセットアップする場合のより詳細な情報については、Samba/CUPS Guide を参照してください。

WindowsクライアントをIPPのために設定する

Microsoft WindowsはIPPをサポートしています。Linuxコンピューターに接続されたプリンターをWindowsにインストールするには、プリンターの追加ウィザードを立ち上げ、ネットワークプリンターを選択します。URIを尋ねられた時は、http://hostname:631/printers/queueという構文を使用してください。

WindowsクライアントをSamba共有されたプリンターのために設定する

CIFSネットワークでプリンターを共有するには、SAMBAがインストールされ、正しく設定されていなければなりません。これはこの文書の範囲を超えていますが、共有プリンターのための簡単なSAMBAの設定についてはこの文書で扱います。

お好みのテキストエディターで/etc/samba/smb.confを開き、[printers]セクションを書き加えます:

コード [printers] セクション
[printers]
  comment      = All printers
  path         = /var/spool/samba
  browseable   = no
  guest ok     = no
  writable     = no
  printable    = yes
  public       = yes
  printer name = hpljet5p

[global]セクションの内側になるまでsmb.confファイルの先頭の方へ移動し、printcap nameprintingという設定を探してそれぞれcupsに設定します(以下の例を見てください):

コード smb.confの[global]セクションを変更する
[global]
  (...)
  printcap name = cups
  printing      = cups

CUPS の Windows PCL サポートが有効になっているか確認してください。それから、変更を有効化するためにsmbサービスを再起動します。

LinuxクライアントをWindowsプリンターサーバーのために設定する

最初に、Windowsシステムでプリンターが共有されており、またnet-fs/sambaが(上で説明したように)cups USEフラグを有功にしてemergeされていることを確認してください。

使いたいプリンターのURIを探すには、以下のコマンドを、serverをSamba共有されているプリンターを探すコンピューターに置き換えた上で実行してください:

user $smbclient -N '\\server\'

CUPSウェブインターフェースで、前に説明したようにしてプリンターを設定します。CUPSにWindows Printer via SAMBAという名前のもう一つのドライバーが追加されていることに気付くでしょう。それを選択し、URIには smb://username:password@workgroup/server/printername あるいは smb://server/printername という構文を使用します。

重要
上のURIの中にあるすべての特殊文字は適切にエスケープされている必要があります。例:

smb://BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6

は以下のようになります:

smb://BEN-DESKTOP/HP%20Color%20LaserJet%20CP1510%20series%20PCL6

この結果の文字列は以下のコマンドを実行することで得ることができます:

user $python2 -c 'import urllib; print "smb://" + urllib.quote("BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6")'

印刷関連のアプリケーション

はじめに

プリンター設定の補助、追加の印刷フィルターの使用、印刷能力への機能追加などのための多くのツールが存在しています。この章では、それらのうちのほんの幾つかを挙げます。リストは網羅的ではなく、またそれぞれのツールについて細部にわたって論じているものでもないことに注意してください。

Gtk-LP - GTKベースのプリンター設定ツール

net-print/gtklpを使うと、プリンターのインストール、変更、設定をスタンドアローンのGTKアプリケーションから行うことができます。このアプリケーションはCUPSを利用しており、また標準的なCUPSの機能をすべて提供しています。CUPSウェブインターフェースが気に入らない、あるいは日常的な印刷ルーチンのためにスタンドアローンアプリケーションが欲しい場合は、もちろんこれを試してみる価値があります。

以下のようにインストールします:

root #emerge --ask net-print/gtklp

KDE Plasma向けのプリンター設定ツール

KDE Plasma にも、kde-apps/print-managerと呼ばれるプリンター設定ツールがあります。CUPS とともに動作し、プリンターを設定するためのユーザーフレンドリーなインターフェースを提供します。以下のようにしてインストールします:

root #emerge --ask kde-apps/print-manager

削除

USE フラグ

cups USE フラグを有功にして現在インストールされているパッケージについては、変更する必要があります。/etc/portage/package.useを検索してcups フラグが明示的にセットされているパッケージを見つけ、そのフラグを除去します。

次に、以前セットした場合、/etc/portage/make.confUSE変数からcupsという値を除去する必要があるでしょう。

Unmerge

root #emerge --ask --depclean --verbose net-print/cups

最後に、CUPSが削除された結果もはや必要とされなくなったすべてのパッケージをシステムから除去します。

root #emerge --ask --depclean

トラブルシューティング

デバッグ

archlinux wiki を見てくだたさい

Error: Unable to convert file 0 to printable format

印刷トラブルが生じ、また/var/log/cups/error_logにこのメッセージがある:

コード エラーログ
Unable to convert file 0 to printable format

app-text/ghostscript-gplcups USEフラグを有功にして再度emergeしてください。cups/etc/portage/make.confのシステムUSEフラグに加えてもよいですし、以下のようにしてghostscript-gplに対してのみ有効化することもできます:

root #echo "app-text/ghostscript-gpl cups" >> /etc/portage/package.use

そして、emerge app-text/ghostscript-gplを実行します。コンパイルが終わった後、必ずcupsdを再起動してください。

OpenRCを使用している場合:

root #service cupsd restart

systemdを使用している場合:

root #systemctl restart cups

USBプリンターが検出されない

CUPSがusbUSEフラグが有効の状態でビルドされた事を前提とします。プリンターのキャラクタデバイスのパーミッション設定が正しい事を確認してください。例:

user $lsusb Bus 002 Device 058: ID 04e8:3297 Samsung Electronics Co., Ltd ML-191x/ML-252x Laser Printer

このプリンターに対応するキャラクタデバイスが/dev/bus/usb/002/058にあるはずです。

user $ls -l /dev/bus/usb/002/058 crw-rw-r-- 1 root android 189, 185 Apr 16 05:55 /dev/bus/usb/002/058

この例では、/lib64/udev/rules.d/80-android.rulesが過度にパーミッション設定を変更しました。これはバグです(bug #644636)。修正しましょう:

root #chgrp lp /dev/bus/usb/002/058
root #chmod 660 /dev/bus/usb/002/058

これで以下のようになるはずです:

user $ls -l /dev/bus/usb/002/058 crw-rw---- 1 root lp 189, 185 Apr 16 05:55 /dev/bus/usb/002/058

これで、このプリンタは恐らく検出されます。このプリンタを追加し、(機能するドライバがあるなら)設定し、テストページを印刷できるはずです。これはパーミッションの問題であることを示しています。あなたのシステムが/devディレクトリを操作するためにudev/eudevを使用しているのであれば、udevファイルを作成することで、この変更を永続的にすることができます:

ファイル /etc/udev/rules.d/99-printer.rulesカスタムudevルール
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="3297", MODE="0660", GROUP="lp"

先程の出力によれば、デバイスは"ID 04e8:3297"です。例示したように、これをidVendorとidProductに分割しました。これでudevは確実に、毎回のブート時やホットプラグ時に正しいパーミッションを設定するはずです。

関連項目

外部の情報


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Sven Vermeulen (SwifT) ,
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.