印刷
このドキュメントでは、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と呼ばれます:
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 サービスを再起動してください:
# DeviceURI usb:/dev/usb/lp0 この行を以下の内容で置き換える
DeviceURI parallel:/dev/usb/lp0
リモートで接続されたプリンタ (IPP と LPD)
Internet Printing Protocol、あるいは Line Printer Daemon protocol を通じてリモートで接続されたプリンターに接続可能にするには、カーネルのネットワークサポートが必要です。カーネルには既にそれがあると仮定して、CUPS の設定を続けます。
リモートで接続されたプリンタ (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
+ssl
|
Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security) |
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 |
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フラグを有効にします:
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を開いてください:
ファイル
/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
で始まるすべてのシステムからプリンターへのアクセスを許可しています。
<Location />
Order allow,deny
Allow localhost
Allow from 192.168.0.*
</Location>
この行は、ネットワークのクライアントに対してブラウジング情報をブロードキャストします;これにより、プリンターが利用可能な時にネットワークユーザーに通知がなされます:
BrowseAddress 192.168.0.*:631
ネットワーク上の他のマシンからの印刷リクエストに反応するため、CUPSがリッスンするポートも指定する必要があります:
Listen *:631
#Listen localhost:631
CUPS サーバは HTTP リクエスト内にホスト名またはサーバのエイリアスがあると、"Bad Request"メッセージとともにリクエストを拒否します。デフォルトでは IP アドレスでのみ動作します。ですので、ホスト名またはドメインを使用して印刷したり CUPS インターフェースをブラウズしたりしたい場合は、ServerAlias パラメータを追加してください:
ServerAlias *
CUPSのリモート管理
リモートでの管理が必要なら、localhostだけでなく、それ以外のシステムからCUPSの管理画面へのアクセスを許可する必要があるでしょう。/etc/cups/cupsd.confを編集し、アクセスを必要とする各システムに対して明示的にアクセスを許可します。たとえば、IPアドレスが192.168.0.3であるシステムに対してアクセスを許可するには:
<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を編集して、もしまだアンコメントされていなければ、同じようにします。
application/octet-stream
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
ディレクティブをセットします:
# (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:
*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]
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 name
とprinting
という設定を探してそれぞれcups
に設定します(以下の例を見てください):
[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.confのUSE変数から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-gplをcups
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がusb
USEフラグが有効の状態でビルドされた事を前提とします。プリンターのキャラクタデバイスのパーミッション設定が正しい事を確認してください。例:
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ファイルを作成することで、この変更を永続的にすることができます:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="3297", MODE="0660", GROUP="lp"
先程の出力によれば、デバイスは"ID 04e8:3297"です。例示したように、これをidVendorとidProductに分割しました。これでudevは確実に、毎回のブート時やホットプラグ時に正しいパーミッションを設定するはずです。
関連項目
- Samba — a re-implementation of the SMB/CIFS networking protocol, a Microsoft Windows alternative to Network File System (NFS).
- Driverless printing
外部の情報
- Using Network Printers - CUPS.orgのドキュメンテーション
- Command-Line Printing and Options - CUPS.orgのドキュメンテーション
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.