plamo8.1->perl

プリンター

Epson EP4004 ( wifiでネットワーク接続 )をCUPSで使います。

セットアップ

CUPS

Common Unix Printing System. Linuxでプリンタを使えるようにしてくれます。 plamo linux をセットアップしたときに一緒に入ってました。

手順

  1. ブラウザを開いて、http://localhost:631 にアクセスすると設定画面になります。
  2. プリンターを接続して電源を入れておきます。
  3. 「管理」タブの[プリンターの追加] (→管理者アカウントの認証があります)
  4. 接続されているプリンターが検索されて候補として表示されます。 同じプリンター名が、2つあります
    プリンター候補として表示されたところ
  5. 接続先のURLが、dnssd:// の方を選びます。


    ※ URLが、lpd:// の方は、IPアドレスが固定されてない場合は使わない方がよいと思います。
  6. プリンタ機種を指定する画面になります。
    一覧表に無いときはプリンタドライバが入っていませんので、どこかから調達してくる必要があります。 セットアップした Epson EP-4004 は表示されませんでした(詳しくはこのページの下の方へ)。
  7. (EP-4004のドライバをインストール済の状態で)
    PPDファイルを提供:[ファイルを選択] からPPDファイルを選びます。
    /opt/epson-inkjet-printer-escpr/ppds/Epson/ 以下に入ってます。 PPDファイルは 圧縮ファイルになっていますがそのまま選んで大丈夫でした。

プリンタドライバ

Epsonのサイトからダウンロードしてインストールします。

日付の新しかった ESC/P-R Driver (generic driver) を選びました。 さらにページをめくって、 「epson-inkjet-printer-escpr-1.7.26-1lsb3.2.x86_64.rpm」(64bit用 rpmを選びました) をダウンロード。

rpm から tarに変換したのち、管理者権限で /opt 以下へ展開。

$ rpm2tar epson-inkjet-printer-escpr-1.7.26-1lsb3.2x86_64.rpm
# tar xvf epson-inkjet-printer-escpr-1.7.26-1lsb3.2x86_64.tar
# cd opt '<----- tarを展開すると opt/ ディレクトリが出来ている。
# mv epson-inkjet-printer-escpr /opt/

cupsで印刷するために必要なファイルが入ってます。

$ cd /opt
$ tree -d epson-inkjet-printer-escpr
epson-inkjet-printer-escpr/
├── cups
│      └── lib
│            └── filter '<----filterプログラムが格納されてます'
├── doc
├── lib64
├── ppds '<---- PPDファイルが格納されてます'
│      └── Epson
└── share

テストプリントで失敗する

※plamo8.1では、この状態にはならず失敗しませんでした。

「状態」に"Filter failed" と出てるとき。

filterプログラムがエラーとなって起動できてない模様です。

filterプログラムは/opt/epson-inkjet-printer-escpr/cups/lib/filter/に格納されているのですが、試しにコマンド実行してみるとエラーになります。

# cd /opt/epson-inkjet-printer-escpr/cups/lib/filter/
# ./epson-escpr-wrapper
bash: ./epson-escpr-wrapper: そのようなファイルやディレクトリはありません

↓よくあるエラーの場合。リンクエラーを疑って、lddで確認してみると共有ライブラリに行き着かず「not found.」と表示されます


$ ldd ./a.out
...
libcudart.so.7.0 => not found

のですが、filterプログラムを試してみたとき↓は「not found.」の表示は出てきません。

# cd /opt/epson-inkjet-printer-escpr/cups/lib/filter/
# ldd /epson-escpr-wrapper
	linux-vdso.so.1 (0x00007ffed233b000)
	libcupsimage.so.2 => /usr/lib/libcupsimage.so.2 (0x00007f7d66c01000)
	libcups.so.2 => /usr/lib/libcups.so.2 (0x00007f7d66b70000)
	libc.so.6 => /lib/libc.so.6 (0x00007f7d6698a000)
	libgssapi.so.3 => /usr/lib/libgssapi.so.3 (0x00007f7d66948000)
	libavahi-common.so.3 => /usr/lib/libavahi-common.so.3 (0x00007f7d6693a000)
	libavahi-client.so.3 => /usr/lib/libavahi-client.so.3 (0x00007f7d66927000)
	libgnutls.so.30 => /usr/lib/libgnutls.so.30 (0x00007f7d666fb000)
	libz.so.1 => /usr/lib/libz.so.1 (0x00007f7d666de000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x00007f7d666bd000)
	libm.so.6 => /lib/libm.so.6 (0x00007f7d66570000)
	libcrypt.so.1 => /lib/libcrypt.so.1 (0x00007f7d66536000)
	/lib64/ld-lsb-x86-64.so.3 => /lib64/ld-linux-x86-64.so.2 (0x00007f7d66c28000)
	libheimntlm.so.0 => /usr/lib/libheimntlm.so.0 (0x00007f7d6652a000)
	libkrb5.so.26 => /usr/lib/libkrb5.so.26 (0x00007f7d66496000)
	libhx509.so.5 => /usr/lib/libhx509.so.5 (0x00007f7d66449000)
	libwind.so.0 => /usr/lib/libwind.so.0 (0x00007f7d6641f000)
	libheimsqlite.so.0 => /usr/lib/libheimsqlite.so.0 (0x00007f7d6636a000)
	libhcrypto.so.4 => /usr/lib/libhcrypto.so.4 (0x00007f7d6632e000)
	libasn1.so.8 => /usr/lib/libasn1.so.8 (0x00007f7d66285000)
	libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007f7d6627d000)
	libdl.so.2 => /lib/libdl.so.2 (0x00007f7d66277000)
	libheimbase.so.1 => /usr/lib/libheimbase.so.1 (0x00007f7d66266000)
	libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007f7d65f80000)
	libroken.so.18 => /usr/lib/libroken.so.18 (0x00007f7d65f69000)
	libresolv.so.2 => /lib/libresolv.so.2 (0x00007f7d65f4e000)
	libdbus-1.so.3 => /lib/libdbus-1.so.3 (0x00007f7d65eeb000)
	libp11-kit.so.0 => /usr/lib/libp11-kit.so.0 (0x00007f7d65db1000)
	libidn2.so.0 => /usr/lib/libidn2.so.0 (0x00007f7d65d92000)
	libtasn1.so.6 => /usr/lib/libtasn1.so.6 (0x00007f7d65d7d000)
	libnettle.so.8 => /usr/lib/libnettle.so.8 (0x00007f7d65d36000)
	libhogweed.so.6 => /usr/lib/libhogweed.so.6 (0x00007f7d65cee000)
	libgmp.so.10 => /usr/lib/libgmp.so.10 (0x00007f7d65c77000)
	libelogind.so.0 => /lib/libelogind.so.0 (0x00007f7d65b69000)
	libffi.so.7 => /usr/lib/libffi.so.7 (0x00007f7d65b5c000)
	libunistring.so.2 => /usr/lib/libunistring.so.2 (0x00007f7d657dc000)
        libcap.so.2 => /lib/libcap.so.2 (0x00007f7d657ce000)
      

上記のようにリンクエラーを疑ってlddで試してみてもエラーが出ませんでしたが、色々検索してみるとやはりリンクエラーが原因のようです。(どうやって見分ければよいのでしょうか。。) ( ※LSB(Linux Standard Base)を使うソフトをうまく実行できない時によくある解決法である模様。)

# cd /lib64
# ln -s ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3

↑ /lib64/ld-lsb-x86-64.so.3 が無いので作ります。 ld-linux-x86-64.so.2 へのシンボリックリンクで良いそうです。

確かに、/lib64 には ld-lsb-x86-64.so.3 は存在しないし、 # ldconfig -p | grep ld-lsb-x86-64 でも出てこないので、エラーとなるはず。

試しに実行してみます。

# cd /opt/epson-inkjet-printer-escpr/cups/lib/filter/
# ./epson-escpr-wrapper
Insufficient options.

「パラメータがおかしい」と怒られましたが、起動は出来ている感じです。




tsushiro.s, 2023-2023.