プリンターを/ dev / usbにマウントし、CUPSを使用します


12

新しいバージョンのCUPSが原因で、以前はで利用できたプリンタへの直接パスが突然失われました/dev/usb/lpXXX。これを使用して、コマンドラインから直接印刷しました。echo "test" > /dev/usb/lp0

検索した後、私はコメントアウトによって、この問題を解決する方法を見つけblacklist usblp/etc/modprobe.d/blacklist.conf。これは確かに機能しますが、これを実行すると、CUPSはどのプリンターとも通信できなくなります(必要です)。では、どうすればプリンタへのある種の直接パスを設定し、それでもCUPSを機能させることができますか

注:一部の(レシート)プリンターはCUPSで認識されlprないため、これらのプリンターでは機能しません。


Archwikiにはこの問題に関するいくつかの段落があり、最終的にはusblpモジュールを使用してファームウェア(たとえばcat sihp1020.dl > /dev/usb/lp0rmmodその後にファームウェアをロードすることをお勧めします。(実際、醜い。)
sr_


将来の参考のために、それDEVICE_URI="usb://HP/LaserJet%20102?serial=XYZ" /usr/lib/cups/backend/usb 1 1 1 1 '' ~/sihp1020.dllibusbファームウェアを必要とするプリンターにファームウェアを送信する実用的な方法であることを確認します(そして、を使用してusblpcat sihp1020.dl > /dev/usb/lp0以前に経由でそれを送信しました)。これは、USBプリンターに任意のファイルを送信するためにも使用できるため、OPはこれを試すことができます。
sr_ 2012年

しようとするもう一つは、によると、この、とCUPSを使用する方法があるかもしれませんusblp使用するように設定することにより、モジュールfile:/dev/usb/lp0 の代わりに usb:/dev/usb/lp0
sr_ 2012年

回答:


1

上記の解決策がうまく機能することを確認できます。CUPSを備えたOpenWRTを使用して、ルーター(TL-WR1043ND)経由で印刷します。HP Laserjet P1005を使用しています。これには、電源を入れるたびにファームウェアをアップロードする必要があります。ファームウェアを入れて/usr/lib、次のコマンドを使用しました。

DEVICE_URI="usb://HP/HP%20LaserJet%20P1005?serial=BB0417Y" /usr/lib/cups/backend/usb 1 1 1 1 '' /usr/lib/sihpP1005.dl

usb://HP/HP%20LaserJet%20P1005?serial=BB0417Yあなたのものと交換する必要がある場所。/ usr / lib / cups / backend / usbコマンドを使用して見つけることができます。


0

CUPSとディストリビューションのバージョンは何ですか?1.4.x以降、CUPS libusbはを経由する代わりにUSBデバイスノードと通信するために使用できますlpusb


0

プリンタのブランドとモデルを教えてください。また、あなたのディストリビューションは何ですか?また、CUPSのバージョンは何ですか?最初の段落で説明されている問題が何であるかははっきりしません。USB経由でCUPSを使用して印刷を設定できます。それは(通常)大したことではありません。最初に設定した方法について詳しく教えてください。CUPSにはlprユーティリティがあり、少なくともDebianにはcups-bsdパッケージ内にあり、通常の方法でCUPSをバックエンドとして使用して、コマンドラインから印刷するために使用できますlpr filename

通常、USBを設定すると、/etc/cups/printers.conf次のようになります。現在のプリンターはUSBを使用しています。

# Printer configuration file for CUPS v1.4.4
# Written by cupsd
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<DefaultPrinter SamsungLaser>
Info SamsungLaser
MakeModel Samsung ML-2850 Series PS
DeviceURI usb://Samsung/ML-2850%20Series
[...]

これは通常、コマンドラインコマンドを使用して設定されlpadminます。コマンドは次のようになります。

/usr/sbin/lpadmin -p printer -E -v device -P ppd_file

rootまたはlpadminグループのユーザーとしてこれを実行します。このデバイスはusb://somethingです。お使いのプリンターに対応するUSB​​デバイスを見つけるには、

lpinfo -l -v

もちろん、プラグが差し込まれ、スイッチが入っていることを確認する必要があります。誰かがを実行するよう提案しましたが/usr/lib/cups/backend/usb、これも私にとってはうまくいきました。しかしlpinfo、より標準的です。/dev/usb/lpXXXそもそもどうやって使い始めたのですか?

私のコンピューターでは、次の出力が得られます。

/usr/lib/cups/backend/usb

DEBUG: list_devices_libusb
DEBUG: usb_find_busses=2
DEBUG: usb_find_devices=5
direct usb://Samsung/ML-2850%20Series "Samsung ML-2850 Series" "Samsung ML-2850 Series" "MFG:Samsung;CMD:PCL5E,PCL6,POSTSCRIPT;MDL:ML-2850 Series;CLS:PRINTER;STATUS:BUSY;" ""

詳細については、CUPSソフトウェア管理者用マニュアルをチェックしてください。Appleは最新のCUPSバージョンのドキュメントで奇妙なことを行ったので、これはCUPS 1.1用ですが、まだ有効です。

注:それが問題であることが本当に確かでない限り、私はモジュールのブラックリスト化を開始しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.